XSL-FO 创建动态目录

发布于 2024-11-30 23:31:45 字数 30 浏览 0 评论 0原文

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

How we can create a table of contents page dynamically in XSL-FO?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

不再见 2024-12-07 23:31:45

我过去所做的是对 TOC(目录)中的每个条目使用 。我将目录设置为

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

例如,如果您希望在目录中引用每个 ,则可以使用 ref- id 与输出 id 相匹配(如 fo:page-sequencefo:block 等)。

这是一个例子。我将 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>

输出 的示例:

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

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

What I've done in the past is use <fo:page-number-citation> for each entry in the TOC (Table of Contents). I do the table of contents as an <fo:table>.

The <fo:page-number-citation> has a ref-id attribute that should contain the id of the location you're referencing. It should generate the PDF page number where that id is located.

For example, if you wanted each <chapter> referenced in your TOC, you would use <fo:page-number-citation> with a ref-id that matched the id of where the <chapter> was output (like fo:page-sequence, fo:block, etc.).

Here's an example. I'm basing the id attribute on the value of an existing attribute, but you can generate an id if you need to.

Example Chapter XML:

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

Example entry in the TOC table:

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

Example of outputting the <chapter>:

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

You can also wrap the fo:page-number-citation in an fo:basic-link to link the page number in the TOC to the actual page.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文