xsl fo internal link 不能跨不同的页面序列工作
xsl fo internal link does mot work across different page sequences
我得到了多个页面序列,这是必要的,因为显示的数据具有不同的参数(一些横向和一些纵向)。我努力用 links:
构建目录
<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,它总是 link 到文档的开头,但我希望它 link 到 data1 页面序列第一页的顶部.
如果我为内部目标放置了一个在文档中无处可寻的 ID,则 link 完全损坏,我会收到预期的错误。为 data1 序列显示的页码是正确的。是不是不能只link到某个页面?这样就可以规避问题了。
我必须使用 XSL 2.0 和 Xalan。
更新:
现在问题变得很奇怪。我在 "region-after" 中有这样的页脚:
<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
,则 link 到 data5
有效,但对其他人无效。如果我把它完全拿出来,所有 link 的工作!所以这个 <fo:page-number-citation-last ref-id="data5"/>
获取最后页码放到页脚中其实就是问题所在。这是为什么?我还能如何获得最后页码?
在页脚中调用 page-number-citation-last 似乎阻止了 links!
您可以尝试使用生成 fo:page-sequence
内第一个区域的元素的 ID。如果它没有 ID,则使用 generate-id()
给它一个(参见 https://www.w3.org/TR/xslt20/#function-generate-id)。
我得到了多个页面序列,这是必要的,因为显示的数据具有不同的参数(一些横向和一些纵向)。我努力用 links:
构建目录<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,它总是 link 到文档的开头,但我希望它 link 到 data1 页面序列第一页的顶部.
如果我为内部目标放置了一个在文档中无处可寻的 ID,则 link 完全损坏,我会收到预期的错误。为 data1 序列显示的页码是正确的。是不是不能只link到某个页面?这样就可以规避问题了。
我必须使用 XSL 2.0 和 Xalan。
更新: 现在问题变得很奇怪。我在 "region-after" 中有这样的页脚:
<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
,则 link 到 data5
有效,但对其他人无效。如果我把它完全拿出来,所有 link 的工作!所以这个 <fo:page-number-citation-last ref-id="data5"/>
获取最后页码放到页脚中其实就是问题所在。这是为什么?我还能如何获得最后页码?
在页脚中调用 page-number-citation-last 似乎阻止了 links!
您可以尝试使用生成 fo:page-sequence
内第一个区域的元素的 ID。如果它没有 ID,则使用 generate-id()
给它一个(参见 https://www.w3.org/TR/xslt20/#function-generate-id)。