XSL-FO忽略最后一个分页符但是如何?

时间:2016-01-10 17:16:44

标签: xml xslt xsl-fo

XSL-FO的另一个问题...... 好吧,我发现如何使用

分页
<fo:block page-break-after="always"> </fo:block>

这工作正常,但它在文档的末尾添加了一个空页面。我也尝试了“之前”位没有成功和“自动”好,这不是我正在搜索。 是否有可能计算休息时间,或者在最后一页之前进行休息并删除最后一次休息或类似的事情。我没有在参考资料上找到任何东西,但也许我正在寻找错误的东西。提前致谢

http://www.w3.org/TR/xsl11/#page-break-inside

1 个答案:

答案 0 :(得分:4)

您可以在XSLT中执行此操作。您可以执行以下操作,而不是<fo:block page-break-after="always"> </fo:block>

<fo:block>
  <xsl:if test="position() != last()">
    <xsl:attribute name="page-break-after">always</xsl:attribute>
  </xsl:if>
</fo:block>

这假设在您的XSLT中,您选择生成fo:block的所有元素/属性并一次性处理它们(即,它们都是相同上下文的一部分,以便最后一个真的在last()位置。如果没有,您必须找到其他方法来确定何时不生成page-break-after属性。

(请注意,page-break-afterbreak-after="page"的简写。请参阅http://www.w3.org/TR/xsl11/#page-break-after