我们的BIRT报告使用字体“ Neo Sans Pro”和“ Neo Sans Pro Medium”。 因此,我创建了一个单独的fontsConfig_pdf.xml:
<?xml version="1.0" encoding="UTF-8"?>
<font>
<font-encodings>
<encoding font-family="Neo Sans Pro" encoding="Cp1252" />
<encoding font-family="Neo Sans Pro Medium" encoding="Cp1252" />
</font-encodings>
</font>
一切都很好用,但字符“²”(正方形)和“³”(立方)不是很好。在PDF中,显示☒(内部带有叉号的框)。在HTML中,它可以正常工作。
我尝试了fontsConfig_pdf.xml中的其他一些条目,例如:
<composite-font name="all-fonts">
<character value="²" font-family="Arial"/>
<character value="\u00B2" font-family="Arial"/>
<font font-family="Times-Roman" catalog="Western" />
</composite-font>
我了解到可以为无法显示但没有成功的字符设置字体。
更新12.07.2018:我的解决方法是,如果有这样的字符,则设置另一种字体,或原则上将其设置为此元素。这是我的onRender-Script:
if (this.getText().indexOf("²") || this.getText().indexOf("³")) {
this.getStyle().fontFamily = "Arial";
}