BIRT 无法在生成的 PDF 文件中呈现印地语字符。相同的设计文件,当呈现为 Word 文档或 HTML 或任何其他格式时,我能够看到 unicode 字符。
我已将 Arial Unicode MS 设置为设计文件中的字体类型,并尝试使用谷歌翻译的几个示例。如果我遗漏了什么,请告诉我。
谢谢你。
最有可能的 BIRT 找不到正确的字体文件。
您必须正确配置 pdf 字体(请参阅文件 fontsconfig.xml)。
我对西里尔文和中文字体有类似的问题。
我在文件中修复的内容:
...
<font-paths>
<path path="fonts" />
<!--path path="C:/windows/fonts" />
<path path="d:/windows/fonts" />
...
<path path="/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType" /-->
</font-paths>
创建字体文件夹并放置所有必要的字体(有点棘手的问题是字体文件夹必须在哪里。这取决于您如何使用 BIRT)。
或者,您可以将正确的字体文件放在您正在使用的 JRE/lib/fonts 文件夹中。
如果您正在使用 JavaFx 桌面应用程序。它将工作。如果您使用 BIRT 查看器部署,fontsConfig.xml
因为所有配置都捆绑在org.eclipse.birt.runtime_VERSION-XXX.jar
所以你可以使用这种方式只是覆盖fontConfig_Pdf.xml
文件并在这个文件中添加你的字体
<composite-font>
<font font-family="mangal" catalog="Western"/>
</composite-font>
然后在您设置 RuntimeEngine 的 BIRTserviceImpl 类中添加此行代码
EngineConfig conf = null;
conf.setFontConfig(new File("fontsConfig_pdf_win.xml").toURL());
conf.setEngineHome("{dir}/birt-runtime-4_4_1/ReportEngine");
eng = new ReportEngine(conf);
此行将有助于更改运行时字体配置并复制您的印地语字体并粘贴jre/lib/Fonts
到C:/windows/Fonts