【发布时间】:2013-06-10 10:50:32
【问题描述】:
我有 Data.xml 文件和一个包含信息的 pdf 文件。我正在尝试将 data.xml 文件嵌入到 PDF 的 XMP 元数据流中,因为应该隐藏此数据。
我使用 iText 创建 pdf 并添加通常的元数据,例如作者等。但我无法理解如何将 xml 作为元数据添加到 xmp 流中。 iText 或 xmlworker 库中是否有允许我执行此操作的函数?我已经尝试过,但我找不到这样做的方法。
(我没有要发布的代码,因为为创建 pdf 等而编写的所有代码都可以完美运行,只是不知道如何继续执行我之前描述的操作。iText 库中是否有提供它的东西,或者我应该使用其他工具?)
【问题讨论】:
-
也许您可以将 xml 转换为字符串并将其添加为 XmpArray 的元素。 itextpdf.com/examples/iia.php?id=217
-
@user1516873 您的意思是将所有 xml 内容转换为一个大字符串,将其放入数组中,然后在需要重建 xml 文件时提取字符串?这是一个好的解决方案吗?
-
是的,我是认真的。也许您可以将该大字符串直接存储为您的自定义属性之一,而无需将其包装在数组中。我认为这不是最好的,甚至不是很好的解决方案,但我没有看到其他可能的方法来使用 iText。
-
另外:为什么要将实际数据(而不是元数据)放入 XMP 流中?在 PDF/A-3 中,数据作为文档级附件添加。这比将其放入 XMP 流更有意义。
-
文档级附件不会在任何页面上可见,但人们可以在附件面板中选择它,就像他们可以看到 XMP 的内容一样 (是的,使用 iText 添加文档级附件很容易)。当然,还有许多其他方法可以将数据添加到不可见的 PDF 中。例如,Adobe Illustrator 在 PDF 的根字典中添加专有工件作为 /PieceInfo 条目。 iText 也可以做到这一点。我能想到的解决方案有很多;都比滥用 XMP 流好。