当ColorConversionStrategy设置为sRGB时,GhostScript会删除图像

时间:2009-07-09 10:28:16

标签: ghostscript

我们有很多打印就绪的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设置的默认设置,图片仍然存在,但文件仍然存在尺寸没有减少。

图像是透明的,因此也可能是一个因素。

有人有任何想法吗?

1 个答案:

答案 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设置。这可能会克服你的问题。