如何批量转换CMYK PDF到RGB?

时间:2014-07-07 16:12:11

标签: 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

有任何建议或见解吗?

3 个答案:

答案 0 :(得分:4)

您可以使用Ghostscript完成此项工作。请务必使用最新版本。

这是一个尝试的命令:

 gs                                      \
  -o rgb.pdf                             \
  -sDEVICE=pdfwrite                      \
  -sProcessColorModel=DeviceRGB          \
  -sColorConversionStrategy=RGB          \
  -sColorConversionStrategyForImages=RGB \
   cmyk.pdf

请注意,您实现转化的目标'理想情况下,没有(太)明显的颜色变化 并非总能实现。它在很大程度上取决于输入PDF确实使用嵌入的颜色配置文件,以及哪些。

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

 -sDefaultRGBProfile=rgb-profile-filename

这定义了源文档中尚未以色度方式定义的源颜色。

如果您想覆盖已嵌入PDF文档的配置文件,请添加以下内容:

 -dOverrideICC=true

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

 -sOutputICCProfile=output-profile-filename

使用输出配置文件时,您经常还要设置 rendering intent 。为此目的使用:

 -dRenderIntent=intent

其中intent

之一
  • 0 :for Perceptual
  • 1 :for Colorimetric
  • 2 :用于饱和度
  • 3 :用于绝对色度意图。

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

 -sGraphicICCProfile=graphicprofile-filename
 -sTextICCProfile=textprofile-filename
 -sImageICCProfile=imageprofile-filename

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

 -dGraphicIntent=intent
 -dTextIntent=intent
 -dImageIntent=intent

答案 1 :(得分:0)

我使用的是Adobe Acrobat Pro。进入工具,预检(可能在不同的位置,具体取决于您拥有的版本)。

enter image description here

在PDF修正部分中查找“转换为sRGB”。您可以手动运行此命令单个PDF以查看它是否适合您。如果是,请转到“选项”菜单并选择“创建预检Droplet”

enter image description here

您将获得有关如何处理成功和失败的选项,但是当您单击“保存”按钮时,您将获得Windows,Mac的实际EXE文件,您应该获得一个应用程序文件。这个文件你可以拖动文件,我认为文件夹只能直接到,它会运行那个动作,就像Photoshop一样。

enter image description here

答案 2 :(得分:0)

使用Adobe Acrobat Pro生成的预检可用于批处理。在我的情况下,我必须将专色转换为CMYK而不影响其他颜色,所以我在convert to CMYK only (SWOP)

中选择PDF fixups section

保存预检后会生成.exe文件。可以使用命令提示符下面的命令对此进行测试,这可以进行测试。

"%location_of_file%\Convert to CMYK only (SWOP).exe" "" "%file_name%"

我还准备了一个脚本,以便自动化我可以给它的小原型的过程。

d:
cd %dir% ::directory on which the batch process is to be run.
:cycle
set count_files=0
for %%x in (*.pdf) do set /a count_files+=1 ::PDF in my case so *.pdf
if %count_files%==0 ( GOTO :MISSING ) else (for /F %%a in ('dir /a-d /b /o-d *.pdf') do set oldest=%%a)
"%location_of_executable%\Convert to CMYK only (SWOP).exe" "" "%oldest%"
move %oldest%  %output_folder_with_location%\%oldest%
timeout 3 ::delay so that conversion process get completed
:MISSING
goto :cycle

这个批处理脚本继续循环它天气失败或通过,如果有待处理的PDF,这个BATCH脚本首先开始转换最旧的文件。