2

我们有很多可打印的 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设置时,图像仍然存在,但文件大小不会减小。

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

有人有什么想法吗?

4

1 回答 1

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设置。这可能会解决您的问题。

于 2010-08-14T15:04:49.297 回答