3

我正在使用 XSL-FO 和 XML 生成 PDF。在文本框中,用户可以输入“1”之类的数据,然后按 ENTER,然后按“2”、“ENTER”、“3”等。但在 XML 和 PDF 中,输出为“1234567”。如何保留换行符?我已经尝试过了white-space-collapse,但这linefeed-treatmentwhite-space-treatment没有帮助。

我的 XSL 看起来像:

<xsl:template match="AddCmt">
    <fo:block keep-together="always"> Additional Comments 
        <fo:block-container border-style="solid" height="20mm" width="170mm" space-after="5mm"> 
            <fo:block> 
                <xsl:attribute name="id"> 
                    <xsl:value-of select="../CMT_ID"/> 
                </xsl:attribute> 
                <xsl:value-of select="../ANS_CMT"/> 
            </fo:block> 
        </fo:block-container> 
    </fo:block> 
</xsl:template> 

当我输入以下内容时:

hello
medhavi
saraswat

这是我得到的 XML:

<?xml version="1.0" encoding="UTF-8" ?> 
<?xml-stylesheet type='text/xsl' href='e:\tmm-09.3\src\pmod\WorkOrder.xsl'?>
    <Root>
        <WorkOrders>
            <Detail>Id="ANS_436‌​_FLD_1" Label="qq">qq</Detail>
            <Ans Checked="0" Id="ANS_436_FLD_2" Label="ww">ww</Ans>
            <ID>ANS_436_FLD</ID>
            <ANS_FLD>0|0</ANS_FLD>
            <CMT_ID>ANS_436_CMT‌​&lt;/CMT_ID>
            <ANS_CMT>hello medhavi saraswat</ANS_CMT>
            <Warning>
                <Line>warning 11</Line>
                <Line>22</Line>
                <Line>33</Line>
                <Line>44</Line>
                <Line></Line>
                <Line>66</Lin‌​e>
                <Line>77</Line>
                <Line></Line>
            </Warning>
4

1 回答 1

6

它应该与以下 xml 一起使用(您应该添加所有属性):

<xsl:template match="AddCmt">
    <fo:block keep-together="always"> Additional Comments 
        <fo:block-container border-style="solid" height="20mm" width="170mm" space-after="5mm"> 
            <fo:block wrap-option="wrap" linefeed-treatment="preserve" white-space-collapse="false" white-space-treatment="preserve"> 
                <xsl:attribute name="id"> 
                    <xsl:value-of select="../CMT_ID"/> 
                </xsl:attribute> 
                <xsl:value-of select="../ANS_CMT"/> 
            </fo:block> 
        </fo:block-container> 
    </fo:block> 
</xsl:template> 

但正如我在评论中提到的,如果您的 XML 已经没有换行符,那么您的 PDF 就不可能。您在问题中提到您的 XML 中没有换行符,因此 PDF 中没有换行符。

尝试检查为什么 XML 中没有换行符。如果您可以提供更多信息(您的一段 XML、您用于构造 XML 的代码……),请编辑您的答案并添加信息。

于 2012-09-06T07:52:06.630 回答