1

我使用 Apache FOP 编写了一个应用程序,它可以生成包含多个章节的 PDF。有没有办法,我可以知道 - 哪一章出现在哪一页上。实际上,我需要在开始时创建索引,它告诉哪个章节出现在哪个页面上。

4

1 回答 1

1

您可以在需要知道页码的元素上放置一个 ID,然后使用<fo:page-number-citation ref-id="id"/>.

例子:

  1. 在每个包含章节标题的块上放置一个带有自动生成的 ID 的 ID:

    <xsl:for-each select="chapter">
        <fo:block id="{generate-id(.)}">
            <xsl:value-of select="@title"/>
        </fo:block>
    </xsl:for-each>
    
  2. 然后,在索引所在的开头循环遍历相同的输入元素时,引用您为块提供的 ID:

    <xsl:for-each select="chapter">
        <fo:block id="{generate-id(.)}">
            <fo:page-number-citation ref-id="{generate-id(.)}"/>
        </fo:block>
    </xsl:for-each>
    

您的索引(这里更像是目录)是否在实际内容之前生成并不重要,因为 ID 是由 XSL 解析器计算的,并且 FOP 在页面布局之后解析这些引用(并且因此页码)已确定。

于 2013-07-17T16:59:04.320 回答