OCRmyPDF本地部署及使用教程
OCRmyPDF 是一款主要用于为扫描的 PDF 文件添加可搜索和可复制的 OCR 文本层的工具,支持多语言,能优化图像、纠偏、清洁页面,并自动旋转方向等功能。以下是OCRmyPDF的本地部署方法:
OCRmyPDF本地部署方法
OCRmyPDF 提供了多种安装方式,具体取决于你的操作系统和需求。
1. 通过系统包管理器安装
Debian/Ubuntu:
apt install ocrmypdf
Fedora:
dnf install ocrmypdf tesseract-osd
macOS (Homebrew):
brew install ocrmypdf
Windows Subsystem for Linux:
apt install ocrmypdf
2. 使用 Python pip 安装
如果你需要安装最新版本或系统包管理器提供的版本较旧,可以使用 pip:
pip install ocrmypdf
或者,使用 pipx 来创建隔离的 Python 环境:
pipx install ocrmypdf
3. 使用 Docker 安装
如果你使用 Docker,可以通过以下命令安装 OCRmyPDF 的 Docker 镜像:
docker pull jbarlow83/ocrmypdf
运行时可以将输入和输出文件挂载到容器中:
docker run -v /path/to/input.pdf:/input.pdf -v /path/to/output.pdf:/output.pdf jbarlow83/ocrmypdf /input.pdf /output.pdf
4. 从源代码安装
如果你需要从源代码安装(例如开发或测试最新功能),可以克隆 GitHub 仓库并安装:
git clone https://github.com/ocrmypdf/OCRmyPDF.git cd OCRmyPDF pip install -e .
依赖项
Python 3.10 或更高版本
Ghostscript 9.54 或更高版本
Tesseract 4.1.1 或更高版本
jbig2enc 0.29 或更高版本(可选,用于优化输出文件大小)
pngquant 2.5 或更高版本(可选,用于优化 PNG 图像)
unpaper 6.1 或更高版本(可选,用于清洁图像)
注意要点
32 位支持:OCRmyPDF 不支持 32 位系统,建议使用 64 位版本。
Windows 用户:建议使用 Windows Subsystem for Linux 或 Docker 来避免兼容性问题。
macOS 用户:可以通过 Homebrew 安装,但需要额外安装 Tesseract 的语言包(如 tesseract-lang)。
验证安装
安装完成后,可以通过以下命令验证 OCRmyPDF 是否安装成功:
ocrmypdf --version
OCRmyPDF使用教程
1. 添加 OCR 文本层
核心功能:为扫描的 PDF 文件添加可搜索的文本层,使文档内容可复制、可搜索。
示例命令:
ocrmypdf input.pdf output.pdf
2. 多语言支持
功能描述:支持超过 100 种语言,用户可以根据文档的语言选择合适的语言包,提高 OCR 的准确率。
示例命令:
ocrmypdf --language chi_sim input.pdf output.pdf # 简体中文 ocrmypdf --language eng input.pdf output.pdf # 英文
3. 图像优化
功能描述:优化 PDF 中的图像,包括调整分辨率、压缩图像大小等,生成更小的文件,同时保持图像质量。
示例命令:
ocrmypdf --optimize 3 input.pdf output.pdf # 最强优化
4. 纠偏和清洁
功能描述:在执行 OCR 之前,对图像进行纠偏(纠正倾斜)和清洁(去除污点、噪点等),提高 OCR 的准确率。
示例命令:
ocrmypdf --deskew --clean input.pdf output.pdf
5. 自动旋转页面
功能描述:自动检测页面的方向并旋转页面,确保所有页面的方向一致,便于阅读和处理。
示例命令:
ocrmypdf --rotate-pages input.pdf output.pdf
6. 转换为 PDF/A 格式
功能描述:将输出文件转换为 PDF/A 格式,这是一种国际标准的归档格式,适合长期存储。
示例命令:
ocrmypdf --output-type pdfa input.pdf output.pdf
7. 去除重复页面
功能描述:自动检测并去除 PDF 中的重复页面,减少文件大小。
示例命令:
ocrmypdf --remove-background input.pdf output.pdf
8. 背景去除
功能描述:去除 PDF 页面中的背景,使文字更加清晰,便于阅读。
示例命令:
ocrmypdf --remove-background input.pdf output.pdf
9. 生成 PDF/A 格式
功能描述:生成符合 PDF/A 标准的文件,适合长期归档和存储。
示例命令:
ocrmypdf --output-type pdfa input.pdf output.pdf
10. 跳过已 OCR 的页面
功能描述:如果 PDF 中某些页面已经包含文本层,可以跳过这些页面,避免重复处理。
示例命令:
ocrmypdf --skip-text input.pdf output.pdf
11. 自定义 DPI
功能描述:可以指定 OCR 处理时的图像分辨率(DPI),默认值为 300 DPI。
示例命令:
ocrmypdf --dpi 350 input.pdf output.pdf
12. 转换为单色图像
功能描述:将彩色或灰度图像转换为单色图像,减少文件大小。
示例命令:
ocrmypdf --output-type pdf --monochrome input.pdf output.pdf
13. 生成日志文件
功能描述:生成详细的日志文件,便于调试和记录处理过程。
示例命令:
ocrmypdf --log-file output.log input.pdf output.pdf
14. 批量处理
功能描述:结合脚本或命令行工具(如 GNU Parallel),可以批量处理多个 PDF 文件。
示例命令:
for file in *.pdf; do ocrmypdf "$file" "output_$file" done
15. 支持多种输入格式
功能描述:支持从多种格式的文件生成 PDF,包括 TIFF、PNG 等。
示例命令:
ocrmypdf input.tiff output.pdf
16. 压缩 PDF
功能描述:在 OCR 处理后,可以进一步压缩 PDF 文件,减少文件大小。
示例命令:
ocrmypdf --optimize 3 input.pdf output.pdf
17. 转换为 PDF/A-2b 或 PDF/A-2u
功能描述:生成符合 PDF/A-2b 或 PDF/A-2u 标准的文件,适合不同需求。
示例命令:
ocrmypdf --output-type pdfa-2b input.pdf output.pdf ocrmypdf --output-type pdfa-2u input.pdf output.pdf
18. 支持 Unicode
功能描述:支持 Unicode 字符,确保多语言文档的正确处理。
示例命令:
ocrmypdf --language chi_sim --language eng input.pdf output.pdf
19. 自定义输出文件名
功能描述:可以自定义输出文件的名称,便于管理和识别。
示例命令:
ocrmypdf input.pdf "output_with_date_$(date +%Y%m%d).pdf"
20. 支持命令行参数
功能描述:通过命令行参数,可以灵活配置 OCRmyPDF 的各种功能。
示例命令:
ocrmypdf --help
OCRmyPDF本地部署及使用教程:https://ocrmypdf.readthedocs.io/en/latest/installation.html