维护者须知
本文档面向那些为下游使用打包 OCRmyPDF 的人。(感谢你们的辛勤工作。)
已知移植/打包者
OCRmyPDF 已被移植到许多平台。如果你有兴趣移植到新平台,请查看 Repology,了解该平台的状态。
确保你能打包 pikepdf
pikepdf 由同一作者创建,是一个混合了 Python 和 C++14 的软件包,具有更严格的构建要求。如果你想在某个新颖的平台或发行版上使用 OCRmyPDF,请首先确保你能打包 pikepdf。
非 Python 依赖
请注意,我们有非 Python 依赖项。特别是,OCRmyPDF 要求安装 Ghostscript 和 Tesseract OCR,并且能够在系统 PATH 中找到它们的二进制文件。在 Windows 上,OCRmyPDF 还会检查注册表以确定它们的位置。
Tesseract OCR 依赖 SIMD 来提升性能,并且仅在 ARM 和 x86_64 上对此有良好支持。在其他处理器架构上的性能可能会较差。
版本控制方案
OCRmyPDF 使用 hatch-vcs 进行版本控制,它从 Git 派生版本作为单一事实来源。这可能不适合某些发行版,例如用于指示你的发行版以某种方式修改了 OCRmyPDF。
如果需要,你可以修补 src/ocrmypdf/_version.py
中的 __version__
变量,或者如果你出于某种原因需要覆盖版本控制,则可以将环境变量 SETUPTOOLS_SCM_PRETEND_VERSION
设置为所需的版本。
jbig2enc
如果能找到 jbig2enc(一个 JBIG2 编码器),OCRmyPDF 将使用它。一些发行版避开了打包 JBIG2,因为它包含专利算法,但自 2017 年以来所有专利均已过期。如果可能,请考虑也打包它,以提高 OCRmyPDF 的压缩率。
命令行自动补全
请确保已安装命令行自动补全功能,具体请参阅安装文档中的说明。
32 位 Linux 支持
如果你维护一个支持 32 位 x86 或 ARM 的 Linux 发行版,只要其所有依赖项仍提供 32 位版本,OCRmyPDF 就应能继续工作。请注意,我们不在 32 位平台上进行测试。
HEIF/HEIC
OCRmyPDF 默认安装 pi-heif PyPI 包,该包支持从命令行将 HEIF(高效率图像文件格式)图像转换为 PDF。如果你的发行版没有提供此库,你可以排除它,OCRmyPDF 将自动优雅地降级,仅失去对该功能的支持。