Apache FOP 2.6 印地语渲染问题
Apache FOP 2.6 Hindi Rendering issue
我有一个独立程序,它使用 Apache FOP 2.6 使用 Amiko 字体将印地语文本写入 PDF,使用以下字体规格配置(在 CentOS 7 / Java 11 上):
<fop version="2.6">
<renderers>
<renderer mime="application/pdf">
<fonts>
<font metrics-url="Fonts/Amiko.xml" kerning="yes" embed-url="Fonts/Amiko.ttf" embedding-mode="full">
<font-triplet name="any" style="normal" weight="normal" />
</font>
<auto-detect/>
</fonts>
</renderer>
</renderers>
</fop>
以上生成的印地语文本正确,在PDF中显示如下
如果我删除 <auto-detect/>
,它会变为
几乎每个词都不正确。
因此,在自动检测标签就位并使用与生成 PDF 相同的方法但从应用程序服务器(在我的例子中是 Wildfly 18)调用的情况下,它总是生成不正确的印地语文本,如上一张图片所示多于。我曾尝试将脚本属性设置为 deva/dev2 值,但它进一步恶化了 PDF 中的印地文文本。
请帮助我了解当相同代码通过应用服务器 运行 时缺少什么。
感谢您对此进行调查。现在问题已解决。
看起来如果在 XSL 中使用额外的字体系列,它们
导致这个问题。就我而言,我们只需要英语和印地语
在 PDF 中,我们删除了使用的其他字体
XSL & 它现在正在生成正确的输出。
我有一个独立程序,它使用 Apache FOP 2.6 使用 Amiko 字体将印地语文本写入 PDF,使用以下字体规格配置(在 CentOS 7 / Java 11 上):
<fop version="2.6">
<renderers>
<renderer mime="application/pdf">
<fonts>
<font metrics-url="Fonts/Amiko.xml" kerning="yes" embed-url="Fonts/Amiko.ttf" embedding-mode="full">
<font-triplet name="any" style="normal" weight="normal" />
</font>
<auto-detect/>
</fonts>
</renderer>
</renderers>
</fop>
以上生成的印地语文本正确,在PDF中显示如下
如果我删除 <auto-detect/>
,它会变为
因此,在自动检测标签就位并使用与生成 PDF 相同的方法但从应用程序服务器(在我的例子中是 Wildfly 18)调用的情况下,它总是生成不正确的印地语文本,如上一张图片所示多于。我曾尝试将脚本属性设置为 deva/dev2 值,但它进一步恶化了 PDF 中的印地文文本。
请帮助我了解当相同代码通过应用服务器 运行 时缺少什么。
感谢您对此进行调查。现在问题已解决。 看起来如果在 XSL 中使用额外的字体系列,它们 导致这个问题。就我而言,我们只需要英语和印地语 在 PDF 中,我们删除了使用的其他字体 XSL & 它现在正在生成正确的输出。