将JasperReports 1.3.1升级到JasperReports 4.6

Far*_*bar 2 java pdf report jasper-reports

我正在按照标题中所述升级JasperReports版本。我对JasperReports版本升级了解不多。为了使它起作用,我必须更改所有内容。我有所有的最新.jar文件。但是当我打印.PDF报告时,它给了我这个错误。

error:could not open file because its damaged or not supported.
Run Code Online (Sandbox Code Playgroud)

在日食中显示了此异常

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)
Run Code Online (Sandbox Code Playgroud)

请帮我。

Jac*_*oen 5

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


过去遇到这个问题的时候,我碰巧知道这个问题,但是作为将来有用的笔记,这是我最初弄清楚这个问题的过程。

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

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

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

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

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

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

希望以后对您有所帮助,祝您报告愉快。