我使用 Apache FOP 编写了一个应用程序,它可以生成包含多个章节的 PDF。有没有办法,我可以知道 - 哪一章出现在哪一页上。实际上,我需要在开始时创建索引,它告诉哪个章节出现在哪个页面上。
问问题
1265 次
1 回答
1
您可以在需要知道页码的元素上放置一个 ID,然后使用<fo:page-number-citation ref-id="id"/>
.
例子:
在每个包含章节标题的块上放置一个带有自动生成的 ID 的 ID:
<xsl:for-each select="chapter"> <fo:block id="{generate-id(.)}"> <xsl:value-of select="@title"/> </fo:block> </xsl:for-each>
然后,在索引所在的开头循环遍历相同的输入元素时,引用您为块提供的 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 回答