无法在BIRT生成的PDF中显示印地语(Unicode)字符

时间:2013-03-12 06:37:00

标签: pdf unicode fonts birt

BIRT无法在生成的PDF文件中呈现印地语语言字符。相同的设计文件,当呈现为Word文档或HTML或任何其他格式时,我能够看到unicode字符。

我已将Arial Unicode MS设置为设计文件中的字体类型,并尝试使用google translate中的少量示例。如果我遗漏了任何东西,请告诉我。

谢谢。

2 个答案:

答案 0 :(得分:0)

最可能的BIRT找不到正确的字体文件。

您必须正确配置pdf字体(请参阅.file 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文件夹中。

答案 1 :(得分:0)

如果您正在使用JavaFx Desktop App,它将可以使用。 如果您使用fontsConfig.xml进行BIRT查看器部署,因为所有配置都捆绑在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/FontsC:/windows/Fonts