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
For details: please consult the documentation.
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.
Linux, Windows, macOS and FreeBSD are supported. Docker images are also available, for both x64 and ARM.
|Operating system||Install command|
|Windows Subsystem for Linux||
For everyone else, see our documentation for installation steps.
OCRmyPDF uses Tesseract for OCR, and relies on its language packs. For Linux users, you can often find packages that provide language packs:
# Display a list of all Tesseract language packs apt-cache search tesseract-ocr # Debian/Ubuntu users 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 # brew macOS users brew install tesseract-lang
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.0 and the beta versions of Tesseract 5.0. It will
automatically use whichever version it finds first on the
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.
Once OCRmyPDF is installed, the built-in help which explains the command syntax and options can be accessed via:
Please report issues on our GitHub issues page, and follow the issue template for quick response.
In addition to the required Python version (3.7+), 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.
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.
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).
The software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.