我们有很多打印就绪的PDF,我们希望将其缩减到适合在线下载的较小尺寸。我正在使用这样的Ghostscript:
"C:\Program Files\gs\gs8.64\bin\gswin32c.exe" ^
-q ^
-dNOPAUSE ^
-dBATCH ^
-dSAFER ^
-dPDFSETTINGS=/screen ^
-sDEVICE=pdfwrite ^
-sOutputFile="c:\gs_out.pdf"
-f "c:\6916_DE.pdf"
问题是Ghostscript无法转换一个图像,因此当我打开生成的PDF时,Adobe Reader会警告我文件中可能存在错误。如果我将PDFSETTINGS参数更改为/print
,则输出有效,但文件大小不会减少。
我已阅读ps2pdf
的帮助文件,我找到了一个关键参数ColorConversionStrategy
。当ColorConversionStrategy
设置为sRGB
时,图片将被删除,当设置为UseDeviceIndependentColor
时,这是/print
设置的默认设置,图片仍然存在,但文件仍然存在尺寸没有减少。
图像是透明的,因此也可能是一个因素。
有人有任何想法吗?
答案 0 :(得分:2)
首先,我建议您将Ghostscript更新为最新版本v8.71。自8.64(您似乎使用)以来,已经修复了许多关于PDF处理的问题。
第二次,如果您在命令行上使用-dPDFSETTINGS=/screen
,则会隐式设置:
-dColorConversionStrategy=/sRGB
和
-dColorImageResolution=72
。
但-dPDFSETTINGS=/printer
含蓄地使用:
-dColorConversionStrategy=/UseDeviceIndependentColor
以及
-dColorImageResolution=300
。
如果您的主要目标是缩小图片尺寸,请尝试以下操作:
gswin32c.exe ^
-o c:\gs_out.pdf ^
-sDEVICE=pdfwrite ^
-dPDFSETTINGS=/screen ^
-c ".setpdfwrite" ^
-c "<</ColorConversionStrategy /LeaveColorUnchanged>> setdistillerparams" ^
-c "<</ColorImageDownsampleType /Bicubic>> setdistillerparams" ^
-f "c:\6916_DE.pdf"
您继续使用/screen
(因此您暗示-dColorImageResolution=72
)。
但是,两个-c
参数将覆盖其他两个隐含的/screen
设置。这可能会克服你的问题。