我正在开发一个Web应用程序并使用 JasperReports 库(jasperreports-4.8.0.jar)。在应用程序中,我有一个函数将一些生成的数据(从数据库)导出为PDF格式。特别是,
net.sf.jasperreports.engine.export.JRPdfExporter.exportReport()
调用函数。据我所知,ОК库内部使用 iText 进行PDF生成。我的classpath中也有itext-2.1.7.jar,我希望在PDF生成中使用它。
我得到的异常痕迹是(部分):
java.lang.ArrayIndexOutOfBoundsException
[10/21/14 19:13:09:366 SGT] 00000030 SystemErr R at com.lowagie.text.pdf.TrueTypeFontSubSet.checkGlyphComposite(Unknown Source)
[10/21/14 19:13:09:366 SGT] 00000030 SystemErr R at com.lowagie.text.pdf.TrueTypeFontSubSet.flatGlyphs(Unknown Source)
[10/21/14 19:13:09:366 SGT] 00000030 SystemErr R at com.lowagie.text.pdf.TrueTypeFontSubSet.process(Unknown Source)
[10/21/14 19:13:09:366 SGT] 00000030 SystemErr R at com.lowagie.text.pdf.TrueTypeFontUnicode.writeFont(Unknown Source)
[10/21/14 19:13:09:366 SGT] 00000030 SystemErr R at com.lowagie.text.pdf.FontDetails.writeFont(Unknown Source)
[10/21/14 19:13:09:366 SGT] 00000030 SystemErr R at com.lowagie.text.pdf.PdfWriter.addSharedObjectsToBody(Unknown Source)
[10/21/14 19:13:09:366 SGT] 00000030 SystemErr R at com.lowagie.text.pdf.PdfWriter.close(Unknown Source)
[10/21/14 19:13:09:366 SGT] 00000030 SystemErr R at com.lowagie.text.pdf.PdfDocument.close(Unknown Source)
[10/21/14 19:13:09:366 SGT] 00000030 SystemErr R at com.lowagie.text.Document.close(Unknown Source)
[10/21/14 19:13:09:366 SGT] 00000030 SystemErr R at net.sf.jasperreports.engine.export.JRPdfExporter.exportReportToStream(JRPdfExporter.java:707)
[10/21/14 19:13:09:366 SGT] 00000030 SystemErr R at net.sf.jasperreports.engine.export.JRPdfExporter.exportReport(JRPdfExporter.java:396)
[10/21/14 19:13:09:366 SGT] 00000030 SystemErr R at net.sf.jasperreports.engine.JasperExportManager.exportToPdf(JasperExportManager.java:212)
[10/21/14 19:13:09:366 SGT] 00000030 SystemErr R at net.sf.jasperreports.engine.JasperExportManager.exportReportToPdf(JasperExportManager.java:536)
我的问题:如何摆脱这个错误?造成这种情况的原因是什么ArrayIndexOutOfBoundsException
?
注意:jasper报告(原始文件:report.jrxml)在 iReport ver中成功编译(编译文件:report.jasper)。 4.8.0,表示报表查询也有效且正常。
PS:我尝试过itext-2.1.5,jasperreports-5.6.1库的变种。然而,他们似乎没有解决问题。