如何知道,如果一个PDF仅包含的图像或者已经OCR扫描寻找?
题
我有一大堆的PDF文件来扫描文件。该文件包含混合的图像和文字。一些扫描图像没有OCR,因此每个PDF页面是一个大型的图像,甚至在整个页面是完全的文本。其他人被扫描和OCR含有图象和可搜索的案文文本。在许多情况下甚至词语的图像制作可搜索。
我想做一个自动化过程中承认的文字所有的扫描文件使用OCR,Acrobat8亲,但我不想再OCR的文件,已经通过OCR过程中在过去。没有人知道,如果有一个方法可以告诉这些只包含的图像,以及哪些已经包含可检索的文本?
我计划这样做C#或VB.NET 但我不认为能够告诉这两类文件除了语言相关的。
解决方案
Scannned图像转换成PDF已OCR在后果,使文检索做通常包含的文字部分为"隐形"。所以你看到屏幕上(或者在纸上打印)仍然是原始图像。但是当你 搜索 成功的,你得到的命强调指出,在无形的文本。
我建议你看看XPDF衍生工具commandline 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使用的字体(指示'name'柱),他们嵌入的(表示"是"在'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个字体(指示'name'栏)。字体宇宙-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...
其他提示
各种PDF工具可以告诉你,如果有的案文。一些可作为COM控制,也许甚至是本地人。净的。
打开文件中的杂技演员。去文件的>的性质。看看在"高级"部分,并找到PDF生产者。如果读一些像"纸捕捉..."那么它已经OCR。
希望这会有所帮助。
Apago的pdfspy提取信息,从PDF到XML文件。它包括信息有关的文件,包括图像和文字。项目的有用信息包括图像的数量和尺寸和有OCR(隐藏)的案文。
对不起挖旧线,但是如果你发现这个看看我的线:
你可以获得额外的信息有关的pdf格式的工在unix/linux/os x或打开它为"rb"模式在蟒蛇。(当然,蟒蛇,你没有想到使用,但也许它拥有的东西当量)。
使用"dtsearch"创建一个指数,为所有的pdf文件。"然后查看录文件"的索引编制过程检查清单的pdf文件,未编入索引。
一个非常技术含量低的解决方案:任何文件,该文件已经扫描的文本,无疑将包含有字母"a"因此,要搜索的所有文件的内容不包含的信。即"不"。任何文件,显示没有直OCR会