将JasperReports 1.3.1升级到JasperReports 4.6

时间:2012-06-12 08:12:46

标签: java pdf jasper-reports report

我正在升级我的 JasperReports 版本,如标题中所述。 我对 JasperReports 版本升级知之甚少。我必须改变哪些东西才能使它发挥作用。我有最新的 .jar 文件。但是当我打印 .PDF 报告时,它会给我这个错误。

error:could not open file because its damaged or not supported.

在eclipse中它显示了这个异常

java.lang.NoSuchFieldError: PRINTSCALING at 
net.sf.jasperreports.engine.export.JRPdfExporter.exportReportToStream(JRPdfExpor‌​ter.java:532) at 
net.sf.jasperreports.engine.export.JRPdfExporter.exportReport(JRPdfExporter.java‌​:396) at 
net.sf.jasperreports.engine.JasperExportManager.exportToPdf(JasperExportManager.‌​java:212) at 
net.sf.jasperreports.engine.JasperExportManager.exportReportToPdf(JasperExportMa‌​nager.java:536) at 
com.sibisoft.northstar.util.JasperReportGenerator.getPdfByteArray(JasperReportGe‌​nerator.java:679)

请帮帮我。

1 个答案:

答案 0 :(得分:4)

问题不在于JasperReports,而在于您使用的iText库的版本。您需要下载2.1.7版才能使用该版本的JasperReports。你可以从here获得它。


我碰巧知道这个问题,因为我过去遇到过这个问题,但是作为一个有用的说明,这是我过去常常弄清楚的过程。

由于JasperReports是开源的,因此可以轻松地在线找到代码。所以我谷歌:

  

站点:grepcode.com   net.sf.jasperreports.engine.export.JRPdfExporter.exportReportToStream

在线查找代码。 (GrepCode基本上提供了一个很酷的站点来查看许多开源项目的源代码。)

在GrepCode页面的顶部,他们拥有项目的版本,因此请确保它指向您正在使用的版本。

然后在错误消息中找到方法或行号。

从这里开始就像调试本地代码一样。您可以看到违规类是什么,以及它属于哪个包。在这种情况下,它指向itext libray作为罪魁祸首。

希望将来可以帮助你,并提供愉快的报道。