如何避免在 XSL-FO 中的块之前分页?
How to avoid page breaks before a block in XSL-FO?
我正在使用 XSL 将带有段落后跟块引号的 HTML 转换为 FO。
如何避免段落和后面的块引用之间出现分页符?
块引号后的分页符是可以的。
示例:
<p> Some paragraph..</p>
<blockquote>My reference</blockquote>
<p> Another paragraph..</p>
<blockquote>My reference</blockquote>
我认为最直接的方法是用 fo:block
将要保留的元素包装在一起,然后添加 keep-with-next.within-page="always"
属性,如图 here:
<fo:block keep-with-next.within-page="always">
... content of p and blockquote elements
</fo:block>
你需要在正常 p
生成的块和 blockquote
.
生成的块之间添加所谓的 keep condition
特别是,由于 p
是一个通用标签,我认为最好的选择是在为 [=12= 生成的 fo:block
中使用属性 keep-with-previous.within-page="always"
] HTML 元素.
如果您使用 XSLT 创建 XSL-FO 输出,您需要这样的东西(您可能需要调整名称空间):
<xsl:template match="blockquote">
<fo:block keep-with-previous.within-page="always" ...other attributes...>
<xsl:apply-templates/>
</fo:block>
</xsl:template>
我正在使用 XSL 将带有段落后跟块引号的 HTML 转换为 FO。
如何避免段落和后面的块引用之间出现分页符?
块引号后的分页符是可以的。
示例:
<p> Some paragraph..</p>
<blockquote>My reference</blockquote>
<p> Another paragraph..</p>
<blockquote>My reference</blockquote>
我认为最直接的方法是用 fo:block
将要保留的元素包装在一起,然后添加 keep-with-next.within-page="always"
属性,如图 here:
<fo:block keep-with-next.within-page="always">
... content of p and blockquote elements
</fo:block>
你需要在正常 p
生成的块和 blockquote
.
特别是,由于 p
是一个通用标签,我认为最好的选择是在为 [=12= 生成的 fo:block
中使用属性 keep-with-previous.within-page="always"
] HTML 元素.
如果您使用 XSLT 创建 XSL-FO 输出,您需要这样的东西(您可能需要调整名称空间):
<xsl:template match="blockquote">
<fo:block keep-with-previous.within-page="always" ...other attributes...>
<xsl:apply-templates/>
</fo:block>
</xsl:template>