合并多个PDF并使用Apache PdfBox创建新的PDF / A

时间:2019-08-15 11:10:31

标签: pdf pdfbox

我正在使用Apache PdfBox预设几种非PDF / A表单,并使用PDFMergerUtility将这些PDF合并在一起,并创建新PDF的字节数组。


PDFMergerUtility mergerUtility = new PDFMergerUtility();

// presetting forms of these PDFs is omitted for readability
mergerUtility.addSource(new File("a.pdf"));
mergerUtility.addSource(new File("b.pdf"));
mergerUtility.addSource(new File("c.pdf"));

ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
mergerUtility.setDestinationStream(outputStream);

try {    
  mergerUtility.mergeDocuments(MemoryUsageSetting.setupMainMemoryOnly());
  return outputStream.toByteArray();
} catch (IOException ex) {
  log.error("Unable to merge documents", ex);
  throw new RuntimeException("Unable to merge", ex);
}

有没有办法告诉PDFMergerUtility创建无法再修改的有效PDF / A文档?

1 个答案:

答案 0 :(得分:2)

除非您自己创建,否则将现有的PDF从“野外”转换为兼容的PDF/A是一个非常复杂的主题。我建议您使用CallasPDF-Tools或其他公司的产品。

(PDFBox具有一个命令行工具(预检),用于检查您的PDF是否符合PDF / A-1b。这可以让您领会“普通” PDF的所有缺点)