我有许多 pdf 格式的扫描文档,我希望能够搜索它们。我怎样才能做到这一点?
本质上,我必须对 pdf 进行 OCR,然后将提取的文本混合回新的 pdf。我尝试了多种不同的解决方案(包括在将 OCR 信息添加到 PDF中找到的解决方案)均未成功。
- pdfocr(这给了我这个问题:https ://github.com/gkovacs/pdfocr/issues/7 )
- pdfsandwich(其中软件中心说它是一个糟糕的包,我不应该安装它)
- OCRfeeder(在软件中心)很好地导出到 odt,但在导出到 pdf 时没有反应。
- Gscan2pdf导出全黑(但可搜索)图像,如本讨论中所报告的那样。
- 我不认为 Pdfxchange 查看器可以处理对超过 500 页的文件进行即时 ocr。
有没有我不知道的软件包?或者执行此操作的脚本?
从 Ubuntu 16.04 开始,OCRmyPDF 已通过 apt 可用。赶紧跑
最后,您可以使用以下命令对您的 pdf 进行 OCR:
如果命令似乎没有响应,您可以使用
-v
标志(可以递增地用作-vv
或-vvv
)来增加详细程度。最好先在较短的 pdf 上测试结果。您可以按如下方式缩短 pdf:如果您有任何问题,请查看Github 存储库。
@don.joey 用ocrmypdf脚本回答。不过现在可以直接安装了(16.10以后)。
然后你必须安装你需要的tesseract语言。
要列出系统中已有的语言,请键入:
万一您错过了一个,请安装它。例如,
现在您可以使用以下命令生成可搜索的 PDF(其质量会有所不同,具体取决于扫描的文档)
当然,您可以查看其手册页以了解一些其他选项。
pdfsandwich
正是执行这项工作。我不知道软件中心提供了一个包,但我在项目网站上为它提供了 Ubuntu deb 包(有关详细信息,请参见http://www.tobias-elze.de/pdfsandwich/),包括目前最新的版本 (0.1.2),它不太可能出现在任何软件中心。如果您有扫描文件
scanned_file.pdf
,只需致电它生成的文件
scanned_file_ocr.pdf
将已识别的文本添加到扫描的页面中。与大多数现有解决方案相比,它会自动检测安装的 tesseract 版本并相应地调整其行为。此外,它在 OCR 过程之前对扫描图像进行预处理,例如去歪斜或去除暗边缘等,这可以大大提高光学字符识别。
免责声明:我是 的开发者
pdfsandwich
,因此有很大的偏见。我遇到了同样的问题,所以我在周末写了这篇文章。试一试; 效果很好!它是一个简单的包装器
tesseract
。它用于pdftoppm
将 PDF 转换为一堆 TIFF 文件,然后用于tesseract
对它们执行 OCR(光学字符识别)并生成可搜索的 PDF 作为输出。脚本完成后,所有中间临时文件都会自动删除。源代码:https ://github.com/ElectricRCAircraftGuy/PDF2SearchablePDF
安装和使用说明
pdf2searchablepdf
:2019 年 11 月 11 日在 Ubuntu 18.04 上测试。
安装:
利用:
您现在将拥有一个名为mypdf_searchable.pdf的 pdf ,其中包含可搜索的文本!
完毕。包装器没有 python 依赖项,因为它目前完全用 bash 编写。
参考资料或相关资源:
pdftoppm
]从 PDF 中提取嵌入的图像操作系统:Ubuntu 18.04
首先,安装
tesseract-ocr
:如果你要使用 tesseract 以外的语言,那么你必须安装相应的 laguage 包。例如,对于葡萄牙语,您需要执行以下操作:
否则你会得到错误:
如果你用谷歌搜索“tesseract PDF”,你可能会发现这篇有点过时的文章。但是,它会为您提供一些有用的提示。您首先必须将
.pdf
文件转换为.tiff
一个。跑:如果像在过时的帖子中一样,您忘记添加
alpha -Off
,您将收到以下错误:现在您可以运行最终命令。在您的原始 PDF 是葡萄牙语的特殊情况下,您将需要此命令:
生成的文件将命名为
output.pdf
. 例如,如果您的 PDF 是法语的,那么在安装相应的 之后tesseract-ocr-fra
,您将运行:并且所需的文件将再次是
output.pdf
.OCRfeeder有一个错误
第 436 行应为:
改变了这个,它对我有用
从 Ubuntu 16.04 开始,OCRmyPDF 已经可以通过
apt
. 只需运行以下命令即可安装它:您还可以运行此命令以查看其用法:
最后,您可以使用以下命令对 PDF 进行 OCR:
(更改
input.pdf
和output.pdf
您想要的文件)