将JasperReport导出为PDF,缺少字符

6 java pdf jasper-reports

我有一个生成JasperReports的Java应用程序.它将从一个报告中创建多达三个JasperPrints:一个在打印机上打印,一个序列化并保存到数据库,第三个使用Jasper的内置导出功能导出为PDF.

问题是当导出为PDF时,包含8位或更多位(即非7位ASCII)的字符显示为空方块,这意味着Acrobat Reader无法显示该字符.打印版本是正确的,加载数据库版本并打印它显示正确.如果我将PDF导出版本更改为其他格式(例如XML),则该字符在Web浏览器中显示正常.

根据证据,我认为这个问题是PDF中字体处理的特定问题,但我不确定是什么.

使用的字体是Lucida Sans Typewriter,一种Unicode等宽字体.Windows"font"目录列在Java类路径中:如果没有这一步,PDF导出会失败,完全没有文本,因此我知道它正在查找字体.

,特定字符不显示重音在西班牙文本中使用的字符:á,é,í,ó,和ú.我没有检查,ñ但我猜这也行不通.

任何想法是什么问题,要检查的系统区域,或者我需要发送到出口过程的参数?

小智 3

用于导出的 PDF 编码是 UTF-8,显然该字体不能正确支持该编码。当我将其更改为 ISO-8859-1 时,每个字符都在 PDF 输出中正确显示。

  • 你在哪里设置该属性? (8认同)