PDF-XChange 查看器

PDF-XChange 查看器

今天,我收到了供应商发来的一份 PDF,其中包含几页打印和扫描的页面,上面有签名等。我用 Acrobat Reader DC 打开了它。但令我惊讶的是,我可以从明显是扫描的图像中选择文本并将其复制为文本。请看屏幕截图:

带有可选文本的扫描 PDF

显然,这背后有 OCR 的功劳,因为复制的文本有错误。但这怎么可能呢?我以前从未见过这种情况,这是怎么造成的?

答案1

这(与这里的其他一些答案相反)很可能与 Acrobat 根本无关。

大多数(全部?!)专业文档扫描仪和大多数半专业文档扫描仪都会在您选择“另存为 PDF”并在设置中勾选“可搜索”复选框时自动执行 OCR。较便宜的“消费级”型号将在连接的 PC 上执行 OCR,而典型的网络扫描仪则在内部执行。

“可搜索”一词的含义无非是扫描仪将执行 OCR,然后生成包含扫描位图的页面,并将其与 OCR 中的不可见字符相叠加,每个字符都放置在位图上的相应字符上。

这样,您就可以像变魔术一样搜索、选择、复制和粘贴“位图”。然而,这根本就不是魔术。实际上,您只是复制了不可见的文本。

扫描仪还可以做一些额外的魔法,比如将许多小图块合成大图像,这些小图块也可以重复使用。这样得到的文档大小比实际可能的大小要小得多,但也可能导致一些有趣的惊喜(如果发生在你身上就不那么有趣了!),比如施乐公司篡改你的账单,具有讽刺意味的是,即使没有完成 OCR,也取决于固件。

答案2

但这怎么可能呢?

基本上,程序对输入文件执行 OCR,然后在图片上放置一层不可见的文本。或者,它也可能放置一层可见的文本在下面图片,产生同样的效果。

当你选择某个东西时,图片并不重要,因为文本层已被选中。

这是怎么实现的?

有几种方法。鉴于已经有人推荐使用 Acrobat,我将添加一些免费选项(幸运的是,您不必在 Windows 上使用这些选项)。

PDF-XChange 查看器

这是一个Tracker Software 的原生 Windows 程序。如果您在 32 位前缀中使用 32 位版本,则免费软件版本在 Wine 下运行良好,因此您可以在 Windows、macOS 和 Linux 上使用它。在后两种情况下,您分别需要 PlayOnMac 或 PlayOnLinux。

这是一张照片这个答案我在 Ask Ubuntu 上留言:

Wine 下的 PDF-XChange Viewer 截图

OCR我的PDF

这是用 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(deskew) 和-c(clean) 参数以获得更好的效果。它会在运行 OCR 过程之前拉直每一页并清除小点/瑕疵。

您可以(并且应该)为语言提供-l

以下是取自这份歪曲的文件用意大利语写成:

OCRmyPDF 示例

我使用的命令是:

ocrmypdf -l ita -d -c input.pdf output.pdf

在线工具

有一些在线工具可以做同样的事情。值得注意的是,PDF24 拥有一个OCRmyPDF 的免费网络版本可以无限制使用。

也可以看看:

答案3

这可能是因为Acrobat OCR 功能

Acrobat 可以识别数十种语言的任何 PDF 或图像文件中的文本。您只需打开要进行 OCR 处理的扫描文档或图像,然后单击工具栏右上角的蓝色“工具”按钮。在该侧边栏中,选择“识别文本”选项卡,然后单击“在此文件中”按钮。

...

识别完文本后,现在,您可以使用所有常规标记工具来标记 PDF — 您可以突出显示、删除文本等等。您甚至可以复制具有检测到的格式的文本,尽管这通常不如文本识别本身准确。

答案4

Adobe 网站

识别扫描 PDF 文件中的文本

将纸质文档扫描为 PDF 时,您实际上只是拍摄了这些文档的照片。这对于照片和其他印刷图像来说非常有用,但是如果您有一份 200 页的文档,需要在其中查找特定的单词或短语,该怎么办?使用 Acrobat 识别扫描文件中的文本,使文本内容可搜索和使用。

  1. 在 Acrobat 中打开扫描的文档,打开“工具”窗格并展开“文本识别”面板。如果您在“工具”窗格中看不到“文本识别”,您可以通过选择右上角的菜单来添加它(下图 - 看到那个小红箭头指向哪里了吗?点击那里)。
  2. 单击“在此文件中”扫描您打开的文档。您可以接受默认设置,并在识别文本框弹出时单击“确定”。Acrobat 会将图像转换为可用文本;要测试它,只需尝试使用内容编辑面板编辑一个单词或句子。这不是很棒吗!?

相关内容