在生成的pdf报告中显示字符SQUARE M SQUARED(\ u33a1)

时间:2019-02-11 12:34:37

标签: utf-8 jasper-reports export-to-pdf

我在jasper pdf报告中使用以下代码来显示字符M SQUARED(\ u33a1)

<?xml version="1.0" encoding="UTF-8"?> 
...

<textField isStretchWithOverflow="true">
            <reportElement x="0" y="0" width="609" height="20" uuid="df8665ef-2226-4aaa-bd04-09805582eaef"/>
            <textElement verticalAlignment="Middle">
                <font fontName="SomeCustFont" size="20" pdfEncoding="Cp1252" isPdfEmbedded="true"/>
            </textElement>
            <textFieldExpression><![CDATA["Squared M : \u33a1"]]></textFieldExpression>
        </textField>

对于此代码,我无法在PDF中看到unicode字符。它只是空白。但是在XLSX中,我可以看到角色。 我尝试了以下操作:

  1. 删除pdfEncoding
  2. 设置isPdfEmbedded =“ false”

但是没有运气

更新:看来,我使用的自定义字体不支持平方m字符。我无法添加新字体或更新现有的自定义字体。但是我可以为该特定字符使用任何字体或内置字体。如何使用内置字体实现此目的?

我尝试过:

fontName =“ Courier” pdfFontName =“ Courier” 这种用于jasper的内置字体支持该字符,但是由于找不到字体,我遇到了错误。

1 个答案:

答案 0 :(得分:0)

这里的主要问题是\ u33a1是扩展的ASCII Unicode。大多数免费字体不支持此功能。因此,我使用了英文的“ m”字符,而不是上标2 Unicode \ u00b2,而不是平方的m,几乎所有字体都可用。

\ u33a1-> m \ u00b2