如何在命令行使用 ghostscript (gs) 压缩整个文件夹的 PDF

此 bash 脚本将压缩当前目录中的所有 PDF(*.pdf)。对于名为 a.pdf 的输入文件,它将输出文件写入 a.compressed.pdf。输入文件不会被更改。

compress_pdfs.sh
export IMAGE_DPI=72
for i in *.pdf ; do gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -dSAFER -dDownsampleColorImages=true -dColorImageDownsampleType=/Bicubic -dColorImageResolution=$IMAGE_DPI -dGrayImageResolution=$IMAGE_DPI -dMonoImageDownsampleType=/Subsample -dMonoImageResolution=$IMAGE_DPI -dEmbedAllFonts=true -dSubsetFonts=true -sOutputFile="$i.compressed.pdf" "$i" ; done

此命令主要通过下采样图像分辨率来减小 PDF 大小。它预设为 72 dpi 分辨率(export IMAGE_DPI=72)。

72 dpi 是相当低的分辨率,但这将显著减小压缩 PDF 的大小。如果你更注重图像质量而非小文件大小,应选择更大的值。


Check out similar posts by category: Linux