4

この質問によると:

iPad で PDF 文書を表示する - 色の問題

一部の PDF は、色が RGB ではないため、iOS デバイスで正しく表示されません。また、CMYK から RGB への PDF の変換は、ghostscript を使用して自動化できることも言及されています。実際のコマンドがどのように見えるか知っている人はいますか?

4

4 に答える 4

5

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
于 2011-12-14T07:14:14.603 に答える
2

-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

于 2013-11-14T12:26:36.267 に答える
2

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 でテスト済み。

于 2017-11-09T19:36:31.097 に答える
1

私の知る限り、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はベクトル化されているため)

于 2011-12-12T19:46:42.007 に答える