【问题标题】:Adding Index Page in PDF created with Apache FOP [duplicate]在使用 Apache FOP 创建的 PDF 中添加索引页 [重复]
【发布时间】:2013-04-18 17:37:40
【问题描述】:

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

【问题讨论】:

    标签: java pdf-generation xsl-fo apache-fop


    【解决方案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-10-03
      • 1970-01-01
      • 2011-10-18
      • 2020-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-02
      相关资源
      最近更新 更多