DjVu 是一种常见于互联网的扫描版的电子书分发格式由于把内容部分和背景部分分开保存DjVu 格式的电子书能在较小体积的前提下仍然保证内容部分的锐利。许多老旧教材的电子版版本通常只能找到扫描版本,这类扫描版本通常是 DjVu 格式。

在移动设备上进行 DjVu 材料阅读的现状

然而将 DjVu 转换为 PDF 的需求仍然存在因为在不少系统上围绕 DjVu 搭建的基础设施极为有限譬如在 iOS 上,对于 DjVu 格式的文档目前我只找到了一款叫做 BiLibre 的应用能够一定程度上支持使用 Apple Pencil 批注这款程序还只是一个 KyBook 的程序的试验田而已而反观 PDF,许多应用间能够直接传输导入阅读批注 PDF可以说一整套工具都是围绕着 PDF 搭建的。在移动设备上采用 PDF 而不是 DjVu 格式进行阅读相对来说自然是一种更优的选择。

线上一些网站将 DjVu 转换为 PDF 之后在锐度严重损失的前提下体积通常会膨胀数十倍这些线上工具也通常并未提供任何可以调整的参数可能由于需求较少目前也基本没有在本地找到一套完整可控的工具链能完成从 DjVu 到 PDF 的转换操作。因此我们开始尝试手动完成这一转换。

将 DjVu 转换为 PDF

目前探索来看比较好的一对工具是 DjVuLibre 和 Ghostscript

DjVuLibre 是个开源的 DjVu 处理包它提供了一个简易的图形化界面能够进行简单的 DjVu 阅读它的一系列命令行工具能够比较好地进行 DjVu 的制作解包工作能把 PDF 以及许多图像格式转换为 DjVu它同时也提供了编程库被 SumatraPDF 等阅读器作为 DjVu 底层支持库使用

Ghostscript 则是老牌的 PostScript 处理程序同样包括了用于阅读的图形化界面和一系列命令行脚本这一系列程序被包含在 TeXLive 发行版中

因此本文提出一种可行的操作是使用 DjVuLibre 中的 djvups 命令将 DjVu 文件转换为 PostScript 格式然后使用 Ghostscript 中的 ps2pdf 将 PostScript 格式的文件重新转换为 PDF这样我们几乎得到了高质量的 PDF 原稿

命令行操作的伪代码如下

djvups [djvu-file-name] [ps-file-name] [-verbose] [-page='1,3,7-10'] [-..]
ps2pdf [ps-file-name] [pdf-file-name]

要注意的是如果没有提前将可执行文件的目录添加到 Path 中两条命令均需要替换为实际的文件路径Windows 下 ps2pdf 是个 bat 脚本因此要注意把拓展名包含在内因为有个不含拓展名的文件实际上是个 Bash 脚本另外在 djvups 中-verbose 可以显示一个简易的进度条-page='1,3,7-10' 选择转换的页码还有后续更详细的设置能调整 PostScript 的分辨率颜色和灰度等

文章完成后经过提醒我注意到在 superuser 上对于这一过程有一定程度的介绍可供参考。但最方便的 djvu2pdf 是 shell 脚本,并未提供 Windows 版本

压缩 PDF 的体积

可惜的是文件体积膨胀的问题仍没得到很好的解决甚至可以说远远超出我的想象原本 37 MB 的 DjVu 文件转换为 PostScript 文件后有 7.7 GB 之大再次转换为 PDF 之后也有 1.44 GB体积非常可观下一步我们只能看看能否在合理范围内缩减体积无论是从最后压缩 PDF 还是基于损失 PostScript 文件的前提之下Adobe Acrobat 将其转换为压缩体积的 PDF 能将体积减小到 242 MB略小于线上转换出的 343 MB两者的实际效果相差不大

在 Adobe Acrobat DC Pro 进行 ClearScan 操作

如果想要进一步地缩小文件大小只能尝试一种被称为 ClearScan 的操作这种优化与压缩的方案在 Adobe 的产品博客上有较为详尽的比较和介绍这种优化方案简单说就是讲文本部分进行 OCR 处理并构建一套共享的字体通过这套共享的字体来优化体积在 Adobe Acrobat DC Pro 中这种操作的名字略有变化选项位置藏在工具 – 优化扫描的页面 – 文本识别选项 – 编辑 – 输出 – 可编辑的文本和图像这可以说是 DjVu 思路的 PDF 压缩方案把前景的内容和背景分离效果可以说见仁见智但总体而言对于原本高分辨率的原稿效果还是可以接受的在我的实验之下最终效果是把前文所述的 343 MB 的文件压缩到 172 MB但这种操作由于涉及 OCR 的操作因此耗时比较恐怖可以考虑睡前进行

本文提供的方案只是一种可行的本地操作方案而已多了一种选择但实际操作上只能说还是要在体积和质量上做艰难的取舍。


6
2