如何将CMYK PDF批量转换为RGB?

ke_*_*15c 3 pdf pdf-generation batch-processing color-profile

我有大量的PDF(6,000 +),需要从CMYK颜色配置文件转换为RGB。是否有任何脚本可以完成此任务,并且理想情况下没有(太)明显的颜色变化?PDF是最初用于打印的书文件,正准备作为电子书加载。

我发现了一些InDesign脚本可能能够做到这一点,但是从这一点开始,从原始设计文件获取和重新导出将非常耗时。另一个选择似乎是通过Adobe Acrobat运行动作,但是我还没有取得任何成功。

如果有人可以担保,我也发现了Java的这一点:http : //www.aspose.com/docs/display/pdfjava/Changing+Color+space+of+a+PDF+document

有什么建议或见解吗?

Kur*_*fle 5

您可以使用Ghostscript来完成这项工作。不过,请确保使用最新版本。

这是一个尝试的命令:

 gs                                      \
  -o rgb.pdf                             \
  -sDEVICE=pdfwrite                      \
  -sProcessColorModel=DeviceRGB          \
  -sColorConversionStrategy=RGB          \
  -sColorConversionStrategyForImages=RGB \
   cmyk.pdf
Run Code Online (Sandbox Code Playgroud)

请注意,实现转换目标“理想地没有(太)明显的颜色变化”并不总是可能的。这很大程度上取决于输入的PDF是否确实使用了嵌入式颜色配置文件,以及使用哪种颜色配置文件。

它还取决于您应用的颜色配置文件。上面的命令将使用编译到Ghostscript中的默认RGB配置文件。要使用自定义配置文件,可以添加各种命令行参数。要将一个配置文件用于所有类型的PDF内容,请使用:

 -sDefaultRGBProfile=rgb-profile-filename
Run Code Online (Sandbox Code Playgroud)

这将定义源文档中尚未比色定义的源颜色。

如果要覆盖已经嵌入在PDF文档中的配置文件,请添加以下内容:

 -dOverrideICC=true
Run Code Online (Sandbox Code Playgroud)

在这些选项之上,您还可以通过添加以下内容来控制输出设备的ICC配置文件:

 -sOutputICCProfile=output-profile-filename
Run Code Online (Sandbox Code Playgroud)

使用输出配置文件时,通常还需要设置渲染意图。为此,请使用:

 -dRenderIntent=intent
Run Code Online (Sandbox Code Playgroud)

其中intent之一

  • 0感性的
  • 1:用于比色
  • 2饱和
  • 3:用于绝对比色意图。

Ghostscript甚至支持对不同类型的PDF内容使用不同的配置文件:图形,文本和图像。看这里:

 -sGraphicICCProfile=graphicprofile-filename
 -sTextICCProfile=textprofile-filename
 -sImageICCProfile=imageprofile-filename
Run Code Online (Sandbox Code Playgroud)

与上述通用选项类似-dRenderIntent,您可以为不同的内容类型指定不同的意图:

 -dGraphicIntent=intent
 -dTextIntent=intent
 -dImageIntent=intent
Run Code Online (Sandbox Code Playgroud)