首页 文章

如何知道PDF是否仅包含图像还是已经过OCR扫描以进行搜索?

提问于
浏览
20

我有一堆来自扫描文档的PDF文件 . 这些文件包含图像和文本的混合 . 有些被扫描为没有OCR的图像,因此每个PDF页面都是一个大图像,即使整个页面完全是文本 . 其他人使用OCR进行扫描,并包含图像和可搜索的文本,其中包含文本 . 在许多情况下,甚至图像中的文字也可以搜索到 .

我想使用OCR,使用Acrobat 8 Pro进行自动处理以识别所有扫描文档中的文本,但我不想重新OCR过去已经通过OCR过程的文件 . 有没有人知道是否有办法告诉哪些只包含图像,哪些已包含可搜索的文本?

我打算在C#或VB.NET中这样做,但我不认为能够分辨两种文件是依赖于语言的 .

7 回答

  • -2

    Apago的pdfspy将PDF中的信息提取到XML文件中 . 它包括有关文档的信息,包括图像和文本 . 对于您的项目,有用的信息包括图像数量和大小以及存在OCR(隐藏)文本的位置 .

    http://www.apagoinc.com/pdfspy

  • 1

    很抱歉挖掘旧线程,但是如果你发现这看了我的帖子:

    Batch OCR Program for PDFs

    您可以通过在unix / linux / osx中捕获它或在python中将其作为“rb”模式打开来获取有关pdf的额外信息 . (当然那是python,你不想使用它,但也许它有相同的东西) .

  • 19

    使用“dtsearch”为所有pdf文件创建索引...然后“查看索引过程的日志文件”以检查未编制索引的pdf文件列表 .

  • -1

    一种非常低技术的解决方案:任何扫描文本的文件无疑都包含字母“a”,因此搜索所有不包含字母a的文件内容 . 即“不是” . 显示的任何文件都不会被OCR

  • 0

    转换为PDF的扫描图像在后果中已被OCR处理以使文本可搜索通常包含呈现为"invisible"的文本部分 . 因此,您在屏幕上(或打印时在纸上)看到的仍然是原始图像 . 但是当你成功的时候,你会得到突出显示在隐形文本上的命中 .

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

    Example usage of 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'列中用'yes'表示)并使用子集字体(在'sub'列中用'yes'表示) .

    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种字体(由“名称”列表示) . 字体'Universe-BlackOblique'完全嵌入(由'emb'列中的'yes'表示,'sub'列中的'no'表示) . 字体'Arial'也被使用,但未嵌入 .

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

    This PDF uses not a single font, and hence does not have any text embedded (so no OCR either).

    Example usage of pdftotext:

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

    这将从PDF中提取所有文本字符串(试图保留原始布局的一些相似性) . 如果PDF中没有文字,你就知道没有OCR ......

  • 0

    各种PDF工具可以告诉您是否有文本 . 有些可用作COM控件,甚至可能是原生.NET控件 .

  • 3

    在acrobat中打开文档 . 转到文件 - >属性 . 查看“高级”部分,找到PDF Producer . 如果它读取类似“Paper Capture ...”的内容,那么它已经被OCR了 .

    希望这可以帮助 .

相关问题