Jasper Reports PDF 不导出西里尔字母值

Jasper Reports PDF doesn't export cyrillic values

我正在尝试将 jasper 导出为 pdf,但它不显示西里尔字母值。当我将其导出为 excel 时,它确实显示并且输出很好,但是当我尝试将其导出为 PDF 时,它不会导出西里尔字母值。西里尔值不是用西里尔字体写的,而是用西里尔键盘写的。

我用来导出的代码是:

JRExporter e = new JRPdfExporter();
                e.setParameter(JRPdfExporterParameter.JASPER_PRINT, jasperPrint);
                e.setParameter(JRPdfExporterParameter.OUTPUT_STREAM, outStream);
                e.setParameter(JRPdfExporterParameter.OUTPUT_FILE_NAME, NAME);

我什至尝试指定以下参数:

e.setParameter(JRPdfExporterParameter.CHARACTER_ENCODING, "UTF-8");

但没有成功。有什么建议吗?

Jasper 报告使用 iText 并且总是在 char 未在 pdf 中呈现时 这应该是清单:

  1. 我的 .tff 支持 (OpenType) 并且字体实际上可以 呈现 字符。并非所有字体都呈现 UTF-8 中的所有字符,参见
  2. 我是否将 正确的编码 传递给 iText。如果有疑问(或一般情况下)使用编码 Identity-H,建议用于较新的 PDF 标准,并使您能够混合不同的编码。
  3. 我的字体是否 嵌入 以便如果我共享 pdf 也没有此字体的计算机也可以显示内容?

如何确保这是 JasperReport?

已弃用的方法 是在 textElement

上设置属性
<textElement>
  <font pdfFontName="Helvetica" pdfEncoding="Identity-H" isPdfEmbedded="true"/>
  <paragraph lineSpacing="Single"/>
</textElement>

当前 未弃用的方法 v 3-6 是添加字体扩展,这可以通过使用像 iReport or JasperSoft Studio 这样的工具轻松实现,它可以生成 .jar 的字体扩展名,以便您可以将其直接包含在 类路径 中。

.

编辑: OP 的问题是清单上的 1(.ttf 字体无法呈现),但他肯定应该考虑使用非弃用方法的 2 和 3。