Apache FOP问题

时间:2014-02-26 10:56:09

标签: xslt pdf xsl-fo apache-fop

我有一个使用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”需要包含非中断空格,并将那些指定为&#160;不会在PDF中产生正确的结果。

有关如何解决此问题的任何想法?

1 个答案:

答案 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&#160;&#160;&#160;end" />
</fo:block>

附注:如果您想在其他文字内容之间插入空格,fo:inline可能更适合,因为fo:block被视为单独的段落。