I'm using following command in PHP to convert a PDF with RBG colors to CMYK colors:

$input  = PDF_DIR . 'input.pdf';
$output = PDF_DIR . 'output.pdf'

exec("'gs'
      '-sDEVICE=pdfwrite'
      '-dUseCIEColor'
      '-sProcessColorModel=DeviceCMYK'
      '-sColorConversionStrategy=CMYK'
      '-sColorConversionStrategyForImages=CMYK'
      '-sOutputFile=$output'
      '$input'
");

I am using Ghostscript version 8.71.

gs -v
GPL Ghostscript 8.71 (2010-02-10)
Copyright (C) 2010 Artifex Software, Inc.  All rights reserved.

Somehow the result is always an empty pdf file. Does anyone know what I'm doing wrong?

Thanks in advance for any answers, Cheers!

Some references:

有帮助吗?

解决方案

It seems to work if I omit the -dUseCIEColor parameter. I also added an parameter to collect the output like Sami Laine suggested. This is my final code:

$input  = PDF_DIR . 'input.pdf';
$output = PDF_DIR . 'output.pdf'

exec("'gs'
  '-o $return'
  '-sDEVICE=pdfwrite'
  '-sProcessColorModel=DeviceCMYK'
  '-sColorConversionStrategy=CMYK'
  '-sColorConversionStrategyForImages=CMYK'
  '-sOutputFile=$output'
  '$input'
");

Thank you for your answers!

其他提示

In addition to what Sami says above (which is excellent advice, you need to see the back channel output) you should also upgrade, 8.71 is quite old.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top