Back to Ocrmypdf

README ZH

README_ZH.md

17.7.09.1 KB
Original Source
<!-- SPDX-FileCopyrightText: 2014 Julien Pfefferkorn --> <!-- SPDX-FileCopyrightText: 2015 James R. Barlow --> <!-- SPDX-License-Identifier: CC-BY-SA-4.0 -->

OCRmyPDF 会为扫描版 PDF 文件添加 OCR 文本层,使其可以搜索或复制粘贴。

bash
ocrmypdf                      # 它是一个可脚本化的命令行程序
   -l eng+fra                 # 它支持多种语言
   --rotate-pages             # 它可以修正旋转方向错误的页面
   --deskew                   # 它可以校正歪斜的 PDF!
   --title "My PDF"           # 它可以更改输出元数据
   --jobs 4                   # 它默认使用多个 CPU 核心
   --output-type pdfa         # 它默认生成 PDF/A
   input_scanned.pdf          # 接受 PDF 输入(或图像)
   output_searchable.pdf      # 生成经过验证的 PDF 输出

查看发布说明,了解最新变更详情

主要功能

  • 从普通 PDF 生成可搜索的 PDF/A 文件
  • 将 OCR 文本准确放置在图像下方,便于复制/粘贴
  • 保持原始嵌入图像的精确分辨率
  • 在可能时,以“无损”操作插入 OCR 信息,不干扰任何其他内容
  • 优化 PDF 图像,通常生成比输入文件更小的文件
  • 按需在执行 OCR 前校正和/或清理图像
  • 验证输入和输出文件
  • 在所有可用 CPU 核心间分配工作
  • 使用 Tesseract OCR 引擎识别超过 100 种语言
  • 保护你的私有数据。
  • 可以妥善扩展,处理包含数千页的文件。
  • 已在数百万份 PDF 上经过实战检验。

详情请参阅文档

动机

我曾在网上寻找一款免费的命令行工具来对 PDF 文件执行 OCR:我找到了很多,但没有一个真正令人满意:

  • 要么生成的 PDF 文件中文本位于图像下方的错误位置(导致无法复制/粘贴)
  • 要么无法处理重音字符和多语言字符
  • 要么会改变嵌入图像的分辨率
  • 要么生成的 PDF 文件大得离谱
  • 要么在尝试 OCR 时崩溃
  • 要么无法生成有效的 PDF 文件
  • 除此之外,它们都不能生成 PDF/A 文件(专为长期存储设计的格式)

……所以我决定开发自己的工具。

安装

支持 Linux、Windows、macOS 和 FreeBSD。也提供 Docker 镜像,同时支持 x64 和 ARM。

操作系统安装命令
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
LinuxBrewbrew install ocrmypdf
FreeBSDpkg install py-ocrmypdf
OpenBSDpkg_add ocrmypdf
Ubuntu Snapsnap install ocrmypdf

其他用户请参阅我们的文档了解安装步骤。

语言

OCRmyPDF 使用 Tesseract 执行 OCR,并依赖其语言包。对于 Linux 用户,通常可以找到提供语言包的软件包:

bash

# Debian/Ubuntu 用户
apt-cache search tesseract-ocr # 显示所有 Tesseract 语言包列表
apt-get install tesseract-ocr-chi-sim  # 示例:安装简体中文语言包


# Arch Linux 用户
pacman -S tesseract-data-eng tesseract-data-deu # 示例:安装英语和德语语言包

# OpenBSD 用户
pkg_info -aQ tesseract  # 显示所有 Tesseract 语言包列表
pkg_add tesseract-cym  # 示例:安装威尔士语语言包

# brew macOS 用户
brew install tesseract-lang

# Fedora 用户
dnf search tesseract-langpack # 显示所有 Tesseract 语言包列表
dnf install tesseract-langpack-ita # 示例:安装意大利语语言包


随后可以向 OCRmyPDF 传递 -l LANG 参数,提示它应搜索哪些语言。可以同时请求多种语言。

OCRmyPDF 支持 Tesseract 4.1.1+。它会自动使用 PATH 环境变量中首先找到的版本。在 Windows 上,如果 PATH 中没有 Tesseract 二进制文件,我们会根据 Windows 注册表使用已安装的最高版本号。

文档和支持

安装 OCRmyPDF 后,可以通过以下命令访问内置帮助,了解命令语法和选项:

bash
ocrmypdf --help

我们的文档托管在 Read the Docs 上

请在我们的 GitHub issues 页面报告问题,并遵循 issue 模板以便快速获得响应。

功能演示

bash
# 添加 OCR 层并要求输出 PDF/A
ocrmypdf --output-type pdfa 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

# OCR 多语言文档
ocrmypdf -l eng+fra Bilingual-English-French.pdf Bilingual-English-French.pdf

# 校正歪斜页面
ocrmypdf --deskew input.pdf output.pdf

更多功能请参阅文档

要求

除所需的 Python 版本外,OCRmyPDF 还需要安装 Ghostscript 和 Tesseract OCR 这两个外部程序。OCRmyPDF 是纯 Python 项目,几乎可以在所有平台上运行:Linux、macOS、Windows 和 FreeBSD。

插件

OCRmyPDF 提供插件接口,允许扩展或替换其能力。以下是我们知道的一些插件:

  • OCRmyPDF-AppleOCR:用 Apple Vision Framework 替换标准 Tesseract OCR 引擎。需要 macOS。
  • OCRmyPDF-EasyOCR:用 EasyOCR 替换标准 Tesseract OCR 引擎;EasyOCR 是基于 PyTorch 的较新 OCR 引擎。强烈建议使用 GPU。
  • OCRmyPDF-PaddleOCR:用 PaddleOCR 替换标准 Tesseract OCR 引擎;PaddleOCR 是功能强大的 GPU 加速 OCR 引擎。

paperless-ngx 将 OCRmyPDF 集成到可搜索的文档管理系统中。

新闻与媒体

商务咨询

如果没有公司和用户选择支持功能开发与咨询服务,OCRmyPDF 不会成为今天的软件。无论是扩展现有功能集,还是将 OCRmyPDF 集成到更大的系统中,我们都很乐意讨论各类咨询需求。

许可证

OCRmyPDF 软件采用 Mozilla Public License 2.0 (MPL-2.0) 授权。该许可证允许将 OCRmyPDF 与其他代码集成,包括商业代码和闭源代码,但要求你发布对 OCRmyPDF 所做的源代码级修改。

OCRmyPDF 的某些组件采用其他许可证,具体由标准 SPDX 许可证标识符或 DEP5 版权与许可信息文件标明。一般来说,非核心代码采用 MIT 许可证,文档和测试文件采用 Creative Commons ShareAlike 4.0 (CC-BY-SA 4.0) 许可证。

免责声明

本软件按“原样”分发,不提供任何明示或暗示的保证或条件。