我正在使用此代码生成 PDF,一切正常。
JasperReport jasperReport = (JasperReport) JRLoader.loadObject(new File(reportname));
JRDataSource ds = ... a datasource
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, d.getHashMap(), ds);
JasperExportManager.exportReportToPdfFile(jasperPrint, output_path + "p4.pdf");
当我尝试生成符合 pdf 的 pdfa1b 时,我得到了这个异常
Exception in thread "main" java.lang.NullPointerException
at com.itextpdf.text.pdf.internal.PdfA1Checker.checkPdfObject(PdfA1Checker.java:323)
at com.itextpdf.text.pdf.internal.PdfAChecker.checkPdfAConformance(PdfAChecker.java:208)
at com.itextpdf.text.pdf.internal.PdfAConformanceImp.checkPdfIsoConformance(PdfAConformanceImp.java:71)
at com.itextpdf.text.pdf.PdfWriter.checkPdfIsoConformance(PdfWriter.java:3426)
at com.itextpdf.text.pdf.PdfWriter.checkPdfIsoConformance(PdfWriter.java:3422)
at com.itextpdf.text.pdf.PdfDictionary.toPdf(PdfDictionary.java:137)
at com.itextpdf.text.pdf.PdfArray.toPdf(PdfArray.java:175)
at com.itextpdf.text.pdf.PdfDictionary.toPdf(PdfDictionary.java:149)
at com.itextpdf.text.pdf.PdfIndirectObject.writeTo(PdfIndirectObject.java:158)
at com.itextpdf.text.pdf.PdfWriter$PdfBody.write(PdfWriter.java:420)
at com.itextpdf.text.pdf.PdfWriter$PdfBody.add(PdfWriter.java:398)
at com.itextpdf.text.pdf.PdfWriter$PdfBody.add(PdfWriter.java:334)
at com.itextpdf.text.pdf.PdfWriter.addToBody(PdfWriter.java:829)
at com.itextpdf.text.pdf.PdfWriter.close(PdfWriter.java:1311)
at com.itextpdf.text.pdf.PdfAWriter.close(PdfAWriter.java:336)
at com.itextpdf.text.pdf.PdfDocument.close(PdfDocument.java:886)
at com.itextpdf.text.Document.close(Document.java:416)
at net.sf.jasperreports.engine.export.JRPdfExporter.exportReportToStream(JRPdfExporter.java:830)
at net.sf.jasperreports.engine.export.JRPdfExporter.exportReport(JRPdfExporter.java:519)
at net.sf.jasperreports.engine.JasperExportManager.exportToPdfFile(JasperExportManager.java:157)
at net.sf.jasperreports.engine.JasperExportManager.exportReportToPdfFile(JasperExportManager.java:505)
at ga.jr.run.RunMe.main(RunMe.java:45)
这是我的碧玉文件的一部分
<property name="net.sf.jasperreports.export.pdf.tagged" value="true"/>
<property name="net.sf.jasperreports.export.pdfa.conformance" value="pdfa1b"/>
<property name="net.sf.jasperreports.export.pdfa.icc.profile.path" value="Z:\\Produzione\\Development\\TEMPLATE\\sRGB_v4_ICC_preference.icc"/>
如果我删除 net.sf.jasperreports.export.pdfa.conformance(或将其设置为“无”)也不例外,但文件不是 PDF/A
怎么了?谢谢
编辑:我正在使用 iText 5.5.3(使用 itext 5.5.0 的问题相同)和 Jasperreports 6.0.0
编辑:使用 AdobeRGB1998.icc 和 sRGB_v4_ICC_preference.icc、ISOnewspaper26v4_gr.icc 和 ISOnewspaper26v4.icc、eciRGB_v2.icc 和 ISOcoat_v2_300_eci.icc(在我的 PDFCreator 安装目录中找到)相同的异常进行测试