有没有一种方法可以删除PDF/A文档上的XMP元数据而不删除PDF/A的标准化?
我发现用
PdfReader reader = new PdfReader(src);
PdfDictionary dict = reader.getCatalog();
dict.remove(PdfName.METADATA);
dict.remove(PdfName.PROPERTIES);
reader.removeUnusedObjects();移除XMP和PDF/A。是否有方法在保留标准的同时删除XMP,或者将PDF/A重新引入已处理文档?
谢谢。
发布于 2015-07-21 10:19:37
您无法删除PDF/A文档中的XMP信息;因为您已经发现,这也将自动使其作为PDF/A失效。但是,您需要保留在XMP容器中的信息量是最小的。
本技术说明对此进行了描述:http://www.pdfa.org/publication/technical-note-tn0003-metadata-in-pdfa-1/
基本上,它归结为这样一个事实:您需要保留PDF/A标识和一致性级别;其他一切都可以丢弃。因为我们说的是XMP,你有很多可能性。一种是通过PDF库并以这种方式处理它。但是,第二个、也是最简单的方法是使用一个库,它支持在PDF中读取/写入XMP,并简单地将文件中的XMP数据包替换为一个只包含所需信息的库。
如果您正确地这样做(而不损害PDF文件),这不应该使PDF无效或它处于PDF/A遵从状态(不过,我肯定建议使用PDF/A验证器正确地测试生成的PDF文件,以确保在生产工作流中使用它之前正确地这样做)。
不过,有一个警告,在上面提到的技术说明中也提到了这一点。
PDF/A-1根本不要求符合标准的文档在文档信息字典中包含任何条目。然而,当那些在PDF1.4引用中指定的信息尝试(除了被捕获的条目)存在时,必须在文档的元数据中有一个相等的条目,并且两者必须按照PDF/A-1的规定匹配。
所以..。如果文档包含文档属性,则必须删除这些属性或在XMP数据包中匹配它们。
https://stackoverflow.com/questions/31529496
复制相似问题