如何在XSL-FO中的块之前避免分页?

时间:2015-07-17 12:56:59

标签: html xml xslt xsl-fo

我正在使用XSL将带有段落然后使用blockquotes的HTML转换为FO。

如何避免段落与后面的块引用之间的分页?

块引用后的分页符很好。

示例:

<p> Some paragraph..</p>
<blockquote>My reference</blockquote>
<p> Another paragraph..</p>
<blockquote>My reference</blockquote>

2 个答案:

答案 0 :(得分:1)

您需要在正常p生成的块与blockquote生成的块之间称为keep condition

特别是,由于p是一个通用标记,我认为最好的选择是使用为keep-with-previous.within-page="always" HTML生成的fo:block中的属性blockquote元件。

如果您使用XSLT创建XSL-FO输出,则需要这样的内容(您可能需要调整名称空间):

<xsl:template match="blockquote">
    <fo:block keep-with-previous.within-page="always" ...other attributes...>
        <xsl:apply-templates/>
    </fo:block>
</xsl:template>

答案 1 :(得分:0)

我认为最简单的方法是使用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>
相关问题