Xslt xsl fo内部链接不能跨不同的页面序列工作
我得到了多个页面序列,这是必要的,因为显示的数据有不同的参数(一些风景和一些肖像)。我努力建立一个有链接的ToC:Xslt xsl fo内部链接不能跨不同的页面序列工作,xslt,xsl-fo,apache-fop,Xslt,Xsl Fo,Apache Fop,我得到了多个页面序列,这是必要的,因为显示的数据有不同的参数(一些风景和一些肖像)。我努力建立一个有链接的ToC: <fo:page-sequence id="toc"> <fo:page-sequence id="data1"> <fo:page-sequence id="data2"> <xsl:template name="toc"> <fo:flow> <fo:block> <fo:
<fo:page-sequence id="toc">
<fo:page-sequence id="data1">
<fo:page-sequence id="data2">
<xsl:template name="toc">
<fo:flow>
<fo:block>
<fo:basic-link internal-destination="data1">
data 1
<fo:leader leader-pattern="dots"/>
<fo:page-number-citation ref-id="data1"/>
</fo:basic-link>
</fo:block>
</fo:flow>
</xsl:template>
因此,内部目标无法解析它始终链接到文档开头的ID,但我希望它链接到data1页面序列第一页的顶部
如果我把一个ID放在内部目的地文档中的任何地方,链接就会完全断开,我会得到一个预期的错误。为data1序列显示的页码是正确的。不可能只链接到某个页面吗?这将绕过这个问题
我必须使用XSL2.0和Xalan
更新:
现在问题变得很奇怪。我在“区域之后”中有一个页脚,如下所示:
<fo:static-content flow-name="xsl-region-after">
<fo:block>
<fo:inline>
<fo:page-number/>
/
<fo:page-number-citation-last ref-id="data5"/>
</fo:inline>
</fo:block>
</fo:static-content>
/
data5
being最后一页序列。如果我输入data4
,则指向data5
的链接起作用,但不指向其他链接。如果我把它完全拿出来,所有的链接都可以工作!因此,获取最后一个页码并将其放入页脚实际上就是问题所在。为什么呢?我怎样才能得到最后一页的页码
调用页码引用页脚中的最后一件事似乎会阻止链接 您可以尝试使用在
fo:page序列中生成第一个区域的元素ID
。如果没有ID,那么使用generate-ID()
(请参阅)给它一个ID。生成的页码是否正确?是的,我刚刚用新信息更新了问题,这让我更加意想不到……在我看来,这就像FOP中的一个bug。你使用的是最新版本吗?我刚刚更新到最新版本。同样的行为。有没有办法绕过这一点,以另一种方式获得总页数?如果您希望尝试将id放在总体级别上,尝试将这些id引用向下移动到页面序列中的fo:flow,那么效果会更好。
<fo:static-content flow-name="xsl-region-after">
<fo:block>
<fo:inline>
<fo:page-number/>
/
<fo:page-number-citation-last ref-id="data5"/>
</fo:inline>
</fo:block>
</fo:static-content>