使用XSL-FO(Fop),我成功地创建了一个指向外部PDF:的链接
<fo:basic-link show-destination="new">
<xsl:attribute name="external-destination">foo.pdf</xsl:attribute>
</fo:basic-link>
但现在,我想在这个外部PDF中找到一个锚。所以我试着建立这样的东西:
<fo:basic-link show-destination="new">
<xsl:attribute name="external-destination">foo.pdf#anchorId</xsl:attribute>
</fo:basic-link>
不幸的是,当我点击生成的链接时,我得到了一个错误。它试图打开foo.pdf%23anchorId.文档
在我的.fo文件中,链接的#是正确的,但在PDF转换过程中,这个#被误解了。
你有解决这个问题的办法吗?
谢谢,
Johann
对于FOP,我们有两个链接:内部和外部。
对于外部,您可以使用:
<fo:basic-link
external-destination="url('http://www.paulmccartney.com')"
color="blue" text-decoration="underline">
Paul McCartney
</fo:basic-link>
内部链接是从文档中的一个位置到同一文档中的另一个位置的链接。创建内部链接有两个步骤:
首先,给链接到的位置一个唯一的ID。ID是用ID属性指定的。该值可以进行硬编码或生成。在下面的示例中,我们使用generate-id()XSLT函数来生成id:
<fo:block font-weight="bold" font-size="larger"
id="{generate-id(.)}" break-before="page">
<xsl:value-of select="."/>
</fo:block>
其次,创建指向该位置的链接。与外部链接一样,内部链接也是使用标记创建的。内部目的地属性应设置为文档中其他位置的ID值。
<fo:basic-link internal-destination="{generate-id(.)}">
<xsl:value-of select="."/>
</fo:basic-link>
我认为您错过了在"外部目的地"属性中包含"url"关键字