首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PDF压缩方法

PDF压缩方法
EN

Unix & Linux用户
提问于 2021-01-03 10:05:55
回答 1查看 595关注 0票数 0

问题

我有很多旧书要扫描和数字化。为此,我使用一些平板扫描仪,xsaneGImageReader,这是很好的工作。

几年前,当我还在使用Windows时,我使用了ABBY Fine Reader,我对此也很满意,但它在Linux上是不可用的。

现在,比较我现在创建的PDF和我在当时创建的PDF,我发现现在的文件要大得多。

使用ABBY时,我常常得到文件大小在10-50 MB之间的50-60页的PDF,我认为这是可以接受的。现在,我有50-60页的PDF,文件大小为150+ MB,例如,在智能手机上读取它们时不太有用。

我使用相同的设置进行扫描,即:

  • A4页面
  • jpg压缩
  • 300 dpi
  • 封面颜色扫描
  • 灰度扫描所有内部页面

我假设尺寸差异与ABBY使用一些商业魔术来聪明地处理图像压缩有关,而GImageReader并没有这一点。也许他们能识别非空白区域(插图和文本块),并以更高的质量保存它们,同时积极压缩“背景图像”或类似的东西,或者他们仅仅能够识别出一些页面是灰度的,而另一些页面是彩色的,这一点在GImageReader上可能会丢失。我不知道,真的,我很想明白。

我已经尝试过的

从那以后,我已经玩了一些PDF压缩的各种方法。大多数在线指南建议使用gspdftk,我已经尝试过这两种方法。在我的具体案例中,我观察到以下情况:

  • 选项1:gs for pdf->pdf/printer/prepress设置根本不减少文件大小,/screen/ebook设置会导致图像质量显著下降。
  • 选项2:gs表示pdf->ps,然后选择ps->pdf。这导致文件大小显著减少(我不明白为什么这与选项1有任何不同,但无论如何),我对该选项感到满意,直到我注意到文本的字形显然在翻译中丢失了。当我从PDF中复制和粘贴文本片段时,结果是一些翼式的胡言乱语,在这里我能够从原始PDF中复制和粘贴文本,所以这是不-不。
  • 选项3:pdftk for pdf->pdf。这似乎丝毫没有减少文件的大小。

现在该做什么

我有点不明白PDF压缩技术是如何产生如此不同的结果的。我正在寻找一个在linux下运行的工具(最好是自由和开放源码软件,但我也会满足于一个负担得起的商业产品),并提供了扫描的OCRd PDF的显着的PDF压缩,而不是对300 JPG的A4 JPG造成明显的质量损失。

EN

回答 1

Unix & Linux用户

发布于 2021-01-03 11:11:37

我假设尺寸差异与ABBY使用一些商业魔术来聪明地进行图像压缩有关。

别假设,调查。PDF格式是有据可查,请阅读详细信息。在编辑器中打开PDF文件(或只使用less),查看页面的实际编码方式,并找出不同之处。或者用命令行工具安装像mutools这样的包,这些工具可以提取PDF文件的部分内容。

PDF中的图像将根据其存储的分辨率(该分辨率可能与所扫描的图像相同)和压缩算法占用不同的空间。

根据标准压缩的方法有

  • ASCIIHexDecode
  • ASCII85Decode
  • LZWDecode (Lempel-Ziv)。
  • FlateDecode (zlib/deflate)
  • RunLengthDecode

还有一些可能不适用的。

因此,找出ABBY所使用的分辨率和压缩方法,然后尝试找到工具来再现它(如果它们不开箱即用,您可能需要修改现有的工具)。

据我所知,这意味着ABBY使用带有掩码特性的JPXDecode过滤器对图像进行编码,这意味着我将寻找一种可以执行JPXDecode (JPG2000?)的linux/FOSS替代方案。压缩。

一点儿没错。注意,JPG可能不是最好的文本压缩方法,因为它是针对照片的,这意味着它不能很好地呈现典型的文本转换。另一方面,由于这些都是扫描,在扫描时转换可能已经内在地模糊了。

还请注意,JPG有相当多的参数影响压缩比与质量。

因此,在这种情况下,使用mutools提取一些图像,使用其他一些工具(例如,ImageMagick/GraphicsMagick中的mediainfoidentify -verbose )来查找JPG图像的参数。

也要非常仔细地查看解压的JPG图像在高放大率,并决定质量是否足够好。

应该有足够的开放源码工具从你扫描的图像中创建一个JPG文件,以达到所需的分辨率和质量,但我不知道有什么工具可以随手将它们打包到PDF中。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/627311

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档