使用PDFBox将页面添加到PDF / A文件而不会丢失PDF / A有效性

时间:2018-12-13 08:51:30

标签: java pdfbox

我正在开发一个Java应用程序,该程序必须处理包含PDF / A文件的文件夹,并使用Apache的PDFBox库为每个文件添加一个包含一些信息的页面。问题在于添加信息后的输出PDF文件不再是PDF / A。这是来自以下网站的验证测试:https://www.pdf-online.com/osa/validate.aspx

Validation output

这是我用来生成PDF文件的代码的相关部分:

  String pdfFileName = this.baseFolder+this.extendedPDFFileName;

  File file = new File(pdfFileName); 

  PDDocument pdfFile = PDDocument.load(file);

  PDPage pag = new PDPage();

  // As a test, simply adding a page makes the PDF unvalid as PDF/A
  pdfFile.addPage(pag);

  pdfFile.save(file);

  pdfFile.close();

如何保持PDF / A格式的有效性?预先感谢,

2 个答案:

答案 0 :(得分:1)

正如Tilman Hausherr所建议的那样,已通过在新页面中添加PDResources对象来解决该问题,如下所示:

pag.setResources(new PDResources());

现在我在嵌入字体方面遇到了麻烦,但这是另一个问题:)

非常感谢!

答案 1 :(得分:0)

您在代码中创建了一个普通的PDF,您应该从一开始就创建一个有效的PDF / A。 这是链接:https://pdfbox.apache.org/1.8/cookbook/pdfacreation.html