【问题标题】:XSL-FO creating Dynamic Table Of ContentsXSL-FO 创建动态目录
【发布时间】:2011-11-01 20:25:18
【问题描述】:

我们如何在 XSL-FO 中动态创建目录页面?

【问题讨论】:

    标签: dynamic reference xsl-fo flow tableofcontents


    【解决方案1】:

    我过去所做的是对 TOC(目录)中的每个条目使用 <fo:page-number-citation>。我将目录作为<fo:table>

    <fo:page-number-citation> 有一个ref-id 属性,该属性应包含您所引用位置的id。它应该生成id所在的PDF页码。

    例如,如果您希望在 TOC 中引用每个 <chapter>,您可以使用与 ref-id 匹配的 <fo:page-number-citation>,其中 <chapter> 的输出位置(如 fo:page-sequence、@ 987654333@等)。

    这是一个例子。我将id 属性基于现有属性的值,但如果需要,您可以生成一个 id。

    示例章节 XML:

    <chapter foo="CHAP-1">
    ...
    </chapter>
    

    TOC 表中的示例条目:

    <fo:table-cell>
      <fo:block>
        <fo:page-number-citation ref-id="CHAP-1"/>
      </fo:block>
    </fo:table-cell>
    

    &lt;chapter&gt; 输出示例:

    <fo:page-sequence id="CHAP-1">
    ...
    </fo:page-sequence>
    

    您还可以将fo:page-number-citation 包装在fo:basic-link 中,以将目录中的页码链接到实际页面。

    【讨论】:

    • 不客气@bala。请考虑接受我的回答。
    • 但是如果我有更多的章节元素并且我必须动态创建 Id,我该如何使用它?
    • 这是一个问题,我的 TOC(目录)在我的文本之外的其他页面母版中吗?
    • @bvb1909 - 您应该能够使用 generate-id() 创建 ID。 TOC 在不同的页面母版中不是问题。我认为 TOC 位于不同的页面母版中是很常见的。
    • 我解决了我的问题我使用了错误的上下文节点:)
    猜你喜欢
    • 1970-01-01
    • 2017-08-13
    • 1970-01-01
    • 1970-01-01
    • 2013-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多