关于python:pdfminer pdf2text输出’FF’

pdfminer pdf2text outputs 'FF'

enter

1
$ pdf2txt.py -o test1 download.pdf

给我截图输出。当我运行时:

1
$ dumppdf.py -o test2 download.pdf

我知道了:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<trailer>
<dict size="4">
<key>Info</key>
<value><ref id="47" /></value>
<key>ID</key>
<value><list size="2">
<string size="16">+NM</string>
<string size="16"></string>
</list></value>
<key>Root</key>
<value><ref id="46" /></value>
<key>Size</key>
<value><number>48</number></value>
</dict>
</trailer>

<trailer>
<dict size="4">
<key>Info</key>
<value><ref id="47" /></value>
<key>ID</key>
<value><list size="2">
<string size="16">+NM</string>
<string size="16"></string>
</list></value>
<key>Root</key>
<value><ref id="46" /></value>
<key>Size</key>
<value><number>48</number></value>
</dict>
</trailer>

下一步我该怎么做?我该如何工作?


pdfminer无法从相关文档中提取任何可用文本的原因是该文档不包含文本!

更确切地说,Worksheet PDF不包含文本绘制指令,仅包含图形绘制指令(其结果看起来像文本)。另一方面,PDF文本提取器(如pdfminer)仅检查文本绘制指令,因此它们将不返回任何内容。

因此,要从此类文档中挖掘数据,最好使用OCR,而不要提取文本。

在您询问的评论中

how do you know that only graphic instructions are contained? What tools do you use?

您需要一个PDF浏览器应用程序和一些PDF内部知识。

作为PDF浏览器,我通常使用iText RUPS或PDFBox PDF调试器。但是也有其他好的浏览器,例如Adobe Preflight中包含一个。

使用这样的PDF浏览器,您可以检查PDF的内容流,其中包含绘制页面的说明。而且,在您的情况下,这些内容流不包含任何文本绘制指令,仅包含图形绘制指令。

通过研究PDF规范ISO 32000-2(如果没有较新的规范,也可以使用旧的前体规范ISO 32000-1,这也是一个很好的起点)来获得PDF内部知识。 -word的PDF文件。