mcpField
O
ocrmypdf

ocrmypdf

github.com/full-stack-skills文档处理048 次安装4 周前更新
代码仓库

关于 ocrmypdf

这是一份使用 OCRmyPDF 为扫描 PDF 添加可搜索文本的命令行技能指南,涵盖语言选择、OCR 模式、页码范围和输出类型。还介绍伴随文本、元数据设置及并行处理。

主要功能

  1. 01为 PDF 添加可搜索的 OCR 文本
  2. 02将图像处理为可搜索 PDF
  3. 03选择语言和 OCR 模式
  4. 04仅处理指定页面
  5. 05导出伴随文本并设置元数据
  6. 06并行运行任务

适用场景

  1. 01让扫描档案可搜索
  2. 02识别多语言文档
  3. 03替换现有 OCR 文本层
  4. 04创建 PDF/A 归档文件

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/full-stack-skills/ocrmypdf-skills --skill ocrmypdf

安装后在 Claude Code 中输入/ocrmypdf确认已加载。

附带文件agents/openai.yaml

详细介绍

OCRmyPDF — 核心 OCR 指南

概述

OCRmyPDF 会为扫描版 PDF 文件添加 OCR 文本层,使其可以搜索或复制粘贴。它使用 Tesseract OCR,支持 100 多种语言,默认生成 PDF/A,并将任务分配到所有 CPU 核心。

有关图像处理(倾斜校正、旋转、清理),请参阅 ocrmypdf-image 技能。有关优化和 PDF/A 选项,请参阅 ocrmypdf-optimize。有关批处理、Docker 和脚本编写,请参阅 ocrmypdf-batch。有关 Python API 和插件,请参阅 ocrmypdf-api。

安装

一行命令安装(推荐)
操作系统命令
Debian / Ubuntuapt install ocrmypdf
Fedoradnf install ocrmypdf tesseract-osd
macOS (Homebrew)brew install ocrmypdf
macOS (MacPorts)port install ocrmypdf
FreeBSDpkg install py-ocrmypdf
Snapsnap install ocrmypdf
使用 pip 安装(最新版本)
# After installing system dependencies (Tesseract, Ghostscript)
pip install ocrmypdf
验证
ocrmypdf --version
ocrmypdf --help
依赖要求
  • Python 3.11+
  • Tesseract 4.1.1+(OCR 引擎)
  • Ghostscript 9.54+ 或 pypdfium2(PDF 光栅化)
  • 可选:jbig2enc(压缩)、pngquant(图像优化)、unpaper(清理)

快速开始

# Basic OCR — input scanned PDF, output searchable PDF/A
ocrmypdf input.pdf output.pdf

# OCR an image file directly
ocrmypdf --image-dpi 300 scan.png output.pdf

# OCR in place (only overwrites on success)
ocrmypdf myfile.pdf myfile.pdf

语言支持

OCRmyPDF 使用 Tesseract 语言包。请为你的操作系统安装语言包:

# Debian / Ubuntu
apt-cache search tesseract-ocr          # List all language packs
apt install tesseract-ocr-chi-sim       # Chinese Simplified
apt install tesseract-ocr-fra           # French

# macOS (Homebrew)
brew install tesseract-lang             # All languages

# Fedora
dnf search tesseract-langpack
dnf install tesseract-langpack-ita      # Italian
使用语言
# Single language
ocrmypdf -l fra document.pdf output.pdf

# Multiple languages
ocrmypdf -l eng+fra bilingual.pdf output.pdf

# Chinese Simplified + English
ocrmypdf -l chi_sim+eng chinese-doc.pdf output.pdf

注意:语言标识符请使用 ISO 639-3 代码。

OCR 模式

默认模式(跳过已有文本)
# Skip pages that already have text — only OCR pages without text
ocrmypdf input.pdf output.pdf
强制 OCR(--force-ocr 或 -m force)
# Rasterize and OCR all pages, even those with existing text
ocrmypdf --force-ocr input.pdf output.pdf
# v17+ short form:
ocrmypdf -m force input.pdf output.pdf
重新进行 OCR(--redo-ocr 或 -m redo)
# Replace existing OCR without rasterizing (preserves quality)
ocrmypdf --redo-ocr input.pdf output.pdf
# v17+ short form:
ocrmypdf -m redo input.pdf output.pdf
跳过文本(--skip-text 或 -m skip)
# Skip pages with any text, only OCR blank/image pages
ocrmypdf --skip-text input.pdf output.pdf
# v17+ short form:
ocrmypdf -m skip input.pdf output.pdf
不进行 OCR(仅处理图像)
# Apply image processing / PDF/A conversion without OCR
ocrmypdf --ocr-engine none input.pdf output.pdf

页面选择

# OCR only specific pages
ocrmypdf --pages 1,3,5-10 input.pdf output.pdf

# OCR only the first page, minimal changes elsewhere
ocrmypdf --pages 1 --output-type pdf --optimize 0 input.pdf output.pdf

输出类型

# PDF/A (default) — for archival
ocrmypdf --output-type pdfa input.pdf output.pdf

# Standard PDF
ocrmypdf --output-type pdf input.pdf output.pdf

# Auto (v17+) — speculative PDF/A, falls back to standard PDF
ocrmypdf --output-type auto input.pdf output.pdf

# No output PDF — only produce sidecar text
ocrmypdf --output-type none --sidecar text.txt input.pdf -

旁注文本文件

# Produce a companion text file with OCR text
ocrmypdf --sidecar output.txt input.pdf output.pdf

元数据

# Set output PDF metadata
ocrmypdf --title "My Document" --author "Author Name" --subject "Subject" input.pdf output.pdf

并行处理

# Use 4 CPU cores (default: all available)
ocrmypdf --jobs 4 input.pdf output.pdf

# Single-threaded
ocrmypdf --jobs 1 input.pdf output.pdf

常用示例

使扫描版 PDF 可搜索
ocrmypdf scanned.pdf searchable.pdf
将图像转换为可搜索的 PDF
ocrmypdf --image-dpi 300 scan.jpg output.pdf
对多语言文档进行 OCR
ocrmypdf -l eng+deu+fra multilingual.pdf output.pdf
使用较新版本的 Tesseract 重新进行 OCR
ocrmypdf --redo-ocr old-ocr.pdf updated.pdf
清除 PDF 中的所有文本/OCR
ocrmypdf --ocr-engine none --force-ocr input.pdf stripped.pdf

快速参考

任务命令
基本 OCRocrmypdf input.pdf output.pdf
指定语言ocrmypdf -l fra input.pdf output.pdf
多种语言ocrmypdf -l eng+fra input.pdf output.pdf
对所有页面强制重新进行 OCRocrmypdf --force-ocr input.pdf output.pdf
替换现有 OCRocrmypdf --redo-ocr input.pdf output.pdf
跳过含有文本的页面ocrmypdf --skip-text input.pdf output.pdf
仅处理指定页面ocrmypdf --pages 1,3,5-10 input.pdf output.pdf
输出标准 PDFocrmypdf --output-type pdf input.pdf output.pdf
提取旁注文本ocrmypdf --sidecar text.txt input.pdf output.pdf
图像转 PDFocrmypdf --image-dpi 300 image.png output.pdf
原地进行 OCRocrmypdf myfile.pdf myfile.pdf
设置元数据ocrmypdf --title "Title" input.pdf output.pdf
并行任务ocrmypdf --jobs 4 input.pdf output.pdf

故障排除

  • “找不到 Tesseract”:安装 Tesseract,并确保它位于 PATH 中。
  • OCR 质量差:检查语言包(-l),尝试使用 --deskew(请参阅 ocrmypdf-image)或 --oversample 300。
  • “输入文件含有文本”:根据情况使用 --force-ocr、--redo-ocr 或 --skip-text。
  • 输出文件过大:有关 --optimize 级别和 JBIG2,请参阅 ocrmypdf-optimize。
  • 已签名的 PDF:使用 --invalidate-digital-signatures 覆盖限制(签名将失效)。

参考资料

评论

支持 Markdown