【发布时间】:2011-11-01 20:25:18
【问题描述】:
我们如何在 XSL-FO 中动态创建目录页面?
【问题讨论】:
标签: dynamic reference xsl-fo flow tableofcontents
我们如何在 XSL-FO 中动态创建目录页面?
【问题讨论】:
标签: dynamic reference xsl-fo flow tableofcontents
我过去所做的是对 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>
<chapter> 输出示例:
<fo:page-sequence id="CHAP-1">
...
</fo:page-sequence>
您还可以将fo:page-number-citation 包装在fo:basic-link 中,以将目录中的页码链接到实际页面。
【讨论】:
generate-id() 创建 ID。 TOC 在不同的页面母版中不是问题。我认为 TOC 位于不同的页面母版中是很常见的。