我有多个页面序列,这是必要的,因为显示的数据具有不同的参数(某些风景和某些肖像)。我努力建立带有链接的目录:
<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>
我收到以下警告:
1 link target could not be fully resolved and now point to the top of the page or is dysfunctional
因此,内部目标无法解析ID,它始终链接到文档的开头,但是我希望它链接到data1页序列的第一页的顶部。
如果我在内部目标文档中放置了一个不存在的ID,则该链接将完全断开,并且会出现预期的错误。 data1序列显示的页码正确。不能仅链接到某个页面吗?这样可以避免这个问题。
我必须使用XSL 2.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
是最后一个页面序列。如果我输入data4
,则指向data5
的链接有效,但对其他链接无效。如果我完全将其删除,所有链接都将起作用!因此,这个<fo:page-number-citation-last ref-id="data5"/>
来获取最后一个页码放入页脚实际上是问题所在。这是为什么?我还如何获得最后的页码?
在页脚中调用page-number-citation-last似乎阻止了链接!
答案 0 :(得分:0)
您可以尝试使用在fo:page-sequence
内生成第一个区域的元素的ID。如果没有ID,请使用generate-id()
(请参见https://www.w3.org/TR/xslt20/#function-generate-id)给它一个ID。