XSLFO - отображение верхнего и нижнего колонтитула - PullRequest
0 голосов
/ 06 мая 2018

Я конвертирую xml в PDF, используя XSL FO. Я хочу отобразить содержимое заголовка в следующем формате

Header Contents

Line 1               Line 1.1
Line 2               Line 1.2
Line 2               Line 1.3

Сейчас я пытаюсь использовать следующие строки кода:

 <fo:block> Line 1 </fo:block> <fo:block>   Line 1.1 </fo:block>
 <fo:block> Line 2 </fo:block> <fo:block>   Line 1.2 </fo:block>
 <fo:block> Line 3 </fo:block> <fo:block>   Line 1.3 </fo:block>

Ответы [ 2 ]

0 голосов
/ 07 мая 2018

Если вы хотите, чтобы «Строка 1» была выровнена по левому краю заголовка, а «Строка 1.1» выровнена по правому краю заголовка, нет необходимости использовать табличную разметку. В следующем примере для выполнения этого требования используется объект fo:leader.

    <fo:static-content flow-name="xsl-region-before" font-size="9pt">
        <fo:block space-before="2mm" space-before.conditionality="retain" space-after="2mm"  border-bottom="2pt solid green">
            <fo:block text-align-last="justify">Line 1<fo:leader leader-length.maximum="100%" leader-pattern="space"/>Line 1.1</fo:block>
            <fo:block text-align-last="justify">Line 2<fo:leader leader-length.maximum="100%" leader-pattern="space"/>Line 1.2</fo:block>
            <fo:block text-align-last="justify">Line 3<fo:leader leader-length.maximum="100%" leader-pattern="space"/>Line 1.3</fo:block>
        </fo:block>
    </fo:static-content>

Результат форматирования FOP: FOP Formatting result

0 голосов
/ 06 мая 2018

Тогда это выглядит как табличный макет:

        <fo:table width="100%">
            <fo:table-body>
                <fo:table-row>
                    <fo:table-cell>
                        <fo:block> Line 1 </fo:block>
                    </fo:table-cell>
                    <fo:table-cell>
                        <fo:block text-align="right"> Line 1.1 </fo:block>
                    </fo:table-cell>
                </fo:table-row>
                <fo:table-row>
                    <fo:table-cell>
                        <fo:block> Line 2 </fo:block>
                    </fo:table-cell>
                    <fo:table-cell>
                        <fo:block text-align="right"> Line 1.2 </fo:block>
                    </fo:table-cell>
                </fo:table-row>
                <fo:table-row>
                    <fo:table-cell>
                        <fo:block> Line 3 </fo:block>
                    </fo:table-cell>
                    <fo:table-cell>
                        <fo:block text-align="right"> Line 1.3 </fo:block>
                    </fo:table-cell>
                </fo:table-row>
            </fo:table-body>
        </fo:table>
...