XSL-FO с использованием пустых ячеек таблиц и выносок

Я использую столбцы таблицы с выноской (пунктирная линия), чтобы создать визуальную связь между содержимым в разных ячейках. Например:

Text in col one..........Text in col two

Я использую столбец «разделитель», чтобы оставить пробел между текстом в разных ячейках, а столбец разделителя имеет пунктирную линию.

Моя проблема в том, что в зависимости от фактического текста в первом столбце будет пустое место после лидера столбца 1 и перед столбцом 2, например

Text in col one.....  .....Text in col two

Иногда места не будет, но в других случаях пространство будет составлять несколько пикселей.

Пример кода:

<fo:table table-layout="fixed" width="100%" margin-left="0"
    margin-right="0" padding-before="0" padding-after="0"
    border-width="0" font-family="Franklin" font-size="12pt">
    <fo:table-column column-width="50mm" /> 
    <fo:table-column column-width="10mm" />
    <fo:table-column column-width="50mm" /> 
    <fo:table-body>

        <fo:table-row>
            <fo:table-cell display-align="after">
                <fo:block text-align-last="justify">
                    <xsl:text>Text in col1</xsl:text>   
                    <fo:leader leader-pattern="dots" />             
                </fo:block>
            </fo:table-cell>                                
            <fo:table-cell display-align="after">
                <fo:block text-align-last="justify">                                       
                    <fo:leader leader-pattern="dots" />             
                </fo:block>
            </fo:table-cell>                                
            <fo:table-cell display-align="after">
                <fo:block>
                    <xsl:text>Text in col2</xsl:text>                                                       
                </fo:block>
            </fo:table-cell>
        </fo:table-row>                         
    </fo:table-body>
</fo:table>

Кто-нибудь знает, как избавиться от этого раздражающего пространства?


person user2262040    schedule 09.04.2013    source источник


Ответы (1)


Я заставил это работать. По сути, просто удалили средний столбец и установили для последнего столбца полное выравнивание с выноской перед текстом.

<fo:table table-layout="fixed" width="100%" margin-left="0" margin-right="0" padding-before="0" padding-after="0" border-width="0" font-family="Franklin" font-size="12pt"> 
    <fo:table-column column-width="50mm" /> 
    <fo:table-column column-width="50mm" /> 
    <fo:table-body> 
        <fo:table-row> 
            <fo:table-cell display-align="after"> 
                <fo:block text-align-last="justify">
                    <xsl:text>Text in col1</xsl:text> 
                    <fo:leader leader-pattern="dots" />
               </fo:block> 
            </fo:table-cell> 
            <fo:table-cell display-align="after"> 
                <fo:block text-align-last="justify"> 
                       <fo:leader leader-pattern="dots" />
                       <xsl:text>Text in col2</xsl:text> 
                </fo:block> 
            </fo:table-cell> 
        </fo:table-row> 
    </fo:table-body> 
</fo:table>
person JollyJollyBean    schedule 26.03.2014