XSL-FO 忽略最后一个分页符但是如何?
Posted
技术标签:
【中文标题】XSL-FO 忽略最后一个分页符但是如何?【英文标题】:XSL-FO Ignore the last page break but how? 【发布时间】:2016-04-14 23:40:53 【问题描述】:XSL-FO 人的另一个问题…… 好吧,我发现了如何使用分页符
<fo:block page-break-after="always"> </fo:block>
这工作正常,但它在文档末尾添加了一个空白页面。我也尝试了“之前”位但没有成功和“自动”这不是我正在寻找的。 是否有可能计算休息时间,或者休息到最后一页并删除最后一个休息时间或类似的东西。我在参考资料上什么也没找到,但也许我正在寻找错误的东西。提前致谢
http://www.w3.org/TR/xsl11/#page-break-inside
【问题讨论】:
【参考方案1】:您可以在 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-after
是break-after="page"
的简写。见http://www.w3.org/TR/xsl11/#page-break-after)
【讨论】:
以上是关于XSL-FO 忽略最后一个分页符但是如何?的主要内容,如果未能解决你的问题,请参考以下文章