今天,我收到了供应商提供的PDF,其中包含几张带有签名等的印刷和扫描页面。我在Acrobat Reader DC中打开了它。但是令我惊讶的是,可以从明显扫描的图像中选择文本并将其复制为文本。看截图:
由于复制的文本包含错误,因此在此之后显然存在一些OCR。但这怎么可能呢?我以前从未见过,如何创建呢?
今天,我收到了供应商提供的PDF,其中包含几张带有签名等的印刷和扫描页面。我在Acrobat Reader DC中打开了它。但是令我惊讶的是,可以从明显扫描的图像中选择文本并将其复制为文本。看截图:
由于复制的文本包含错误,因此在此之后显然存在一些OCR。但这怎么可能呢?我以前从未见过,如何创建呢?
Answers:
(与这里的其他答案相反),这很可能与Acrobat毫无关系。
当您选择“另存为PDF”并在设置中选中“可搜索”复选框时,大多数(全部?!)专业文档扫描仪和大多数半专业的文档扫描仪将自动执行OCR。较便宜的“消费级”型号将在连接的PC上执行OCR,典型的网络扫描仪在内部执行。
“可搜索”一词的含义不外乎是扫描程序将执行OCR,然后生成一个页面,其中包含扫描的位图,并用OCR的不可见字符覆盖它们,每个字符都放在位图上的相应字符上。
这样,您就可以像魔术一样搜索,选择,复制和粘贴“位图”。但是,这根本不是魔术。实际上,您只是在复制不可见的文本。
扫描仪还可以执行一些其他操作,例如将许多小图块中的大图像合成在一起,这些小图块也可以重复使用。这样会导致文档尺寸比实际可能的要小得多,但是也可能导致有趣的惊喜(如果碰巧发生在您面前,那就不会那么有趣!),例如Xerox会改变您的账单故事,具有讽刺意味的是,即使没有完成OCR,这也取决于在固件上。
但这怎么可能呢?
基本上,程序对输入文件执行OCR,然后在图片上放置不可见的文本层。或者,它也可以在图片下放置可见的文本层,从而产生相同的效果。
选择某项时,图片无所谓,因为选择了文本层。
如何创建?
有几种方法。鉴于已经建议了Acrobat,我将添加一些免费选项(幸运的是,您不必强迫Windows使用它们)。
这是Tracker Software的本机Windows程序。如果在32位前缀中使用32位版本,则该免费软件版本在Wine下运行良好,因此可以在Windows,macOS和Linux上使用它。在后两种情况下,您将分别需要PlayOnMac或PlayOnLinux。
这是我在Ask Ubuntu上留下的答案的图片:
这是一个基于Python的多平台程序,基于Ghostscript,Tesseract和Unpaper。从文档:
OCRmyPDF做什么
OCRmyPDF分析PDF的每个页面,以确定捕获该页面上的所有信息而不丢失内容所需的色彩空间和分辨率(DPI)。它使用Ghostscript栅格化页面,然后对栅格化图像执行OCR,以创建OCR“图层”。然后将该层移植回原始PDF。
它可以轻松地安装在Debian和Ubuntu衍生产品上:
apt-get install ocrmypdf
或在macOS上:
brew tap jbarlow83/ocrmypdf
brew install ocrmypdf
在Windows上,您将需要使用Docker映像。有关详细信息,请参见官方文档。
用法非常简单,我建议您使用可选的-d
(歪斜校正)和-c
(干净)参数以获得更好的结果。在运行OCR程序之前,它将拉直每一页并清除小点/缺陷。
您可以(并且应该)使用提供语言-l
。
这是一个用意大利语编写的偏斜文档中的示例:
我使用的命令是:
ocrmypdf -l ita -d -c input.pdf output.pdf
有一些在线工具可以做到这一点。值得注意的是,PDF24托管了一个基于Web的免费OCRmyPDF版本,可以不受限制地使用。
也可以看看:
这可能是由于Acrobat OCR功能所致:
Acrobat可以用多种语言识别任何PDF或图像文件中的文本。您所要做的就是打开要OCR的扫描文档或图像,然后单击工具栏右上方的蓝色“工具”按钮。在该边栏中,选择“识别文本”选项卡,然后单击“在此文件中”按钮。
...
识别出文本后,您现在可以使用所有常规标记工具标记PDF —您可以突出显示,划线文本等等。您甚至可以使用检测到的格式复制文本,尽管这通常不如文本识别本身准确。
识别扫描的PDF文件中的文本
当您将纸质文档扫描为PDF时,您实际上只是在为这些文档拍照。这对于照片和其他打印图像非常有用,但是如果您有一个200页的文档,需要在其中找到特定的单词或短语,该怎么办?使用Acrobat识别该扫描文件中的文本,使文本内容可搜索和可用。
- 在Acrobat中打开扫描的文档后,打开“工具”窗格并展开“文本识别”面板。如果在“工具”窗格中看不到“文本识别”,则可以通过选择右上角的菜单来添加它(下图–看到红色小箭头指向的位置吗?单击此处)。
- 单击“在此文件中”以扫描您打开的文档。您可以接受默认设置,然后在“识别文本”对话框弹出时单击“确定”。Acrobat会将图像转换为可用的文本;要对其进行测试,只需尝试使用“内容编辑”面板编辑一个单词或句子。那不是很棒!?