如何检查 PDF/A 现有文档与 iText 7 的一致性?

How to check PDF/A conformance of existing document with iText 7?

我正在尝试检查现有 PDF 文档与 iText 的一致性 (PDF/A-1B)。不幸的是,它只检查文档中新创建元素的一致性,而忽略了文档的现有部分。

byte[] pdf = ...; // pdf document which claims to be conform but is not conform (1 font is not embedded)
final PdfADocument pdfADocument = new PdfADocument(new PdfReader(new ByteArrayInputStream(pdf)), 
     new PdfWriter(new ByteArrayOutputStream()));

pdfADocument.close();

如果我添加不符合 pdfADocument 的内容,那么对 close() 的调用将抛出 PdfAConformanceException.

我只找到有关创建符合 PDF/A 的文档的示例,但没有找到仅验证现有文档的示例。

有没有办法检查现有文档是否符合 iText 7?

最初作为评论发布(因为感觉太短而不能成为真正的答案),但现在应 OP 的要求添加为答案:

@mkl 写道:AFAIK iText 只是试图确保它本身不会引入任何问题,但它不包含 PDF/A 验证器。

我回答:我确认。 iText 不是 PDF 验证器。

欧盟正在赞助开源 PDF/A 验证器的开发 iText 正在通过 PDF Association 跟进其开发。 iText 没有计划开发另一个验证器来与之竞争 由欧盟资助的。

有关详细信息,请参阅 verapdf.org