PDF 优化

OCRmyPDF 包含一个面向图像的 PDF 优化器。默认情况下,优化器使用安全设置运行,旨在提高压缩率而不损失质量。在更高的优化级别下,可能会应用和调整有损优化。优化发生在 OCR 之后,并且仅在 OCR 成功时进行。它不执行其他可能的优化,例如资源去重、合并字体、简化矢量图或任何此类性质的操作。

OCRmyPDF 优化设置

优化级别

缩写

描述

--optimize 0

-O0

禁用大多数优化。

--optimize 1 (默认)

-O1

启用无损优化,例如将图像转码为更高效的格式。还压缩 PDF 中其他未压缩的对象,并启用 PDF 中更高效的“对象流”。(如果使用了 --jbig2-lossy,则使用有损 JBIG2 优化。决定使用有损 JBIG2 的选择独立于标准优化设置)。

--optimize 2

-O2

包含以上所有,并启用有损优化和颜色量化。

--optimize 3

-O3

包含以上所有,并启用更激进的优化并目标更低的图像质量。

执行的具体优化类型会随时间变化,并取决于安装的第三方工具。

尽管进行了优化,OCRmyPDF 仍可能增加总体文件大小,因为它必须嵌入关于识别文本的信息,并且根据所选设置,可能无法像输入文件那样紧凑地表示输出文件。

始终进行的优化

OCRmyPDF 会自动将过时或低劣的压缩方案(如 RLE 或 LZW)替换为更高级的方案(如 Deflate),并将单色图像转换为 CCITT G4。由于这是无损的,它始终发生且无法禁用。其他非图像的压缩对象也会被压缩。

快速网页视图

OCRmyPDF 会自动优化 PDF 以实现 Adobe Acrobat 所称的“快速网页视图”,或者等同地,线性化 PDF,使其引用的资源按照查看器进行连续显示所需的顺序呈现。这可以减少在线和本地存储查看 PDF 的延迟,代价是文件大小略有增加。

要禁用此优化和所有其他优化,请使用 ocrmypdf --optimize 0 ... 或缩写 -O0

Adobe Acrobat 可能不会报告文件为“快速网页视图”。

无损优化

在优化级别 -O1 (默认) 下,OCRmyPDF 也会尝试无损图像优化。

如果 JBIG2 编码器可用,则单色图像将被转换为 JBIG2,这对于大型黑白图像有可能节省巨大的空间,因为 JBIG2 比其他任何单色(双层)压缩都高效得多。(所有已知与 JBIG2 相关的美国专利可能已经过期,但提供 JBIG2 编码器(如 jbig2enc)仍是用户的责任。OCRmyPDF 本身不实现 JBIG2 编码)。

OCRmyPDF 目前不尝试对无损压缩的对象进行更积极的重新压缩。

有损优化

在优化级别 -O1-O2-O3 下,OCRmyPDF 会尝试进行一些有损图像优化。

如果使用 Ghostscript 创建 PDF/A(默认),Ghostscript 会通过将某些图像转换为 JPEG 来优化它们,这属于有损优化。如果使用 --output-type pdf,则没有有损优化。Ghostscript 的 JPEG 转换非常安全。

如果安装了 pngquant,OCRmyPDF 将使用它对调色板图像进行量化以减小其大小。

JPEG 的质量可能会降低,假设 OCR 后较低质量的图像可能适合存储。

无法优化所有图像类型。优化器可能会跳过不常见的图像类型。

OCRmyPDF 提供 有损 模式 JBIG2 <jbig2-lossy> 作为一项高级功能,它额外需要参数 --jbig2-lossy