OCRmyPDF:16.5K Star!快速将 PDF 文件转换为可搜索、可复制的文档的命令行工具

❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日分享大模型与 AI 领域的最新开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术,欢迎关注我哦!


快速阅读

  1. 功能强大:OCRmyPDF 支持生成可搜索的 PDF/A 文件,保持原始图像分辨率,同时优化图像质量。
  2. 多语言支持:支持超过 100 种语言,确保不同语言的文档都能准确识别。
  3. 高效处理:利用多核处理和批量处理功能,快速处理大量文件。

OCRmyPDF 是什么

OCRmyPDF 是一款开源的命令行工具,专为将扫描的 PDF 文件转换为可搜索、可复制的文档。通过添加 OCR 文本层,OCRmyPDF 能够将无法直接编辑的扫描 PDF 文件变为可以搜索和编辑的格式。该工具基于 Tesseract OCR 引擎实现高效的文字识别,并支持多种语言和图像优化功能。

OCRmyPDF 还具备自动纠偏、清洁图像、旋转页面等功能,确保识别结果的准确性。它能够充分利用系统资源,通过多核处理和批量处理,快速处理大量文件,适用于各种场景下的文档管理和数字化需求。

OCRmyPDF 的主要功能

  • 生成可搜索的 PDF/A 文件:从普通 PDF 文件生成可搜索的 PDF/A 文件,同时保持原始嵌入图像的分辨率。
  • 多语言支持:支持超过 100 种语言,用户可以根据文档的语言选择合适的语言包,提高 OCR 的准确率。
  • 图像优化:OCRmyPDF 可以优化 PDF 中的图像,包括调整分辨率、压缩图像大小等,生成更小的文件,保持图像质量。
  • 纠偏和清洁:在执行 OCR 之前,OCRmyPDF 可以对图像进行纠偏(纠正倾斜)和清洁(去除污点、噪点等),提高 OCR 的准确率。
  • 旋转页面:自动检测页面的方向并旋转页面,确保所有页面的方向一致,便于阅读和处理。
  • 多核处理:默认利用所有可用的 CPU 核心进行处理,提高了处理速度,适合处理大型文件或批量任务。
  • 批量处理:可以结合 GNU 并行工具或其他脚本,批量处理多个 PDF 文件,提高工作效率。
  • 数据安全性:OCRmyPDF 完全离线运行,数据存在用户的本地设备,确保数据安全和隐私。
  • 灵活的命令行选项:提供丰富的命令行选项,用户可以根据需求调整 OCR 的行为,例如跳过已包含文本的页面、设置图像质量等。

OCRmyPDF 的技术原理

  • 预处理:在正式进行 OCR 识别之前,OCRmyPDF 会对输入的 PDF 文件进行预处理。包括对图像进行去噪、锐化、纠偏等操作,提高后续字符识别的准确性。
  • 图像提取与分割:OCRmyPDF 使用 Poppler 库将 PDF 文件中的页面转换为图像。然后,程序会将图像中的文字区域分割出来,分别对待每一个可能包含字符的部分。
  • OCR 识别:OCRmyPDF 基于 Tesseract OCR 引擎进行字符识别。Tesseract 会提取字符图像的关键特征,如形状、边缘等信息,将这些特征与数据库中存储的标准字符模板进行比对,确定每个字符的具体内容。

如何运行 OCRmyPDF

1. 安装 OCRmyPDF

OCRmyPDF 支持多种操作系统,安装方法如下:

操作系统 安装命令
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
FreeBSD pkg install py-ocrmypdf
Ubuntu Snap snap install ocrmypdf

2. 使用 OCRmyPDF

以下是一些常用的命令示例:

# 添加 OCR 层并转换为 PDF/A
ocrmypdf 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

# 处理多语言文档
ocrmypdf -l eng+fra Bilingual-English-French.pdf Bilingual-English-French.pdf

# 纠正倾斜的页面
ocrmypdf --deskew input.pdf output.pdf

资源


❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日分享大模型与 AI 领域的最新开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术,欢迎关注我哦!