OCRmyPDF 为扫描的 PDF 文件添加 OCR 文本层,使其可搜索或复制粘贴。
ocrmypdf # 可脚本化的命令行程序
-l eng+fra # 支持多语言
--rotate-pages # 可修正旋转错误的页面
--deskew # 可校正倾斜的 PDF!
--title "My PDF" # 可更改输出元数据
--jobs 4 # 默认使用多核
--output-type pdfa # 默认输出 PDF/A 格式
input_scanned.pdf # 接受 PDF 输入(或图片)
output_searchable.pdf # 生成经过验证的 PDF 输出
详情请参阅文档。
我在网上搜索一个免费的命令行工具来 OCR PDF 文件:找到了很多,但没有一个真正令人满意:
……所以我决定开发自己的工具。
支持 Linux、Windows、macOS 和 FreeBSD。也提供 Docker 镜像,包括 x64 和 ARM 架构。
| 操作系统 | 安装命令 |
|---|---|
| Debian、Ubuntu | apt install ocrmypdf |
| Windows Subsystem for Linux | apt install ocrmypdf |
| Fedora | dnf install ocrmypdf |
| macOS (Homebrew) | brew install ocrmypdf |
| macOS (MacPorts) | port install ocrmypdf |
| macOS (nix) | nix-env -i ocrmypdf |
| LinuxBrew | brew install ocrmypdf |
| FreeBSD | pkg install py-ocrmypdf |
| OpenBSD | pkg_add ocrmypdf |
| Ubuntu Snap | snap install ocrmypdf |
对于其他用户,请参阅我们的文档了解安装步骤。
OCRmyPDF 使用 Tesseract 进行 OCR,并依赖其语言包。Linux 用户通常可以通过软件包管理器安装语言包:
# Debian/Ubuntu 用户
apt-cache search tesseract-ocr # 显示所有 Tesseract 语言包列表
apt-get install tesseract-ocr-chi-sim # 示例:安装简体中文语言包
# Arch Linux 用户
pacman -S tesseract-data-eng tesseract-data-deu # 示例:安装英语和德语语言包
# OpenBSD 用户
pkg_info -aQ tesseract # 显示所有 Tesseract 语言包列表
pkg_add tesseract-cym # 示例:安装威尔士语语言包
# brew macOS 用户
brew install tesseract-lang
# Fedora 用户
dnf search tesseract-langpack # 显示所有 Tesseract 语言包列表
dnf install tesseract-langpack-ita # 示例:安装意大利语语言包
然后可以通过 -l LANG 参数传递给 OCRmyPDF,指定要识别的语言。可以指定多种语言。
OCRmyPDF 支持 Tesseract 4.1.1+。它会自动使用在 PATH 环境变量中找到的第一个版本。在 Windows 上,如果 PATH 中没有 Tesseract 可执行文件,则根据 Windows 注册表使用安装的最高版本号。
安装 OCRmyPDF 后,可以通过以下命令访问内置帮助,了解命令语法和选项:
ocrmypdf --help
请在 GitHub Issues 页面报告问题,并遵循问题模板以快速响应。
# 添加 OCR 层并要求 PDF/A 格式
ocrmypdf --output-type pdfa input.pdf output.pdf
# 将图片转换为单页 PDF
ocrmypdf input.jpg output.pdf
# 原地为文件添加 OCR(仅在成功时修改文件)
ocrmypdf myfile.pdf myfile.pdf
# 非英语语言的 OCR(查看语言 ISO 639-3 代码)
ocrmypdf -l fra LeParisien.pdf LeParisien.pdf
# 多语言文档的 OCR
ocrmypdf -l eng+fra Bilingual-English-French.pdf Bilingual-English-French.pdf
# 校正(拉直倾斜的页面)
ocrmypdf --deskew input.pdf output.pdf
更多功能见文档。
除所需的 Python 版本外,OCRmyPDF 还需要外部程序 Ghostscript 和 Tesseract OCR 的安装。OCRmyPDF 是纯 Python 编写的,几乎可以在所有平台上运行:Linux、macOS、Windows 和 FreeBSD。
OCRmyPDF 提供插件接口,可扩展或替换其功能。以下是我们所知的一些插件:
paperless-ngx 提供了将 OCRmyPDF 集成到可搜索文档管理系统中的功能。
如果没有公司和用户选择支持功能开发和咨询需求,OCRmyPDF 就不会成为今天的样子。我们乐意讨论所有咨询,无论是扩展现有功能集,还是将 OCRmyPDF 集成到更大的系统中。
OCRmyPDF 软件采用 Mozilla 公共许可证 2.0 (MPL-2.0) 授权。该许可证允许将 OCRmyPDF 与其他代码(包括商业和闭源代码)集成,但要求您发布对 OCRmyPDF 所做的源代码级修改。
OCRmyPDF 的某些组件具有其他许可证,如标准 SPDX 许可证标识符或 DEP5 版权和许可信息文件所示。通常,非核心代码采用 MIT 许可证,文档和测试文件采用知识共享署名-相同方式共享 4.0 (CC-BY-SA 4.0) 许可证。
本软件按“现状”提供,不提供任何明示或暗示的保证或条件。