我尝试弄清楚如何使用ddjvu
将 DjVu 文件转换为 PDF。如果我使用
ddjvu -format=pdf input.djvu output.pdf
输出的 PDF 非常大,并且由无损图像组成。此外,还会出现一个警告,我稍后会谈到:
TIFFWriteDirectorySec:警告,使用旧版 Deflate 编解码器标识符创建 TIFF,COMPRESSION_ADOBE_DEFLATE 受到更广泛的支持。
为了使输出文件更小并且由有损图像组成,man ddjvu
建议使用以下-quality
选项:
-quality=factor:为 TIFF 和 PDF 文件启用有损 JPEG 压缩。此选项仅影响无法使用首选 TIFF/G4 压缩进行编码的图像。参数因子是范围从 25 到 150 的量化因子。有关 JPEG 量化因子的更多信息,请参阅命令 cjpeg(1)。值 80 是一个很好的起点。
如果我使用的值不超过 100(例如 80、90 或 100),
ddjvu -format=pdf -quality 90 input.djvu output.pdf
TIFFWriteDirectorySec 警告不会出现。据我了解,这是因为使用-quality
意味着 PDF 将由有损图像组成,这反过来意味着它将由 JPEG 而不是 TIFF 组成。
但是如果值高于 100,例如 105 或 150,警告会再次出现。这是为什么?
压缩质量设置大致是 0 到 100 之间的百分比。引用上面链接中提到的 cjpeg 手册页:
质量设置为 100 意味着尝试在使用有损编码的同时实现最佳效果。任何高于 100% 的值都要求实现不可能实现的目标(优于原始质量)和无效输入。
ddjvu
因此,如果设置为高于 100,则会忽略您的质量设置。