【发布时间】:2026-01-11 20:05:02
【问题描述】:
问题:
我正在尝试创建一个符合 PDF/A-1b 的文件,从使用 JasperReports 的 java 开始。
我正在使用 Adobe Acrobat Pro DC 使用 preflight 工具检查文件,这给了我一个关于字段 dc:title 的错误,这是错误的屏幕截图:
我已尝试以任何可能的方式设置属性,但我仍然收到此错误,我不知道为什么。我试过在http://purl.org/dc/elements/1.1/dc:title 阅读,但我没有发现任何有用的东西。
我怀疑此报告有关元数据 -> 高级 -> http://purl.org/dc/elements/1.1 ,我看到 dc:title 为空,dc:title[1] 已填充,但我不知道如何设置第一个。
代码 sn-p
Session session = getMyConnection();
SessionImpl sessionImpl = (SessionImpl) session;
Connection conn = sessionImpl.connection();
String title = "Test title";
Map<String, Object> hm = new HashMap<>();
hm.put(JRHibernateQueryExecuterFactory.PARAMETER_HIBERNATE_SESSION, session);
hm.put("ID", getTestId();
hm.put("reportTitle", title); //Title here
hm.put("info.title", title); //Title here
JasperReport jasperReport = JasperCompileManager
.compileReport("c:/eglobal/TEST_REPORT.jrxml");
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, hm, conn);
jasperPrint.setProperty(PdfExporterConfiguration.PROPERTY_METADATA_TITLE, title); //Title here
JRPdfExporter exporter = new JRPdfExporter();
SimplePdfExporterConfiguration configuration = new SimplePdfExporterConfiguration();
configuration.setPdfaConformance(PdfaConformanceEnum.PDFA_1B);
configuration.setIccProfilePath("c:/eglobal/AdobeRGB1998.icc");
configuration.setMetadataTitle(title); //Title here
configuration.setDisplayMetadataTitle(true);
exporter.setExporterInput(new SimpleExporterInput(jasperPrint));
exporter.setExporterOutput(new SimpleOutputStreamExporterOutput("c:/eglobal/TEST_REPORT.PDF"));
exporter.setConfiguration(configuration);
exporter.exportReport();
如您所见,标题以各种可能的方式设置(请参阅//Title here 评论):我已经单独尝试了每个标题,但没有任何变化。
图书馆
这些是我正在使用的库
<jasperVersion>6.16.0</jasperVersion>
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports-fonts</artifactId>
<version>${jasperVersion}</version>
</dependency>
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>${jasperVersion}</version>
</dependency>
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports-metadata</artifactId>
<version>${jasperVersion}</version>
</dependency>
【问题讨论】:
标签: java maven itext jasper-reports pdfa