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 & 它现在正在生成正确的输出。