我目前正在使用新的德国 ZUGFeRD 文件。这些是 PDF A/3 文件,其中嵌入了包含数据的 XML 文件。
我想使用带有 C# 的 abcpdf 8.1 从 PDF A/3 中提取这个 XML 文件。
知道怎么做吗?
非常感谢和问候,
我不知道 abcpdf 但我猜 pdf 库提供了对 pdf 内容的类似访问。
首先看一下Das-ZUGFeRD-Format_1p0.pdf。特别是第 112 页。图像显示了您必须遍历才能找到 xml 流的对象树。
有了这棵树,你就有了名字、类型和方向。现在您可以遍历 pdf 对象树以获取您正在寻找的 XML 内容。
步骤以图为准。
AF
从目录中获取具有名称的数组AF
(应该是file spec
)file spec
获取名为的字典EF
EF
这是您获取内容所需执行的步骤。
要显示 pdf 的结构并浏览树,我建议使用iText RUPS 之类的工具
我用 abcpdf 做了什么:
从文档中获取 Objectsoup 数组(几乎是文档中所有对象的数组)
由于 ZUGFeRD 只允许在 PDF 中嵌入一个文件,我只是在这个 objectsoup-array 中搜索了包含 /EmbeddedFile 的 StreamObject 类型之一
解压那个对象的Stream,得到stream的byte[],写入xml文件