3

如标题中所述,我正在升级我的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)

请帮我。

4

1 回答 1

6

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


我碰巧知道了这个,因为我过去遇到过它,但作为将来的有用说明,这是我最初用来弄清楚它的过程。

由于 JasperReports 是开源的,因此可以很容易地在网上找到代码。所以我谷歌:

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

网上找代码。(GrepCode 基本上提供了一个很酷的站点来浏览许多开源项目的源代码。)

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

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

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

希望以后能帮到你,祝你报道愉快。

于 2012-06-13T02:57:59.903 回答