XSL-FO创建动态目录

时间:2011-08-23 10:38:52

标签: dynamic reference xsl-fo flow tableofcontents

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

1 个答案:

答案 0 :(得分:4)

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

<fo:page-number-citation>的{​​{1}}属性应包含您引用的位置的ref-id。它应该生成id所在的PDF页码。

例如,如果您希望TOC中引用的每个id,则<chapter>的{​​{1}}与<fo:page-number-citation>的{​​{1}}匹配ref-id输出(如id<chapter>等)。

这是一个例子。我将fo:page-sequence属性基于现有属性的值,但您可以根据需要生成ID。

示例章节XML:

fo:block

TOC表中的示例条目:

id

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

的示例
<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> 中,将TOC中的页码链接到实际页面。