如何使用itext知道文档是否声称是PDF / A

时间:2011-02-17 11:29:29

标签: java itext pdfa

我至少会检查文件是否声称它符合PDF / A.

我怎样才能使用iText?

4 个答案:

答案 0 :(得分:7)

阿。 PDF / A规范包含答案(除非有人付钱才能获得答案)。您可以从iText的源代码中挖掘相同的信息......实际上可能更容易。如果可能的话,阅读该规范是值得避免的。 ;)

首先,iText将为您提供元数据xml,但“xmp”包仅用于读取XMP,以便iText可以根据需要对其进行修改,然后再将其保存。它实际上不包含任何“get”函数。替换,设置,保存......没有“获取”。

因此,您可以获得XMP元数据:

PdfReader reader = new PdfReader(pdfPath);
byte metaBytes[] = reader.getMetadata();

由您选择的XML解析库可以获得“pdfaid:conformance”值(“A”或“B”)。 XPath会很好。我不确定这是元素正文的值还是属性。我倾向于元素:<pdfaid:conformance>A</pdfaid:conformance>

如果你愿意偷工减料,而且如果文件如此宣布pdfaid名称空间(http://www.aiim.org/pdfa/ns/id),那么这是一个安全的选择。用它来索赔A或B.

答案 1 :(得分:3)

获取XML元数据(不是byte []):

 PdfReader reader = new PdfReader("hello.pdf");
 String xmlMetadata = new String( reader.getMetadata() );

答案 2 :(得分:0)

要执行更多操作并检查文档是否合规,您可以使用https://github.com/gba-awl/padaf对Isartor测试套件进行验证。另请参阅How can I test a PDF document if it is PDF/A compliant?

答案 3 :(得分:-5)

借助扩展名过滤器和PDF / A文件的扩展名为.pdf