java JasperReports:UTF8中的一些符号在导出为PDF后丢失
我有一份导出为XLSX和PDF的报告。两个导出器的代码非常相似,同时在PDF导出过程中丢失了编码
例如,在最终结果中跳过以下符号:“Č”、“ć”。同时,正确打印“ü”、“ß”
在XLSx exporter(工作部件)中,我使用了非常简单的代码:
try (ByteArrayOutputStream outputStream = new ByteArrayOutputStream()) {
JRXlsxExporter xlsExporter = new JRXlsxExporter();
xlsExporter.setExporterInput(new SimpleExporterInput(jasperPrint));
xlsExporter.setExporterOutput(new SimpleOutputStreamExporterOutput(outputStream));
xlsExporter.exportReport();
return outputStream.toByteArray();
}
对于PDF,我使用了非常相同的代码(不起作用):
try (ByteArrayOutputStream outputStream = new ByteArrayOutputStream()) {
JRPdfExporter exporter = new JRPdfExporter();
exporter.setExporterInput(new SimpleExporterInput(jasperPrint));
exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(outputStream));
exporter.exportReport();
return outputStream.toByteArray();
}
但它不起作用。在这两种情况下,我都传递相同的jasperPrint
实例
我尝试使用PdfExporterConfiguration
设置一些参数,但不幸的是,没有找到任何与编码相关的配置
Q:什么可能导致问题?知道怎么修吗
# 1 楼答案
我怀疑问题出在你使用的字体上。您确定XLSX和PDF都支持您在报告中设置的字体吗?在生成的PDF中,您可以通过右键单击并选择文档属性来检查使用的字体-有一个包含字体的选项卡。PDF中的字体是否支持这些符号
如果我没有记错的话,有时导出到PDF时,导出器会使用一些不同的字体(如果找不到/不支持您想要的字体或其他字体)