2

我使用 FOP 从 xml 文件创建 pdf 文件。我想在 pdf 的最后一页显示一些内容。问题是我不知道显示内容需要多少页,所以我怎么知道我在实际的最后一页上?(每个page-sequence可以根据内容的大小生成1+个文档页面)

谢谢。

4

1 回答 1

3

您可以为一般页面布局和页眉和页脚指定条件页面母版(fo:static-content): http ://www.w3.org/TR/xsl/#page-position

用法:

1.) 在您的 fo:layout-master-set 中,定义您想要拥有的不同页面母版。例如,一个普通的页面母版和一个用于应该不同的最后一页。

普通页面母版的示例:

<fo:simple-page-master master-name="page-master-161302528-normal"
    margin-left="2cm" margin-right="2cm" page-height="297mm"
    page-width="210mm">
    <fo:region-body margin-top="3.5cm" margin-bottom="41mm"
        column-count="1" column-gap="0.50in" />
    <fo:region-before region-name="normal-header"
                    overflow="visible" extent="2cm" />
    <fo:region-after region-name="normal-footer"
                    overflow="visible" extent="40mm" precedence="true" />
</fo:simple-page-master>

2.) 在 fo:layout-master-set 中定义一个 fo:page-sequence-master - 在此处添加条件:

<fo:page-sequence-master master-name="page-master-161302528">
    <fo:repeatable-page-master-alternatives>
        <fo:conditional-page-master-reference master-reference="page-master-161302528-last" page-position="last"/>
            <fo:conditional-page-master-reference master-reference="page-master-161302528-normal" />
    </fo:repeatable-page-master-alternatives>
</fo:page-sequence-master>

3.) 在您的文档中,为您定义的 fo 元素(fo:static-content 和 fo:page-sequence)提供主参考 - 如果相应的主元素处于活动状态,则应呈现相应的元素。根据上面的 fo:simple-page-master,fo:static-content 元素必须将 region-name 命名为 flow-name 属性。

例子:

<fo:page-sequence force-page-count="no-force"
                    master-reference="page-master-161302528" initial-page-number="auto"
                    format="1">
    <fo:static-content flow-name="normal-header">...</fo:static-content>
</fo:page-sequence>

在这个整体示例中,特定页面页眉和页脚的选择是通过对于正常页眉/页脚(例如“normal-header”)和最后一页页眉/页脚(例如“last -页头”)。

于 2012-11-28T15:17:30.820 回答