我正在尝试将一些文本嵌入到我使用XSL-FO / xslt生成的PDF中。我的文本已正确嵌入,但删除了LineFeed和Carriage Returns,因此我的文本文件只是一个巨大的文本块。
我正在使用 unparsed-text()来获取文本文件的内容。我使用 white-space-collapse =“false”来尝试获取未格式化的文本。
<fo:block font-family="monospace" white-space-collapse="false" wrap-option="no-wrap">
<xsl:value-of select="unparsed-text($EXTERNAL_DOCUMENT_FILENAME)" disable-output-escaping="yes"/>
</fo:block>
谢谢!
===========
我刚试过这个,我注意到输出没有格式化......
<fo:block font-family="monospace" white-space-collapse="false" wrap-option="wrap">
<!--<xsl:value-of select="unparsed-text($EXTERNAL_DOCUMENT_FILENAME)" />-->
Hi this is me,
Then this is him,
Then I have set the value.
OK?
</fo:block>
我期待与LF和CR完全相同的文字,为什么?
答案 0 :(得分:1)
以下是我找到的答案:
<fo:block font-family="monospace" wrap-option="wrap" linefeed-treatment="preserve" white-space-collapse="false" white-space-treatment="preserve">
<!--<xsl:apply-templates select="*|text()"/>-->
<xsl:value-of select='n1:text/text()'/>
</fo:block>
这很好用,xsl-fo正在删除CR-LF。
答案 1 :(得分:0)
请勿使用<xsl:strip-space="yes"/>
。
此外,DOE不是强制性功能,并且在XSLT 2.0中可能仅支持向后兼容功能。尽量避免它。
尝试一个小文本文件,看看是否获得了unparsed-text()
(根本没有XSL-FO)的NL字符。如果NL字符存在,那么你的问题很可能只是XSL-FO相关而不是XSLT。如果不存在NL字符,则表示XSLT处理器的unparsed-text()
实现中存在错误 - 因此请与供应商联系并提交错误。