我正在尝试将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");但没有成功。有什么建议吗?
发布于 2015-12-02 21:51:37
Jasper报表使用iText,并且总是当字符未呈现在pdf中时,这应该是检查表:
.tff supported (OpenType),并且可以实际渲染字体和字符。并不是所有的字体都会在正确的编码中渲染所有字符,请参见How can I test if my font is rendered correctly in pdf?UTF-8 to iText。在怀疑(或一般)使用编码Identity-H这是推荐的较新的PDF标准,并给你的能力混合不同的编码。如何确保这是JasperReport?
不推荐使用的方法是在textElement上设置属性
<textElement>
<font pdfFontName="Helvetica" pdfEncoding="Identity-H" isPdfEmbedded="true"/>
<paragraph lineSpacing="Single"/>
</textElement>当前的非弃用方法v3-6是添加字体扩展,这可以通过使用iReport或JasperSoft Studio等工具轻松实现,这些工具可以生成字体扩展的.jar,以便您可以直接将其包含在类路径中。
How to generate font extension .jar using iReport or JasperSoft Studio。
EDIT:检查列表中OP的问题是1 (.ttf字体无法渲染),但他肯定应该使用不推荐使用的方法同时考虑2和3。
https://stackoverflow.com/questions/34041619
复制相似问题