带文本对齐的xsl-fo字母间距

时间:2014-08-12 10:24:24

标签: xsl-fo text-align letter-spacing

我使用xsl-fo打印pdfs(开始使用itext创建我自己的库,但xsl-fo看起来很好)。我在对齐具有不同字母间距的文本时遇到问题。我的代码是:

<fo:block border="solid 0.5mm green" text-align="center">
    <fo:inline border="solid 0.5mm black" letter-spacing="5pt">lorem ipsum</fo:inline>
</fo:block>

它产生输出:

Output

问题是,该文本&#34; lorem ipsum&#34;必须使用较大的字母间距定位,而不是使用默认的字母间距定位文本,并使用用户定义的字母间距打印文本。当我们删除 letter-spacing =&#34; 5pt&#34; 时,所有工作都按预期工作。

是否有任何覆盖此行为?我已经尝试使用谷歌搜索一些有用的特性,或尝试玩积木但没有运气。 感谢。

1 个答案:

答案 0 :(得分:2)

使用RenderX和Apache FOP格式化上述FO,如果您使用Helvetica字体,以整个文本的边框为中心,可以得到您想要的结果。在您报告时,您正在使用Apache FOP和Arial ...这是您的问题。我会向Apache FOP报告一个错误,因为它们的输出显然是错误的,并且与选择的字体无关。

您可以尝试使用具有三列和比例列宽度的表来完成类似的布局,但我认为它会从Apache FOP中产生相同的错误结果。

RenderX and FOP results for Helvetica

以下是使用Arial字体的oXygen和RenderX XEP的结果。它是正确的。这是Apache FOP的错误。

RenderX XEP result using Arial