gpt4 book ai didi

python - 使用 python 查找和识别 PDF 中的流

转载 作者:太空宇宙 更新时间:2023-11-03 14:56:19 25 4
gpt4 key购买 nike

我已经尝试了大约一周的时间来自动从 pdf 中提取图像。不幸的是,我在这里找到的答案没有任何帮助。我使用 pypdf2 看到了同一代码的多种变体,全部带有 ['/XObject']其中,结果是 KeyError .

我正在寻找的内容似乎隐藏在流中,我在 pypdf2 中找不到它的字典(即使在递归地探索整个结构之后,在我能找到的每个间接对象上调用 .getObject() )。

使用pypdf2我已经写了一页pdf并使用Notepad++打开它,查找一些带有 /FlateDecode 的流过滤。

pdfrw稍微更有帮助,允许我使用 PdfReader(path).pages[page].Contents.stream获取A流(不知道如何获取其他流)。

使用zlib ,我将其解压,得到了以下内容:

/Part <</MCID 0 >>BDC

(它还包含很多 float ,有正数和负数)

据我所知,BDC与 Ghostscript 有关。

此时我放弃了并决定寻求帮助。

是否有一个 python 工具至少可以提取所有流(并识别 FlateDecode 标签?)

有没有办法让我识别其中隐藏的内容?我期望某种图像格式的开始标签,但这显然不是。如何进一步解析此结果以找到可能隐藏在其中的任何图像?

我正在寻找可以应用于任何正确显示的 PDF 的东西。一些进一步解析的工具,或者至少帮助我理解流,甚至是一个可以帮助我理解正在发生的事情的引用。

编辑:正如帕特里克所说,我似乎找错了树。我去了流,因为我找不到任何xObjects打开 Notepad++ 中的 PDF 时,或者运行用于解析 PDF 的各种 python 脚本时。我设法找到了我怀疑的图像,没有 xObject标签,但看起来像流标签 - 尽管信息未压缩。

最佳答案

除非您想要提取内嵌图像(这并不常见),否则内容流不是查找图像的地方。更常见的情况是 XObject 类型、图像子类型的流,通常可以在页面的 Resource->XObject 字典中找到(请参阅@mkl 指示的 PDF 引用的第 7.3.3、7.8.3 和 8.95 节)。

或者,图像 XObject 也可以在其自己的 Resource->XObject 字典中的 Form XObject(Form 子类型,这表明它们有自己的内容流)中找到,因此对 Image XObject 的搜索可以是递归的。

图像 XObject 还可以有一个 softMask,它本身就是它自己的图像 XObject。表单 XObject 也用于平铺模式,因此可以想象包含图像 XObject(但它们也不常见),或用于注释的正常外观(但图像 XObject 在此类注释中不太常用,除了 3D 或多媒体注释)。

关于python - 使用 python 查找和识别 PDF 中的流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45543240/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com