gen*_*ser 32 bash pdf image-manipulation gimp
在 GIMP 中,我可以导入一个 PDF,然后使用 GUI 将它展平(如果它是由多层组成的),方法Flatten Image是在Image下拉菜单中进行选择。然后,我可以使用新文件名导出 PDF。
我想自动化这个。有没有办法通过终端做到这一点?
slm*_*slm 41
我通过谷歌找到了这 2 种方法,在这个主题为:Re: Flattening PDF Files at the UNIX Command Line。
方法 #1 - 使用 Imagemagick 的转换:$ convert -density 300 orig.pdf flattened.pdf
Run Code Online (Sandbox Code Playgroud)
注意:据报道,这种方法的质量如此。
方法 #2 - 使用 pdf2ps -> ps2pdf:$ pdf2ps orig.pdf - | ps2pdf - flattened.pdf
Run Code Online (Sandbox Code Playgroud)
注意:据报道此方法可保留图像质量。
小智 23
Ghostscript的(GS),比工作更好地pdf2ps和convert我。质量几乎没有下降,文件大小很小。
gs -dSAFER -dBATCH -dNOPAUSE -dNOCACHE -sDEVICE=pdfwrite \
-sColorConversionStrategy=/LeaveColorUnchanged \
-dAutoFilterColorImages=true \
-dAutoFilterGrayImages=true \
-dDownsampleMonoImages=true \
-dDownsampleGrayImages=true \
-dDownsampleColorImages=true \
-sOutputFile=document_flat.pdf document_original.pdf
Run Code Online (Sandbox Code Playgroud)
在这里找到:http: //zeroset.mnim.org/2015/01/07/flatten-pdfs-with-ghostscript/
小智 5
ghostscript 在 2016 年末更改了扁平化注释的默认设置。
要现在简单地展平 PDF,您需要 -dPreserveAnnots=false
所以一个简单的命令行现在是
gs -dSAFER -dBATCH -dNOPAUSE -dNOCACHE -sDEVICE=pdfwrite \
-dPreserveAnnots=false \
-sOutputFile=document_flat.pdf document_original.pdf
Run Code Online (Sandbox Code Playgroud)