命令如下:
gs -q -dSAFER -dBATCH -dNOPAUSE -dPDFSETTINGS = / prepress -sDEVICE = pdfwrite -sOutputFile = output.pdf 1.pdf 2.pdf ... N.pdf
每个输入PDF包含许多图像,并且大多数图像在输入PDF之间共享。
命令成功运行。内存使用量逐渐增加,最终达到3.7GB。 我尝试了各种PDFSETTINGS:印前/打印机/电子书/屏幕。最大内存没有减少。
我想知道是否可以减少GhostScript的内存使用?可以接受更长的CPU处理时间。
$ gs -v GPL Ghostscript 9.25(2018-09-13) 版权所有(C)2018 Artifex Software,Inc.保留所有权利。
答案 0 :(得分:0)
不,您不能显着减少pdfwrite设备的内存使用量。
pdfwrite设备会在内存中保留很多东西。这样的结果是,对于具有大量页面和许多资源(例如字体)的文件,内存使用量可能非常高。
您不能在PDF之间共享图像。每个PDF文件可能包含一个图像副本,该副本与另一个PDF文件中的图像副本相同,但未共享。
更改PDFSETTINGS不会产生任何实际变化;这主要影响存储在磁盘上而不是内存中的图像的色彩空间和分辨率。因此,更改这些设置不会改变内存使用情况。
当然,您可能会发现内存泄漏,但是如果没有看到输入,我什至无法猜测。即使您确实提供了输入,除非有一点明显的东西,否则我不会尝试调试使用大于3GB内存的东西。