Java代码和导出到PDF中使用的JasperReports库生成异常

时间:2014-10-21 11:59:46

标签: java jasper-reports itext export-to-pdf

我正在开发一个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库的变种。然而,他们似乎没有解决问题。

0 个答案:

没有答案