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输出
主要特性
- 从普通PDF生成可搜索的PDF/A文件
- 准确地将OCR文本放置在图像下方,便于复制/粘贴
- 保持原始嵌入图像的精确分辨率
- 在可能的情况下,通过"无损"操作插入OCR信息,不影响任何其他内容
- 优化PDF图像,通常生成的文件比输入文件更小
- 如果需要,在执行OCR之前对图像进行纠偏和/或清理
- 验证输入和输出文件
- 在所有可用的CPU核心上分配工作
- 使用Tesseract OCR引擎识别100多种语言
- 保护您的私人数据安全
- 适当扩展以处理数千页的文件
- 在数百万PDF上经过实战检验
详情请参阅文档。
动机
我在网上搜索了一个免费的命令行工具来对PDF文件进行OCR:我找到了很多,但没有一个真正令人满意:
- 要么它们生成的PDF文件中文本位置不正确(无法复制/粘贴)
- 要么它们不能处理重音和多语言字符
- 要么它们改变了嵌入图像的分辨率
- 要么它们生成的PDF文件大得离谱
- 要么它们在尝试OCR时崩溃
- 要么它们生成的PDF文件无效
- 最重要的是,它们都不能生成PDF/A文件(用于长期存储的格式)
...所以我决定开发自己的工具。
安装
支持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 |
Conda | conda install ocrmypdf |
Ubuntu Snap | snap install ocrmypdf |
对于其他用户,请查看我们的文档了解安装步骤。
语言
OCRmyPDF使用Tesseract进行OCR,并依赖其语言包。对于Linux用户,您通常可以找到提供语言包的软件包:
# 显示所有Tesseract语言包的列表
apt-cache search tesseract-ocr
# Debian/Ubuntu用户
apt-get install tesseract-ocr-chi-sim # 示例:安装简体中文语言包
# Arch Linux用户
pacman -S tesseract-data-eng tesseract-data-deu # 示例:安装英语和德语语言包
# brew macOS用户
brew install tesseract-lang
然后,您可以将-l LANG
参数传递给OCRmyPDF,以提示它应该搜索哪些语言。可以请求多种语言。
OCRmyPDF支持Tesseract 4.1.1+。它会自动使用在PATH
环境变量中首先找到的版本。在Windows上,如果PATH
中没有提供Tesseract二进制文件,我们会根据Windows注册表使用安装的最高版本号。
文档和支持
安装OCRmyPDF后,可以通过以下方式访问内置帮助,解释命令语法和选项:
ocrmypdf --help
请在我们的GitHub问题页面报告问题,并遵循问题模板以获得快速响应。
要求
除了所需的Python版本(3.8+)外,OCRmyPDF还需要外部程序安装Ghostscript和Tesseract OCR。OCRmyPDF是纯Python的,几乎可以在任何地方运行:Linux、macOS、Windows和FreeBSD。
新闻与媒体
- 使用OCRmyPDF实现无纸化
- 将扫描文档转换为带有编辑的压缩可搜索PDF
- c't 1-2014,第59页:德国领先IT杂志c't对OCRmyPDF v1.0的详细介绍
- heise Open Source,09/2014:使用OCRmyPDF进行文本识别
- heise 使用OCRmyPDF创建可搜索的PDF文档
- 优秀实用工具:OCRmyPDF
- LinuxUser 使用OCRmyPDF和Scanbd自动化文本识别
- Y Combinator讨论
商业咨询
如果没有公司和用户选择为功能开发和咨询提供支持,OCRmyPDF就不会成为今天这样的软件。我们很乐意讨论所有咨询,无论是扩展现有功能集,还是将OCRmyPDF集成到更大的系统中。
许可证
OCRmyPDF软件根据Mozilla公共许可证2.0(MPL-2.0)授权。该许可证允许将OCRmyPDF与其他代码集成,包括商业和闭源代码,但要求您发布对OCRmyPDF所做的源代码级修改。
OCRmyPDF的某些组件有其他许可证,如标准SPDX许可证标识符或DEP5版权和许可信息文件所示。一般来说,非核心代码采用MIT许可,文档和测试文件采用Creative Commons ShareAlike 4.0(CC-BY-SA 4.0)许可。
免责声明
该软件按"原样"分发,不提供任何明示或暗示的保证或条件。