3

我目前正在使用新的德国 ZUGFeRD 文件。这些是 PDF A/3 文件,其中嵌入了包含数据的 XML 文件。

我想使用带有 C# 的 abcpdf 8.1 从 PDF A/3 中提取这个 XML 文件。

知道怎么做吗?

非常感谢和问候,

4

2 回答 2

3

我不知道 abcpdf 但我猜 pdf 库提供了对 pdf 内容的类似访问。

首先看一下Das-ZUGFeRD-Format_1p0.pdf。特别是第 112 页。图像显示了您必须遍历才能找到 xml 流的对象树。

有了这棵树,你就有了名字、类型和方向。现在您可以遍历 pdf 对象树以获取您正在寻找的 XML 内容。

步骤以图为准。

  1. 阅读您的 PDF
  2. 获取 PDF 中的目录
  3. AF从目录中获取具有名称的数组
  4. 从数组中获取第一个元素AF(应该是file spec
  5. file spec获取名为的字典EF
  6. 获取流内容EF

这是您获取内容所需执行的步骤。

要显示 pdf 的结构并浏览树,我建议使用iText RUPS 之类的工具

于 2014-02-11T16:27:35.910 回答
-2

我用 abcpdf 做了什么:

  • 从文档中获取 Objectsoup 数组(几乎是文档中所有对象的数组)

  • 由于 ZUGFeRD 只允许在 PDF 中嵌入一个文件,我只是在这个 objectsoup-array 中搜索了包含 /EmbeddedFile 的 StreamObject 类型之一

  • 解压那个对象的Stream,得到stream的byte[],写入xml文件

于 2014-02-12T10:39:08.917 回答