如何知道如果一个PDF只包含图片或已被OCR扫描搜索?(How to know if a PDF c

2019-07-19 23:56发布

我有一大堆的PDF文件,从扫描的文档来了。 该文件包含图像和文本的混合。 一些被扫描,没有OCR图像,所以每个PDF页面是一个大的图像,即使在整个页面完全是文字。 其他与OCR扫描并包含图像和文本搜索的文本在那里存在。 在许多情况下,图像,即使说完后,可搜索。

我想打一个自动化流程来识别文本中的所有使用OCR扫描的文件,与Acrobat 8​​专业版,但我不想再OCR是已经通过了在过去的OCR处理的文件。 有谁知道是否有办法告诉哪些只包含图片,哪些已经包含搜索文本?

我计划在C#或VB.NET这样做,但我不认为能够说出两种文件除了依赖于语言。

Answer 1:

Scannned图像转换为已OCR'ed善后使文本搜索也通常含有渲染为“看不见”的文本部分PDF。 所以你在屏幕上看到(或打印时纸张)仍然是原始图像。 但是,当你成功地搜索 ,你得到的命中突出显示了在不可见的文本。

我建议你看XPDF衍生命令行工具pdffonts(.exe) pdfinfo(.exe)pdftotext(.exe) 看到这里下载: http://www.foolabs.com/xpdf/download.html

的示例用法pdffonts

C:\downloads\> pdffonts cisco-ip-phone-7911-guide6.1.pdf
name                                 type              emb sub uni object ID
------------------------------------ ----------------- --- --- --- ---------
LGOKFL+Univers-BlackOblique          Type 1C           yes yes no   13171  0
LGOKGM+Univers-Black                 Type 1C           yes yes no   13172  0
[....]

此PDF(在“EMB”列指示由“是”)使用的字体(在“名称”列中显示),已经他们的嵌入式和使用子集字体(在“子”栏由“是”表示)。

C:\downloads\> pdffonts examle1.pdf
name                                 type              emb sub uni object ID
------------------------------------ ----------------- --- --- --- ---------
Univers-BlackOblique                 Type 1C           yes no  no   14    0
Arial                                TrueType          no  no  no   15    0

这PDF使用2种字体(在“名称”列中显示)。 字体“宇宙-BlackOblique”完全嵌入(在“EMB”列由“是”表示,而“否”中的“子”列)。 字体“宋体”也被使用,但不嵌入。

C:\downloads\> pdffonts examle2.pdf
name                                 type              emb sub uni object ID
------------------------------------ ----------------- --- --- --- ---------

这PDF使用不是一个单一的字体,因此不具有任何嵌入文本(所以没有OCR其一)。

的示例用法pdftotext

C:\downloads\> pdftotext ^
                   -layout ^
                   cisco-ip-phone-7911-guide6.1.pdf ^
                   cisco-ip-phone-7911-guide6.1.txt

这将提取从PDF中的所有文本字符串(试图保留原来的布局有些类似)。 如果在PDF没有文字,你会知道有没有OCR ...



Answer 2:

各种PDF工具可以告诉你,如果有文字。 有些是可以作为COM控件,甚至可能本机.NET的。



Answer 3:

在Acrobat中打开文档。 转到文件 - >属性。 看“高级”部分中,找到PDF制作。 如果它读取类似“纸捕捉...”,那么它已经OCR'd。

希望这可以帮助。



Answer 4:

Apago的pdfspy提取从PDF信息到一个XML文件中。 它包括有关,包括图像和文本的文档信息。 为您的项目,有用的信息,包括图像数和大小,那里是OCR(隐藏)文本。

http://www.apagoinc.com/pdfspy



Answer 5:

对不起,挖旧线,但如果你发现这个看看我的线程:

批量OCR计划PDF文件

您可以在UNIX / LINUX / OSX或打开它作为蟒蛇“RB”模式catting它获取有关PDF的额外信息。 (当然,这是蟒蛇,你不想使用,但也许它的东西当量)。



Answer 6:

使用“dtsearch”为所有PDF文件创建一个索引......然后“查看日志文件”索引过程中,检查未编入索引的PDF文件列表。



Answer 7:

一个非常低技术的解决方案:已扫描的文本无疑将包含字母“a”这样做搜索上不包含字母AIE的所有文件内容“而不是”的任何文件。 显示的任何文件将不被OCR'd



文章来源: How to know if a PDF contains only images or has been OCR scanned for searching?