我正在使用 GS 压缩大型 PDF 文件(大小 +10 MB),使用以下代码片段:
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=shrink.pdf large_2.pdf
问题是将 35MB 的文件压缩到 10MB 大约需要 5 到 10 分钟。
这是正常的吗?我有一台普通的四核机器 - 但我担心它在服务器上也会很慢。当我把它放在更强大的服务器上时,这个问题会得到解决吗?
我正在压缩的 pdf 是美国国家航空航天局 2014 财年总统预算请求摘要(34 MB)
答案1
我在主 Ubuntu 桌面 (15.04) 上压缩了同一个文件,花了 49.401 秒才完成。这台机器有 Intel i5-4690k 四核处理器,主频为 3.9 GHz,12GB 内存,主频为 1600MHz。在压缩过程中,它从未使用超过一个核心,并且任何时候都只使用两个核心。
为了进行比较,我也在我的 Mini-ITX 机器(Ubuntu Server 15.04)上运行了它,压缩文件花了 3 分 16.050 秒。这台机器有一个主频为 2.41GHz 的 Intel J1800 双核处理器和主频为 1333MHz 的 4GB 内存。
time
下面是我运行该命令前面得到的输出gs
:
Ubuntu 桌面
real 0m49.401s
user 0m49.084s
sys 0m0.208s
Mini-ITX机器
real 3m16.050s
user 3m14.684s
sys 0m0.924s
所有这些都表明,更强大的处理器肯定会对压缩时间产生影响,但考虑到我的台式机只使用了两个核心,我认为时钟速度对压缩时间的影响比核心数量更重要,但如果不知道处理器的具体型号,就很难根据您的设置进行验证。
答案2
我使用了下面的命令,但它并没有对我的 pdf 文件进行实质性的压缩。有时压缩后某些部分会变黑。
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf $INPUTFILE
"ps2pdf -dPDFSETTINGS=/ebook %s %s" % (input_file_path, out_file_path)
在网上搜索了很久,我还是找不到合适的压缩库。我偶然发现了pdfcompressor.com
。这是一个非常棒的网站。它将 pdf 压缩了 95%(15Mb 的文件)。所以我使用 selenium 和 Tor 来自动压缩。查看我的 Github 存储库。[GITHUB] (https://github.com/gugli28/PdfCompressor)