我们如何在XSL-FO中动态创建目录页面?
答案 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中的页码链接到实际页面。