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

发布于 2024-07-26 17:56:50 字数 739 浏览 3 评论 0原文

我们有很多可打印的 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< 的默认设置/code> 设置后,图像仍然存在,但文件大小没有减小。

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

有人有什么想法吗?

we have a lot of print ready PDFs that we want to downsample to a smaller size that are suitable for online downloads. I am using Ghostscript like this:

"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"

The problem is that Ghostscript is failing to convert one image so when I am opening the resulting PDF Adobe Reader warns me about a possible error in the file. If i change the PDFSETTINGS parameter to /print the output works but the filesize is not reduced.

I have read the help file for ps2pdf and I have found one critical parameter, ColorConversionStrategy. When ColorConversionStrategy is set to sRGB the image will be removed, when set to UseDeviceIndependentColor, which is the default for the /print setting, the image is still there but the file size is not reduced.

The image is transparent so that might be one factor as well.

Anyone got any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

柠檬心 2024-08-02 17:56:50

首先,我建议您将 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 设置。 这可能会解决你的问题。

First, I would suggest you update your Ghostscript to the latest version, which is v8.71. A lot of problems regarding PDF processing have been fixed since 8.64 (which you seem to use).

Second, if you use -dPDFSETTINGS=/screen on your commandline, this will implicitly also set:
-dColorConversionStrategy=/sRGB and
-dColorImageResolution=72.
But -dPDFSETTINGS=/printer implicitely uses:
-dColorConversionStrategy=/UseDeviceIndependentColor as well as
-dColorImageResolution=300.

If your main goal is to reduce the image size, try this:

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"

You continue to use /screen (and therefor you imply -dColorImageResolution=72).

However the two -c parameters will override two other implied /screen settings. This could possibly overcome your problem.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文