fonts - FOP 阿拉伯字母间距
问题描述
我正在使用 Apache FOP 2.5 生成多语言 PDF,包括拉丁文、西里尔文和阿拉伯文字符。我设法包含了正确的字体,并且能够在需要时处理从右到左显示的阿拉伯语。
但是,我遇到了阿拉伯字符中的字母间距问题:这些字符彼此隔开。这是我在生成的 PDF 中看到的
但这是我在原始 XML 中的内容(请注意阿拉伯字符是如何相互接近的):
我正在使用 Deja Vu 字体,并使用此处描述的内容计算了字体的度量。
我该如何解决这个问题?
我读过这篇文章,基本上letter-spacing="-2pt"
每次要显示的字符串是阿拉伯语时都会插入。但我不想对样式表中的语言进行硬编码测试。
任何帮助表示赞赏!
编辑:
- 使用 FOP 2.5
- 我确认
complex-script
已启用(添加了调试消息以确保) - 我已经
kerning="yes"
在配置文件中设置了
解决方案
感谢收到非常宝贵的意见,我能够通过以下方式解决问题:
- 升级到 FOP 2.5
- 切换到另一种字体(传统阿拉伯语而不是似曾相识)
- 而且,由于 FOP 2.5 不需要字体度量文件,因此删除了字体度量。
与此同时,我发现在我的应用程序中嵌入字体在 FOP 2.5 中比在 FOP 1.1 中更困难,因为在 FOP 字体配置中设置相对 URL 更加困难。我能够用这个其他答案解决这个问题。
推荐阅读
- postgresql - Azure DB for PostgreSQL - 未实现对 log_line_prefix 参数的更改
- c# - 如何为 C# 应用程序开发 C++ 插件?
- c# - UWP - 使 SplitButton 的弹出部分更小
- reactjs - 如何在道具(reactjs)中发送数组?
- origen-sdk - origen_testers ATP 流循环方法用例?
- r - 将日期和小时转换为 xts R
- java - HttpClient URL 调用失败
- xamarin.forms - Xamarin 表单:在 XamForms.Controls.Calendar 的同一天点击多个事件的问题
- c - c程序停止执行而没有任何错误
- c# - 如何在 C#.net 的同一服务器中运行多个 Windows 服务实例?