我正在尝试将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");
但没有成功。有什么建议吗?
答案 0 :(得分:6)
Jasper报告使用iText并且始终在 char未以pdf格式呈现时,这应该是核对清单:
.tff
是否支持(OpenType),字体实际上呈现字符。并非所有字体都呈现
UTF-8
中的所有字符,请参阅How can I test if my font is rendered correctly in pdf? Identity-H
这是建议用于较新的PDF标准,并使您能够混合不同的编码。 已弃用的方法是在textElement
<textElement>
<font pdfFontName="Helvetica" pdfEncoding="Identity-H" isPdfEmbedded="true"/>
<paragraph lineSpacing="Single"/>
</textElement>
目前非弃用方法 v 3-6,是添加字体扩展,这可以通过使用iReport或JasperSoft Studio等可生成{的工具轻松实现{1}}您的字体扩展名,以便您可以直接将其包含在类路径中。
How to generate font extension .jar using iReport or JasperSoft Studio
编辑: OP的问题在清单上是1(.ttf字体无法渲染),但他肯定应该使用非弃用的方法来考虑2和3。