XSL-FO - 空块元素

Jan*_*Jan 16 xsl-fo

我有一个非常简单的模板:

<xsl:template match="p">
    <fo:block>
        <xsl:apply-templates/>
    </fo:block>
</xsl:template>
Run Code Online (Sandbox Code Playgroud)

即使块为空,如何告诉FO保持空行.

chi*_*org 33

只需<fo:leader/>在您的结尾添加一个元素<fo:block>.像这样:

<xsl:template match="p">
        <fo:block>
                <xsl:apply-templates/>
                <fo:leader />
        </fo:block>
</xsl:template>
Run Code Online (Sandbox Code Playgroud)

领导者不会为包含内容的行做任何事情,并且会为没有内容的行创建空行.

使用Apache FOP和XEP进行测试.


小智 11

要么

<xsl:template match="p">
    <fo:block>
            <xsl:apply-templates/>
            &#x00A0;
    </fo:block>
Run Code Online (Sandbox Code Playgroud)

&#x00A0;&nbsp;HTML中的等价物(实际上&nbsp;是一个定义为A0的XML实体,它是非中断空间的Unicode字符).


Jas*_*ext 9

或者,

<fo:block white-space-treatment="preserve"> </fo:block>
Run Code Online (Sandbox Code Playgroud)