17

私は非常に単純なテンプレートを持っています:

<xsl:template match="p">
    <fo:block>
        <xsl:apply-templates/>
    </fo:block>
</xsl:template>

ブロックが空の場合でも空の行を保持するようにFOに指示するにはどうすればよいですか。

4

3 に答える 3

35

<fo:leader/>の最後に要素を追加するだけ<fo:block>です。このような:

<xsl:template match="p">
        <fo:block>
                <xsl:apply-templates/>
                <fo:leader />
        </fo:block>
</xsl:template>

リーダーは、コンテンツのある行に対しては何もせず、コンテンツのない行に対しては空の行を作成します。

ApacheFOPおよびXEPでテスト済み。

于 2009-08-07T12:50:14.643 に答える
11

または

<xsl:template match="p">
    <fo:block>
            <xsl:apply-templates/>
            &#x00A0;
    </fo:block>

&#x00A0;&nbsp;はHTMLと同等です(実際に&nbsp;は、A0 として定義されている XML エンティティであり、これは Non Breaking Space の Unicode 文字です)。

于 2010-01-12T00:32:08.500 に答える
9

あるいは、

<fo:block white-space-treatment="preserve"> </fo:block>
于 2009-12-10T00:01:17.120 に答える