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

327 阅读4分钟

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

🥦 微信公众号|搜一搜:蚝油菜花 🥦


🚀 快速阅读

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

OCRmyPDF 是什么

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, Ubuntuapt install ocrmypdf
Windows Subsystem for Linuxapt install ocrmypdf
Fedoradnf install ocrmypdf
macOS (Homebrew)brew install ocrmypdf
macOS (MacPorts)port install ocrmypdf
macOS (nix)nix-env -i ocrmypdf
FreeBSDpkg install py-ocrmypdf
Ubuntu Snapsnap 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技术,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦