我必须修改文件的xsl才能生成pdf。我们曾经使用AntennaHouse,但有人决定我们现在应该使用RenderX。所以我需要找到等同于
的<fo:block axf:outline-level="{$bookmark-level}" axf:outline-expand="false" axf:outline-title="{$bookmark-title}">
</fo:block>
我尝试过将axf更改为rx,它会编译,但pdf上没有显示任何书签。
我也尝试过使用
<rx:outline>
<rx:bookmark internal-destination="">
<rx:bookmark-label>
section
</rx:bookmark-label>
</rx:bookmark>
</rx:outline>
但是这个解决方案也不起作用。
理想情况下,我想在xsl中偶尔制作书签(因为它是当前在xsl文件中制作的)。换句话说,我不想在xsl文件的开头做这一切。
任何人都有灵魂?
编辑:
我稍微将代码更改为
<fo:block id="section1">Section 1</fo:block>
<rx:outline>
<rx:bookmark internal-destination="section1">
<rx:bookmark-label>
section
</rx:bookmark-label>
</rx:bookmark>
</rx:outline>
答案 0 :(得分:0)
首先,您的XSL或FO必须包含rx:namespace作为:
xmlns:rx="http://www.renderx.com/XSL/Extensions"
你没有将书签指向任何东西。你没有内部目的地。如果你有:
<rx:outline>
<rx:bookmark internal-destination="section1">
<rx:bookmark-label>
section
</rx:bookmark-label>
</rx:bookmark>
</rx:outline>
稍后在文档中,类似于:
<fo:block id="section1">Section 1</fo:block>
然后它应该工作。通常,这些id是使用generate-id()等函数生成的。
请参阅http://www.renderx.com/tutorial.html#PDF_Bookmarks
注意,您也可以避免命名空间并使用XSL 1.1大纲结构。
<fo:bookmark-tree> = <rx:outline>
<fo:bookmark> = <rx:bookmark>
<fo:bookmark-title> = <rx:bookmark-label>