首页 > 解决方案 > FOP 阿拉伯字母间距

问题描述

我正在使用 Apache FOP 2.5 生成多语言 PDF,包括拉丁文、西里尔文和阿拉伯文字符。我设法包含了正确的字体,并且能够在需要时处理从右到左显示的阿拉伯语。

但是,我遇到了阿拉伯字符中的字母间距问题:这些字符彼此隔开。这是我在生成的 PDF 中看到的

在此处输入图像描述

但这是我在原始 XML 中的内容(请注意阿拉伯字符是如何相互接近的):

在此处输入图像描述

我正在使用 Deja Vu 字体,并使用此处描述的内容计算了字体的度量。

我该如何解决这个问题?

我读过这篇文章,基本上letter-spacing="-2pt"每次要显示的字符串是阿拉伯语时都会插入。但我不想对样式表中的语言进行硬编码测试。

任何帮助表示赞赏!

编辑

标签: fontsarabicxsl-foapache-fopletter-spacing

解决方案


感谢收到非常宝贵的意见,我能够通过以下方式解决问题:

  1. 升级到 FOP 2.5
  2. 切换到另一种字体(传统阿拉伯语而不是似曾相识)
  3. 而且,由于 FOP 2.5 不需要字体度量文件,因此删除了字体度量。

与此同时,我发现在我的应用程序中嵌入字体在 FOP 2.5 中比在 FOP 1.1 中更困难,因为在 FOP 字体配置中设置相对 URL 更加困难。我能够用这个其他答案解决这个问题。


推荐阅读