大虾PDF Compression,压缩内容流,有什么作用

Prawn PDF Compression, compress content streams, what does it do

大虾gem有一个初始化选项:compress,描述为here

显然是 "Compresses content streams before rendering them"

使用和不使用 compress: true 我生成了相同的 14 页 pdf 两次。每页有 2 张照片和各种文字。生成的文件大小完全相同。

所以我的问题是:在制作大量照片时,文件大小会有所不同吗?或者 compress: true 在处理过程中消耗了更多或更少的 RAM?它的目的是什么?

我终于找到了三个问题的完整答案

1.在制作大量照片时,文件大小会有所不同吗?

2。或者 compress: true 在处理过程中消耗或多或少的 RAM?

  • 有趣的是,对于 small-ish (<10MB) 的文件大小,与 compress: true 或 non-existent 相关的额外 RAM 消耗可以忽略不计。对于更大的文件大小,您的结果可能会有所不同。

3。它的(:compress)目的是什么?

一种更有效的压缩 PDF 的方法是使用 Ghostscript 进行后处理,使用如下命令:

ghostscript -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dUseCIEColor -dPDFSETTINGS=/printer -dNOPAUSE -dQUIET -dBATCH -sOutputFile=<output.pdf> <input.pdf>

这通常会将我的 Prawn 生成的 PDF 的大小减少 50% 或更多。 dPDFSETTINGS 选项可以设置为不同的值以更改压缩量 - 请参阅 Ghostscript 文档。