OCRmyPDF README

The project's README from github.com/ocrmypdf/OCRmyPDF. As one markdown file: README.md.

OCRmyPDF

Build Status PyPI version Homebrew version ReadTheDocs Python versions

OCRmyPDF adds an OCR text layer to scanned PDF files, allowing them to be searched or copy-pasted.

ocrmypdf                      # it's a scriptable command line program
   -l eng+fra                 # it supports multiple languages
   --rotate-pages             # it can fix pages that are misrotated
   --deskew                   # it can deskew crooked PDFs!
   --title "My PDF"           # it can change output metadata
   --jobs 4                   # it uses multiple cores by default
   --output-type pdfa         # it produces PDF/A by default
   input_scanned.pdf          # takes PDF input (or images)
   output_searchable.pdf      # produces validated PDF output

See the release notes for details on the latest changes.

Main features

Demo of OCRmyPDF in a terminal session

For details: please consult the documentation.

Motivation

I searched the web for a free command line tool to OCR PDF files: I found many, but none of them were really satisfying:

...so I decided to develop my own tool.

Installation

Linux, Windows, macOS and FreeBSD are supported. Docker images are also available, for both x64 and ARM.

Operating system Install command
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
OpenBSD pkg_add ocrmypdf
Ubuntu Snap snap install ocrmypdf

For everyone else, see our documentation for installation steps.

Languages

OCRmyPDF uses Tesseract for OCR, and relies on its language packs. For Linux users, you can often find packages that provide language packs:


# Debian/Ubuntu users
apt-cache search tesseract-ocr # Display a list of all Tesseract language packs
apt-get install tesseract-ocr-chi-sim  # Example: Install Chinese Simplified language pack


# Arch Linux users
pacman -S tesseract-data-eng tesseract-data-deu # Example: Install the English and German language packs

# OpenBSD users
pkg_info -aQ tesseract  # Display a list of all Tesseract language packs
pkg_add tesseract-cym  # Example: Install the Welsh language pack

# brew macOS users
brew install tesseract-lang

# Fedora users
dnf search tesseract-langpack # Display a list of all Tesseract language packs 
dnf install tesseract-langpack-ita # Example: Install the Italian language pack

You can then pass the -l LANG argument to OCRmyPDF to give a hint as to what languages it should search for. Multiple languages can be requested.

OCRmyPDF supports Tesseract 4.1.1+. It will automatically use whichever version it finds first on the PATH environment variable. On Windows, if PATH does not provide a Tesseract binary, we use the highest version number that is installed according to the Windows Registry.

Documentation and support

Once OCRmyPDF is installed, the built-in help which explains the command syntax and options can be accessed via:

ocrmypdf --help

Our documentation is served on Read the Docs.

Please report issues on our GitHub issues page, and follow the issue template for quick response.

Feature demo

# Add an OCR layer and require PDF/A
ocrmypdf --output-type pdfa input.pdf output.pdf

# Convert an image to single page PDF
ocrmypdf input.jpg output.pdf

# Add OCR to a file in place (only modifies file on success)
ocrmypdf myfile.pdf myfile.pdf

# OCR with non-English languages (look up your language's ISO 639-3 code)
ocrmypdf -l fra LeParisien.pdf LeParisien.pdf

# OCR multilingual documents
ocrmypdf -l eng+fra Bilingual-English-French.pdf Bilingual-English-French.pdf

# Deskew (straighten crooked pages)
ocrmypdf --deskew input.pdf output.pdf

For more features, see the documentation.

Requirements

In addition to the required Python version, OCRmyPDF requires external program installations of Ghostscript and Tesseract OCR. OCRmyPDF is pure Python, and runs on pretty much everything: Linux, macOS, Windows and FreeBSD.

Plugins

OCRmyPDF provides a plugin interface allowing its capabilities to be extended or replaced. Here are some plugins we are aware of:

paperless-ngx provides integration of OCRmyPDF into a searchable document management system.

Press & Media

Business enquiries

OCRmyPDF would not be the software that it is today without companies and users choosing to provide support for feature development and consulting enquiries. We are happy to discuss all enquiries, whether for extending the existing feature set, or integrating OCRmyPDF into a larger system.

License

The OCRmyPDF software is licensed under the Mozilla Public License 2.0 (MPL-2.0). This license permits integration of OCRmyPDF with other code, included commercial and closed source, but asks you to publish source-level modifications you make to OCRmyPDF.

Some components of OCRmyPDF have other licenses, as indicated by standard SPDX license identifiers or the DEP5 copyright and licensing information file. Generally speaking, non-core code is licensed under MIT, and the documentation and test files are licensed under Creative Commons ShareAlike 4.0 (CC-BY-SA 4.0).

Disclaimer

The software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

OCRmyPDF (ocrmypdf/OCRmyPDF)

Searching Database…

35.1K ·GitHub
这是什么?OCRmyPDF 会为扫描的 PDF 文件添加 OCR 文字层,让文字可以搜索和复制粘贴,同时保持原始图片不变。
这是 Python 库还是命令行工具?它主要是一个用来处理 PDF 文件的命令行工具,同时也提供插件接口,用于扩展或替换 OCR 引擎。
我该如何安装和运行它?可以通过操作系统的包管理器(apt、dnf、brew、pkg、snap 等)或 Docker 镜像安装,然后对 PDF 运行 ocrmypdf 命令;内置帮助会说明用法和选项。
除了 Python,它还需要哪些外部程序?需要单独安装 Ghostscript 和 Tesseract OCR;Tesseract 的语言包决定了可以识别哪些语言。
它能在所有操作系统上运行吗?Tesseract 版本有什么要求?支持 Linux、Windows、macOS 和 FreeBSD,但需要 PATH 中有 Tesseract 4.1.1 或更新版本(在 Windows 上也可以通过 Windows 注册表找到);否则无法运行。
它会把我的文档发送到别处吗?不会,所有处理都完全在本地借助 Tesseract 完成,因此你的文档及其内容都留在你的电脑上。
与原始文件相比,OCRmyPDF 的输出是什么样的?它会生成一个可搜索的 PDF/A 文件,OCR 文字会准确放置在原始图片下方,保留嵌入图片的原始分辨率,并且通常会通过优化减小文件体积。
作者为什么要自己开发,而不使用现有的 OCR 工具?现有的免费工具要么把文字放错到图片下方,要么弄乱带重音符号的字符和多语言字符,要么降低图片分辨率,要么生成臃肿或无效的 PDF,要么直接崩溃;而且没有一个能输出适合长期归档的 PDF/A 文件。
我能把 Tesseract 换成其他 OCR 引擎吗?可以,通过插件实现,例如 OCRmyPDF-AppleOCR(基于 macOS 的 Vision Framework)、OCRmyPDF-EasyOCR(基于 PyTorch,建议配备 GPU)和 OCRmyPDF-PaddleOCR(支持 GPU 加速)。
它能识别多少种语言?它依赖 Tesseract 的语言包,能够识别 100 多种语言,并且可以通过 -l 参数一次指定多种语言。
What are similar projects?tesseract, Umi-OCR, PyMuPDF, docling, chandra, olmocr, nougat, liteparse
Creator
ocrmypdf
Size
70.5 MB
Stars
35.1K
Age
12y
Commits · 90 Days