问题
我有很多旧书想要扫描和数字化。为此,我使用了一些平板扫描仪,xsane
并且GImageReader
效果很好。
几年前,当我还在使用 Windows 做这样的事情时,我使用了ABBY Fine Reader
,我也很高兴,但它在 Linux 上不可用。
现在,比较我现在创建的 PDF 和以前创建的 PDF,我发现今天的文件要大得多。
通过 ABBY,我曾经获得 50-60 页的 PDF,文件大小在 10-50 MB 之间,我认为这是可以接受的。如今,我的 PDF 文件有 50-60 页,文件大小为 150+ MB,这在智能手机上阅读时不太有用。
我使用相同的扫描设置,即:
- A4页
jpg
压缩- 300 dpi
- 封面的彩色扫描
- 所有内页的灰度扫描
我认为尺寸差异与 ABBY 使用一些商业魔法来智能地进行图像压缩有关,而 GImageReader 没有。也许他们识别非空区域(插图和文本块)并以更高的质量保存它们,同时积极压缩“背景图像”或类似的东西 - 或者也许他们只是能够识别某些页面是灰度的,而其他页面是灰度的彩色的,这种区别可能会在 上丢失GImageReader
。我真的不知道,但我很想了解它。
我尝试过的
从那时起,我开始尝试各种 PDF 压缩方法。大多数在线指南建议使用gs
或pdftk
,我都尝试过。就我的具体情况而言,我观察到以下几点:
- 选项 1:
gs
对于pdf->pdf
.和/printer
设置/prepress
根本不会减小文件大小,/screen
并且/ebook
设置会导致图像质量显着下降。 - 选项 2:
gs
forpdf->ps
然后ps->pdf
。这会导致文件大小显着减少(我不明白为什么这与选项 1 有什么不同,但无论如何),我对这个选项很满意,直到我注意到显然文本的字形在翻译中丢失了。当我从 PDF 中复制和粘贴文本片段时,结果是一些类似 wingdings 类型的乱码,而我可以从原始 PDF 中复制和粘贴文本,所以这是一个禁忌。 - 选项 3:
pdftk
对于pdf->pdf
.这似乎根本没有减少文件大小。
现在做什么
我有点不明白 PDF 压缩技术怎么可能产生如此截然不同的结果。我正在寻找一种在 Linux 下运行的工具(最好是 FOSS,但我也愿意选择价格实惠的商业产品),并提供扫描和 OCRd PDF 的显着 PDF 压缩,而与 300dpi A4 JPG 相比,质量不会出现明显损失。
答案1
我认为尺寸差异与 ABBY 使用一些商业魔法来智能地进行图像压缩有关
不要假设,要调查。 PDF 格式为有据可查,阅读详细信息。在编辑器中打开 PDF 文件(或仅使用less
),查看页面的实际编码方式,并找出差异。或者安装一个类似于命令行工具的包mutools
,可以提取 PDF 文件的部分内容。
PDF 中的图像将占用不同的空间量,具体取决于其存储的分辨率(可能与扫描时使用的分辨率相同或不同)和压缩算法。
标准压缩按照标准是方法是
- ASCII 十六进制解码
- ASCII85解码
- LZWDecode (Lempel-Ziv-Welch) 。
- FlateDecode (zlib/deflate)
- 游程解码
以及一些可能不适用的内容。
因此,找出 ABBY 使用的分辨率和压缩方法,然后尝试找到工具来重现该方法(如果现有工具不能立即执行此操作,您可能需要修改现有工具)。
据我了解,这意味着 ABBY 使用带有 Mask 功能的 JPXDecode 过滤器来对图像进行编码,这意味着我正在寻找可以进行 JPXDecode (JPG2000?) 压缩的 linux/FOSS 替代方案。
确切地。请注意,JPG 可能不是是文本的最佳压缩方法,因为它面向照片,这意味着它无法很好地呈现文本典型的尖锐过渡。另一方面,由于这些是扫描,因此扫描时过渡可能已经本质上模糊了。
另请注意,JPG 有相当多的参数会影响压缩比与质量。
因此,在这种情况下,请使用mutools
提取一些图像,使用其他工具(例如mediainfo
或identify -verbose
来自 ImageMagick/GraphicsMagick)来找出 JPG 图像的参数。
还有一个非常在高倍率下仔细观察解压缩的 JPG 图像,并确定质量是否足够好。
应该有很多开源工具可以根据所需的分辨率和质量从扫描图像创建 JPG 文件,但我不知道有什么工具可以将它们打包成 PDF。