安装JBIG2编码器

大多数Linux发行版不包含JBIG2编码器,因为JBIG2编码长期以来一直受专利保护。截至2017年,所有已知的JBIG2美国专利均已过期,但可能存在未知的专利。

推荐使用JBIG2编码进行OCRmyPDF,它可以无损地创建更小的PDF文件。如果JBIG2编码不可用,将使用较低质量的CCITT编码来处理单色图像。

JBIG2 解码不受专利保护,大多数 PDF 查看器会自动执行。它得到了广泛支持,并且自 2001 年以来一直是 PDF 规范的一部分。

这些OCRmyPDF包自动提供JBIG编码: - Docker镜像(包括Ubuntu和Alpine) - Snap包 - ArchLinux AUR包 - Alpine Linux包 - macOS上的Homebrew

对于所有其他平台,您需要从源代码构建JBIG2编码器:

git clone https://github.com/agl/jbig2enc
cd jbig2enc
./autogen.sh
./configure && make
[sudo] make install

依赖项包括libtoolize和libleptonica,在Ubuntu系统中它们被打包为libtool和libleptonica-dev。在Fedora(35)中,它们被打包为libtool和leptonica-devel。为了使其正常工作,请确保首先安装autotoolsautomakelibtoolleptonica(如果尚未安装)。

[sudo] apt install autotools-dev automake libtool libleptonica-dev

有损模式 JBIG2

OCRmyPDF 提供了有损模式的 JBIG2 作为一个高级且可能危险的功能。用户应 查看有损模式下 JBIG2 的技术问题 并决定此功能是否适用于他们的使用场景。通常, 此模式不应用于存档目的,当原始文档不可用或将被销毁时不应使用,且当文档中的数字很重要时也不应使用,因为存在 6/8 和 8/6 替换错误的风险。

JBIG2有损模式确实比其他任何单色(双色)压缩技术实现了更高的压缩比;对于大型文本文档,节省的空间相当可观。JBIG2无损模式仍然提供了很高的压缩比,并且是对旧版CCITT G4标准的重大改进。

要开启JBIG2有损模式,请添加参数--jbig2-lossy--optimize {1,2,3}也是必要的,以使参数生效。 此外,必须按照前一节所述安装JBIG2编码器。

您可以使用--jbig2-threshold调整JBIG2压缩的阈值。默认值为0.85,这意味着如果两个符号的相似度为85%,它们将被压缩在一起。

由于疏忽,ocrmypdf v7.0 和 v7.1 默认使用了有损模式。