【发布时间】:2011-06-29 00:55:42
【问题描述】:
我至少会检查一个文档是否声称它符合 PDF/A。
如何使用 iText 做到这一点?
【问题讨论】:
我至少会检查一个文档是否声称它符合 PDF/A。
如何使用 iText 做到这一点?
【问题讨论】:
借助扩展过滤器,PDF/A 文件的扩展名为 .pdf
【讨论】:
啊。 PDF/A 规范包含答案(除非有人花钱买它,否则对你没有多大好处)。您可以从 iText 的源代码中挖掘出相同的信息……这实际上可能更容易。如果可能的话,阅读该规范是值得避免的。 ;)
首先,iText 将为您获取元数据 xml,但“xmp”包仅用于读取 XMP,以便 iText 可以根据需要对其进行修改,然后再将其保存。它实际上不包含任何“获取”功能。替换、设置、保存……没有“获取”。
这样你就得到了 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。
【讨论】:
要执行更多操作并检查文档是否合规,您可以使用https://github.com/gba-awl/padaf 来验证 Isartor 测试套件。另见How can I test a PDF document if it is PDF/A compliant?
【讨论】:
获取 XML 元数据(不是 byte[]):
PdfReader reader = new PdfReader("hello.pdf");
String xmlMetadata = new String( reader.getMetadata() );
【讨论】: