前言

前言

一些公司为其扫描仪*提供适用于 Windows 的软件,该软件可以从扫描的页面创建 PDF,这些 PDF 看起来与扫描的材料完全相同(就好像它只是整页图像),但文本可以被识别和复制。

如何在 Ubuntu 上创建这样的 PDF?

请注意,我不想将扫描的文本转换为常规文本。我希望保留生成的 PDF 看起来与原始页面一样完美,但在其上添加可识别的文本层以方便使用。

我有一台可以正常工作的高分辨率扫描仪,目前我将其与 XSane 一起使用。它可以很好地扫描页面并创建漂亮的高 DPI 图像。

* 即佳能 LiDE 220

答案1

前言

您正在寻找PDF 三明治,即,扫描的 PDF 中有一层不可见的文本层(或者只是简单地放置在每页图片后面的一层文本)。

有几种方法可以创建一个。我将使用纸自动文本检索中的术语加权方法作为需要 OCR 的文档的示例。

命令pdfsandwich

首先,从存储库安装此工具:

sudo apt install pdfsandwich

然后您可以在 PDF 文件上运行它并等待:

pdfsandwich document.pdf

Evince 的屏幕截图显示了 PDF 三明治

过去,这种方法不太精确,尤其是文本定位。现在情况似乎好多了。PDF 中的示例:

摘要——过去 20 年积累的实验证据表明

如果您在 Evince 中突出显示文本,则会显示黑框。

PDF-XChange 查看器

这是一个免费软件,仅适用于 Windows 的程序 在 Wine 下完美运行如果您在 32 位 Wine 前缀中使用 32 位版本。为此,我建议使用 PlayOnLinux,因为它可以非常轻松地选择最新的 Wine 版本,并且您需要 32 位前缀。

安装后,您可以运行它并选择工具栏上的 OCR 图标:

Wine 下的 PDF-XChange Viewer 截图

输出结果通常非常好,文本位置精确。PDF 中的示例:

摘要——过去 20 年积累的实验证据表明

如果您在 Evince 中突出显示文本,则该文本将以无衬线字体显示。

OCR.空间

这实际上是一个 Web 服务。转到ocr.空间并选择文件和语言,然后选中“创建可搜索的 PDF 并添加不可见文本层”选项。按下按钮并等待文档上传和转换。

不幸的是,横向页面存在错误,无法在输出中正确呈现。我已将此事告知作者,他们也承认了这个问题。

OCR我的PDF

我根据我在这个答案关于超级用户。

OCRmyPDF 是一个用 Python 编写的多平台程序,基于 Ghostscript、Tesseract 和 Unpaper。摘自文档:

OCRmyPDF 的作用

OCRmyPDF 分析 PDF 的每一页,以确定捕获该页上所有信息而不丢失内容所需的色彩空间和分辨率 (DPI)。它使用 Ghostscript 对页面进行栅格化,然后在栅格化图像上执行 OCR 以创建 OCR“层”。然后将该层重新移植到原始 PDF 上。

它可以轻松安装在 Debian 和 Ubuntu 衍生产品上:

apt-get install ocrmypdf

您可能需要为 Tesseract 安装其他词典,具体取决于您要使用的语言。您可以找到软件包名称列表这里(适用于 macOS,但在 Ubuntu 上是相同的)。

使用方法非常简单,我建议您使用可选的-d(deskew) 和-c(clean) 参数以获得更好的效果。它会在运行 OCR 过程之前拉直每一页并清除小点/瑕疵。

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

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

OCRmyPDF 示例

我使用的命令是:

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

PDF24 主办OCRmyPDF 的免费网络版本可以无限制使用。

相关内容