1

我正在使用 Ghostscript 9.07 使用批处理脚本将 PDF 文件从彩色转换为灰色。该脚本工作并从颜色转换为灰色,但仅适用于第一页。在我尝试过的每个 PDF(12 个 PDF)上,转换策略都会恢复为在第一页之后保持颜色不变。

脚本:

C:\working-environment\gs9.07\bin\gswin64c -o C:\Test\converted.pdf -sDEVICE=pdfwrite -dLastPage=20 -dColorConversionStrategy=/Gray -dProcessColorModel=/DeviceGray C:\Test\original.pdf

注意:我以管理员身份在 Windows 7 PC 上运行脚本。设置 -dLastPage 参数是因为我有很长的 PDF(500 多页)。

错误:

Unable to convert color space to Gray. reverting strategy to LeaveColorUnchanged.

注意:我使用了 Oracle 和 Postgress 手册,因为我也想查看性能。

4

3 回答 3

3

我对 Ghostscript 9.06 也有同样的问题。pdftops -level3sep在将文档传递给 Ghostscript 之前使用将文档转换为 CMYK 颜色为我解决了这个问题。bash 中的示例:

gs -o converted.pdf -sDEVICE=pdfwrite -dColorConversionStrategy=/Gray \
  -dProcessColorModel=/DeviceGray <(pdftops -level3sep input.pdf -)

也试试:

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dNOPAUSE -dQUIET -dBATCH \
  -dAutoRotatePages=/None -dUseCIEColor -sOutputFile=output.pdf input.pdf
于 2013-05-25T02:52:03.080 回答
2

几乎可以肯定,“后续”页面使用的颜色空间,正如消息通知您的那样,无法转换为 DeviceGray。在没有看到文件的情况下(我真的不想要一个 500 多页的文件作为例子)我不能告诉你是什么导致了你的问题。如果你可以制作一个展示这个的小文件,我会看看它。

请注意,这不是错误,而是警告。一个错误会中止工作。

Ghostscript 下一个版本中的新颜色管理应该意味着无论如何都不会再发生这种情况。

[编辑]

对我来说,无论我使用当前代码还是发布的 9.07,这个文件都会在第一页给出警告。因为色彩空间的问题出现在页面内容的后期,所以在此之前的所有内容确实都转换为灰色,但后面的内容没有。

出现此问题的原因是 PDF 文件使用 /Separation /All 颜色空间在页面上绘制“打印机标记”。当前代码无法转换 /Separation 颜色空间,也无法保留它,因此它恢复为“保持颜色不变”。因为打印机标记是页面上的最后一件事,并且因为 /All 标记了所有印版,因此看起来是黑色的,所以看起来整个页面都已转换,但事实并非如此。

通过将文件拆分为 3 个单独的页面,您将获得看起来是三个单独的“正确”页面,但实际上每个页面都已部分转换并且仍然包含 /Separation /All 中的打印机标记。

Ghostscript Git 存储库中的当前代码在设置为使用新的 CMS 方案时,会在没有警告的情况下转换此文件,并且表面上正确处理多页文件,但此代码尚不完整。它应该与 GS 9.08 一起发布。

于 2013-04-12T16:50:25.410 回答
1

补充一下这里的信息:这在 GS 版本 9.10 中仍然是一个问题,可能与 EPS 文件的存在有关。解决这个问题的方法是强制它使用旧的颜色管理代码。

gs -sDEVICE=pdfwrite -sProcessColorModel=DeviceGray -sColorConversionStrategy=Gray \
   -dOverrideICC -dPDFUseOldCMS=false

此错误报告有更多信息:https ://bugs.ghostscript.com/show_bug.cgi?id=694608

于 2018-04-05T18:20:35.850 回答