この質問によると:
一部の PDF は、色が RGB ではないため、iOS デバイスで正しく表示されません。また、CMYK から RGB への PDF の変換は、ghostscript を使用して自動化できることも言及されています。実際のコマンドがどのように見えるか知っている人はいますか?
この質問によると:
一部の PDF は、色が RGB ではないため、iOS デバイスで正しく表示されません。また、CMYK から RGB への PDF の変換は、ghostscript を使用して自動化できることも言及されています。実際のコマンドがどのように見えるか知っている人はいますか?
Postscript ファイルから PDF を生成する場合、Ghostscript を使用して CMYK から RGB に変換します。PDF から PDF への変換でも機能するはずです。
次のコマンド ラインが使用されます。
gs -sDEVICE=pdfwrite -dBATCH -dNOPAUSE -dCompatibilityLevel=1.4 -dColorConversionStrategy=/sRGB -dProcessColorModel=/DeviceRGB -dUseCIEColor=true -sOutputFile=output.pdf input.ps
-dCompatibilityLevel を v1.4 から v1.3 にダウングレードすることで、ここで同じ問題を解決しました。
更新: v1.3 では、PDF 内のすべてのコンテンツが 1 つのオブジェクトにまとめられます。つまり、エンド ユーザーはビューアーでテキストを選択したり、画像を抽出したりすることはできません。
v1.4 を使い続けるために、色の精度を維持するのに役立つゴースト スクリプトのトリックを発見しました。これは、PDF 透明度を無効にすることです。RGB にはアルファ チャネルがないため、変換が不正確になり、情報が失われます。 .
したがって、 -dNOTRANSPARENCY を使用する場合でも、 -dCompatibilityLevel=1.4 を使用でき、機能します。
正確なコマンド:
gs -sDEVICE=pdfwrite -dBATCH -dNOPAUSE -dCompatibilityLevel=1.4 -dNOTRANSPARENCY -dColorConversionStrategy=/sRGB -dProcessColorModel=/DeviceRGB -dColorConversionStrategyForImages=/DeviceRGB -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -dUseCIEColor=true -sOutputFile=output.pdf input.pdf
PHPで処理しているので、簡単なクラスを書きました:
/**
* Convert color profiles - PDF to PDF
* Class Conversor
*/
class Conversor
{
/**
* Convert CMYK to RGB
*
* @param $input
* @param $output
* @return string
*/
public static function gsCmykToRgb($input, $output)
{
$gsScript = ('gs -sDEVICE=pdfwrite \
-dBATCH -dNOPAUSE \
-dCompatibilityLevel=1.4 \
-dNOTRANSPARENCY \
-dColorConversionStrategy=/sRGB \
-dProcessColorModel=/DeviceRGB \
-dColorConversionStrategyForImages=/DeviceRGB \
-dTextAlphaBits=4 \
-dGraphicsAlphaBits=4 \
-dUseCIEColor=true \
-sOutputFile='."$output".' '."$input");
exec($gsScript);
return realpath($output);
}
}
Ghostscript に関するすべてをここで見つけることができます: http://www.ghostscript.com/doc/9.05/Use.htm
Mac では、 sipsコマンドを使用できます。例えば、
sips --matchTo '/System/Library/ColorSync/Profiles/Generic RGB Profile.icc' CMYKinput.pdf --out RGBoutput.pdf
また、RGB pdf も同様に CMYK に変換できます (「Generic RGB Profile.icc」を「Generic CMYK Profile.icc」に変更します)。
OSX 10.12 でテスト済み。
私の知る限り、ghostscriptはラスター画像の色空間しか変換できません
podofocolor
http://podofo.sourceforge.net/
ベクトルオブジェクトを変換することができます
この方法で、cmykをグレースケールに変換することができます(白黒の非カラフルなページの場合) 。
podofocolor grayscale input.pdf output.pdf
バイナリがリポジトリにない場合は、残念ながら自分でビルドする必要があります。しかし、私はちょうどpdfをグレースケールに変換しようとしました
gs -sOutputFile=output.pdf -sDEVICE=pdfwrite -sColorConversionStrategy=Gray -dProcessColorModel=/DeviceGray -dCompatibilityLevel=1.4 input.pdf < /dev/null
プリプレスのプリフライトチェックでグレースケールになっていると言われたので、 gsはpdfのラスターコンテンツの色空間しか変換できないと言っていたのは間違っていたかもしれません(私のpdfはベクトル化されているため)