我有一个使用Apache FOP从某些数据对象生成PDF的应用程序。此数据对象是String属性的集合,其中一些属性可能包含非中断空格转义序列。这些转义序列编码为" "
。
我面临的问题是PDF显示 
而不是空格!
我需要在PDF中显示几个空格。在我的数据中放置几个空格字符而不是几个" "
转义序列会导致渲染的单个空间太小。
我不熟悉XSLT,因为另一个团队成员已经制作了样式表,所以我的理解如下。
以下是我的XSLT模板中的一个部分..
<fo:block
font-size="7pt" font-weight="bold"
linefeed-treatment="preserve" margin-left="5pt">
<xsl:value-of
select="drawee" />
</fo:block>
我明白,上面的内容会将输入中的任何内容输入PDF格式“drawee”。有时,输入数据被称为“drawee”需要包含非中断空格,并将那些指定为 
不会在PDF中产生正确的结果。
有关如何解决此问题的任何想法?
答案 0 :(得分:1)
在转换过程中可能会折叠几个不间断的空格。尝试:
您将找到规范here的相关部分。
<fo:block
font-size="7pt" font-weight="bold"
linefeed-treatment="preserve" whitespace-collapse="false" margin-left="5pt">
<xsl:value-of
select="drawee" />
</fo:block>
如果这没有帮助,尝试对代码进行硬编码而不是从元素中检索它可能会很有趣。
<fo:block
font-size="7pt" font-weight="bold"
linefeed-treatment="preserve" whitespace-collapse="false" margin-left="5pt">
<xsl:value-of
select="start   end" />
</fo:block>
附注:如果您想在其他文字内容之间插入空格,fo:inline
可能更适合,因为fo:block
被视为单独的段落。