Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xslt xsl fo内部链接不能跨不同的页面序列工作_Xslt_Xsl Fo_Apache Fop - Fatal编程技术网

Xslt xsl fo内部链接不能跨不同的页面序列工作

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:

我得到了多个页面序列,这是必要的,因为显示的数据有不同的参数(一些风景和一些肖像)。我努力建立一个有链接的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: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>