4

我至少会检查一个文档是否声称它符合 PDF/A。

如何使用 iText 做到这一点?

4

4 回答 4

8

啊。PDF/A 规范包含答案(除非有人花钱买它,否则对你没有多大好处)。您可以从 iText 的源代码中挖掘出相同的信息……这实际上可能更容易。如果可能的话,阅读该规范是值得避免的。;)

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

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

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

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

如果您愿意偷工减料并且文档声明了pdfaid命名空间(http://www.aiim.org/pdfa/ns/id),那么可以肯定的是,它会使用它来声明 A 或 B .

于 2011-02-17T23:45:11.013 回答
3

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

 PdfReader reader = new PdfReader("hello.pdf");
 String xmlMetadata = new String( reader.getMetadata() );
于 2012-11-22T11:17:29.453 回答
0

要执行更多操作并检查文档是否合规,您可以使用https://github.com/gba-awl/padaf来验证 Isartor 测试套件。另请参阅如何测试 PDF 文档是否符合 PDF/A?

于 2011-09-08T00:00:53.250 回答
-5

在扩展过滤器的帮助下,PDF/A 文件的扩展名为 .pdf

于 2011-02-17T11:34:08.437 回答