search - 如何知道 PDF 是否仅包含图像或已进行 OCR 扫描以进行搜索?

标签 search pdf ocr acrobat

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

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

我计划在 C# 或 VB.NET 中执行此操作,但我认为无法区分这两种文件取决于语言。

最佳答案

已转换为 PDF 的扫描图像在之后经过 OCR 处理以使文本可搜索,通常包含呈现为“不可见”的文本部分。因此,您在屏幕上(或打印时在纸上)看到的仍然是原始图像。但是当你搜索 成功后,您会突出显示隐藏文本上的命中。

我建议您查看 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”列中的"is"表示)并使用子集字体(由“子”列中的"is"表示)。
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
------------------------------------ ----------------- --- --- --- ---------

此 PDF 不使用单一字体,因此没有嵌入任何文本(因此也没有 OCR)。

pdftotext 的示例用法:
C:\downloads\> pdftotext ^
                   -layout ^
                   cisco-ip-phone-7911-guide6.1.pdf ^
                   cisco-ip-phone-7911-guide6.1.txt

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

关于search - 如何知道 PDF 是否仅包含图像或已进行 OCR 扫描以进行搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1489733/

相关文章:

search - Vim 状态行 : Word search

JavaScript - 搜索数组中的第一个字符

javascript - 从段落中搜索文本 - Javascript?

c# - 使用 itextsharp 突出显示 PDF 文件时出现数字超出范围错误

python - 如何使用 Tesseract 对图像进行 OCR

search - 如何按未在 ElasticSearch 中编制索引的外部数据进行过滤

android - 在不使用 GoogleDocViewer 的情况下在 android webview 上打开 PDF 文件

opencv - 如何改进写在车辆上的文本的 OCR?

java - 库 com.google.android.gms :play-services-basement is being requested by various other libraries at [[15. 0.1,15.0.1]],但解析为 16.1.0

php - 在 PHP 中使用 TCPDF 将 SVG 转换为 PDF