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

发布于 2024-10-18 08:40:01 字数 58 浏览 1 评论 0原文

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

我怎样才能使用 iText 做到这一点?

I would check at least if a document claims that it's conformant to PDF/A.

How can I do that using iText?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

一世旳自豪 2024-10-25 08:40:01

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

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

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

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

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

如果您愿意走捷径并且文档声明了 pdfaid 命名空间 (http://www.aiim.org/pdfa/ns/id),可以肯定的是,它将使用它来声明 A 或 B。

Ah. The PDF/A spec contains The Answer (which doesn't do you much good unless someone paid money to get it). You could dig the same info out of iText's source... which may actually be easier. Reading that spec is worth avoiding if at all possible. ;)

First of all, iText will get you the metadata xml, but the "xmp" package is meant for reading XMP only so that iText can modify it as needed before saving it out again. It doesn't actually contain any "get" functions. Replace, set, save... no "get".

So you get the XMP metadata thusly:

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

It's up to your XML parsing library of choice to get the "pdfaid:conformance" value ("A" or "B") out. XPath would be good. I'm not sure if that's an element body's value, or an attribute. I'm leaning towards element: <pdfaid:conformance>A</pdfaid:conformance>

If you're willing to cut corners and if the doc so much as declares the pdfaid namespace (http://www.aiim.org/pdfa/ns/id), it's a safe bet it's going to use it to claim A or B.

橘寄 2024-10-25 08:40:01

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

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

Get XML Metadata (not byte[]):

 PdfReader reader = new PdfReader("hello.pdf");
 String xmlMetadata = new String( reader.getMetadata() );
关于从前 2024-10-25 08:40:01

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

To do more and check if the document is compliant, you can use https://github.com/gba-awl/padaf to validate against the Isartor test suite. See also How can I test a PDF document if it is PDF/A compliant?

暖风昔人 2024-10-25 08:40:01

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

with the help of extension filter and the extension for PDF/A files is .pdf

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文