1

我使用 xsl-fo 打印 pdf(开始使用 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>

它产生输出:

输出

问题是,文本“lorem ipsum”必须以较大的字母间距定位,而不是使用默认字母间距定位文本并使用用户定义的字母间距打印文本。当我们删除letter-spacing="5pt"时,一切都按预期工作。

这种行为是否有任何覆盖?我试过用谷歌搜索一些有用的属性,或者尝试玩积木但没有运气。谢谢。

4

1 回答 1

3

如果您使用 Helvetica 字体,使用 RenderX 和 Apache FOP 对上述 FO 进行格式化,则可以得到您想要的结果,以围绕整个文本的边框为中心。正如您报告的那样,您正在使用带有 Arial 的 Apache FOP ......这是您的问题。我会向 Apache FOP 报告一个错误,因为他们的输出显然是错误的,应该与所选字体无关。

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

Helvetica 的 RenderX 和 FOP 结果

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

使用 Arial 渲染 XEP 结果

于 2014-08-12T17:46:34.590 回答