无法在XSL-FO中设置初始页号

问题描述 投票:1回答:1

我对XSL-FO处理页码的方式有疑问。在我的应用程序中,我正在使用Apache FOP将XML转换为PNG内容。然后,将此PNG内容“附加”到TIFF文件中的内容,以创建单个连续文档的外观。我们的要求之一是在PNG内容中添加页码。但是要注意的是,页面编号需要像顺序一样开始,即,如果有2页TIFF内容,则第一个PNG页面将是页面3。

计算TIFF内容的页面数很容易,我将其作为参数传递给了转换器。

// setup XSLT
TransformerFactory factory = javax.xml.transform.TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer(new StreamSource(xslFile));
transformer.setParameter("tiffPgOffset", getTiffPgOffset());

并且我将参数添加到我的XSL文件中以处理页面偏移量计数。

   <xsl:param name="tiffPgOffset" />

我可以很好地访问页面内的参数值。

  <fo:static-content flow-name="xsl-region-after" font-family="Arial">
    <fo:block font-size="16">Page 
      tiffPgOffset = <xsl:value-of select="$tiffPgOffset" />   <!-- it works here -->
    </fo:block>
  </fo:static-content>

当我想将参数值传递给页面序列对象时,会发生问题。鉴于我已阅读的内容,我认为这应该可行:

 <fo:page-sequence master-reference="main" initial-page-label="$tiffPgOffset">   <!-- this does not work -->

但不是。相反,我收到以下运行时错误:

Invalid property encountered on "fo:page-sequence": initial-page-label (No context info available)

我不确定自己在做什么错,但是我希望对于有更多经验的人来说这很痛苦。预先感谢。

xml xslt xsl-fo apache-fop
1个回答
2
投票

尝试在AVT属性中使用initial-page-number

initial-page-number="{$tiffPgOffset}"
© www.soinside.com 2019 - 2024. All rights reserved.