5 返信 最新の回答 日時: Nov 28, 2007 10:29 AM ユーザー:(brazil)

    Distiller Postscript → PDF の変換について

      Distillerで PostscriptからPDFの変換をおこなっています。
      Postscriptをテキストエディタで開き、
      setcmykcolor コマンドを追加した場合に
      0 255 255 0 setcmykcolor (赤)の場合には
      正しく赤く変換されますが、数値の箇所のみ変更し、
      0 55 83 14 setcmykcolor (オレンジっぽい色)のようにすると黒く変換されてしまいます。
      Distiller の設定をいろいろ変えてみましたが変わりませんでした。
      なにか情報をお持ちのかたいましたらよろしくお願い致します。

      Acrobat 7.0 Professional
      OS: Windows2000 Pro
        • 1. Re: Distiller Postscript → PDF の変換について
          Level 1
          > setcmykcolor コマンドを追加した場合に
          なぜこういう面倒なことをしているのか?という背景説明がない。

          > (赤)の場合には 正しく赤く変換されますが
          > (オレンジっぽい色)のようにすると黒く変換されてしまいます
          「赤」とか「黒く」とは単に見た目で判断しているのであろうか?
          Acrobat 7.0 Proには[出力プレビュー]機能があり、それで分版状況が確認できるのではないだろうか?

          Adobeサイトで配布している『PostScript LANGUAGE REFERENCE third edition』の662頁には、setcmykcolorについて以下の記載がある(setrgbcolorでも同様の説明あり)。

          b Each component must be a number in the range 0.0 to 1.0. If any of the operands is outside this range, the nearest valid value is substituted without error indication.

          つまり、引数は0から1の間であり、1以上は無視されより近い有効値(1)に置換される。よって「0 255 255 0 setcmykcolor」は「0 1 1 0 setcmykcolor」となり、「0 55 83 14 setcmykcolor」は「0 1 1 1 setcmykcolor」となるはず。

          上記リファレンスは日本語版がアスキーから出ている。

          ・PostScript リファレンスマニュアル 第3版
          http://www.ascii.co.jp/books/books/detail/4-7561-3822-5.shtml

          Acrobat 7.0 Proには[色を変換]機能があり、RGBからCMYKへの変換が可能になっている。WordなどRGBベースから作成されたPDFをCMYKベースにするのに最適だという(個人的にはそう いう機会がないので特に使っていない)。
          • 2. Re: Distiller Postscript → PDF の変換について
            Level 1
            >なぜこういう面倒なことをしているのか?という背景説明がない。
            申し訳ありませんでした。
            ある古いCADを使用しておりまして、そのCADの機能で、図面をPostscriptへ
            出力する機能があります。
            しかしその出力画面では出力データに色をつける機能がありません。
            しかし、出力データ毎に線幅を設定できる機能があるので、線幅を設定し
            出力されたPostscriptの setlinewidthコマンドを setcmykcolor コマンドへ
            差し替えることを考えました。
            大体においてうまくいったのですが、いろいろな色を設定してみると
            うまく変換される色とそうでない色があったため質問させていただきました。

            >Adobeサイトで配布している『PostScript LANGUAGE REFERENCE third edition』の662頁には、setcmykcolorについて以下の記載がある(setrgbcolorでも同様の説明あり)。
            >Each component must be a number in the range 0.0 to 1.0. If any of the operands is outside this range, the nearest valid value is substituted without error indication.
            >つまり、引数は0から1の間であり、1以上は無視されより近い有効値(1)に置換される。よって「0 255 255 0 setcmykcolor」は「0 1 1 0 setcmykcolor」となり、「0 55 83 14 setcmykcolor」は「0 1 1 1 setcmykcolor」となるはず。

            了解いたしました。
            実際に試してみたところ、まったく上記の通りとなっていました。
            CMYK のKの部分が 1になるとすべて黒に変換されるようです。(見た目では)
            試した結果、以下の6色が使用可能のようです。
            CMYK
            1100
            0100
            0110
            1000
            1010
            0010

            > Acrobat 7.0 Proには[色を変換]機能があり、RGBからCMYKへの変換が可能になっている。WordなどRGBベースから作成されたPDFをCMYKベースにするのに最適だという(個人的にはそう いう機会がないので特に使っていない)。

            上記は試してはいないのですが、文書全体ではなく、図面の特定の部分のみ色をつけたいので
            難しいのではと考えています。

            以上、貴重な情報を丁寧にお教え頂き大変有難うございました。
            • 3. Re: Distiller Postscript → PDF の変換について
              Level 1
              > 試した結果、以下の6色が使用可能のようです。

              うーん、それは'1'を指定した場合の話なのでは。

              > component must be a number in the range 0.0 to 1.0.

              なのですから、小数で指定すれば7色以上が使用可能だと思います。

              ただ、私も大昔に、PostScript中の文字に着色するツールを作成したことがあるのですが、単純にsetcmykcolorを用いるだけではうまく行かないケースがあった記憶があります 。
              詳細は忘れてしまいましたけど。
              • 4. Re: Distiller Postscript → PDF の変換について
                Level 1
                >> component must be a number in the range 0.0 to 1.0.

                >なのですから、小数で指定すれば7色以上が使用可能だと思います。

                おっしゃる通りでした。
                整数しか使えないものと勝手に勘違いしておりました。
                255 を 1 とした割合のCMYKの小数で試したところ、希望の色に変換することができました。

                >ただ、私も大昔に、PostScript中の文字に着色するツールを作成したことがあるのですが、
                >単純にsetcmykcolorを用いるだけではうまく行かないケースがあった記憶があります。
                >詳細は忘れてしまいましたけど。

                なるほど、今のところ問題にはぶつかっていませんが、注意したいとおもいます。

                おかげさまで希望のツールを作成することができました。
                ありがとうございました。
                • 5. Re: Distiller Postscript → PDF の変換について
                  Level 1
                  >> Acrobat 7.0 Proには[色を変換]機能があり
                  > 文書全体ではなく、図面の特定の部分のみ色をつけたいので
                  初めに訂正。[色を変換]は[色を置換]の誤記。
                  #1にも触れたが、[色を置換]機能は普通にいう「色を変える」機能ではない。RGBベースの色をCMYKベースに変更したりする場合のもの(カラースペースの変更)。

                  ところで質問者はsetcmykcolorを使っているが、setrgbcolorを使わないのはなぜであろうか? Windowsベースだけで事が収束するのであれば、setrgbcolorで十分であるはずだが?

                  > 以下の6色が使用可能のようです。
                  > CMYK
                  > 1100 (以下略)
                  CMYKは2進法での表記しか許されないのではなく、各色0から1.0まで許される(#1に書いたとおり)。2進法の組み合わせでは最大16色しか表現できないから変だと思うはずだが? 参照先のリファレンスすら見ていないということ?

                  さらに、CMYKの場合、各色0から1.0以内であればすべての組み合わせがOKというわけでもない(RGBのsetrgbcolorなら範囲内の組み合わせがOKのはず)。
                  毎日コミュニケーションズから出ている『Word+Acrobat DTP出力実践ガイドブック』のサポートページに、Acrobatの色変換に関して以下の説明がある。
                  #1で触れた『PostScript LANGUAGE REFERENCE third edition』の「7.2.3 Conversion from DeviceRGB to DeviceCMYK」にも公式が載せられている。
                  とくに別図を見ると以下の説明が明瞭になるはず。

                  ■ 「Acrobat 6.0と7.0の色変換の仕組みの違い」についての補足説明
                  http://book.mycom.co.jp/support/e2/wordacrobat/
                  ・別図
                  http://book.mycom.co.jp/support/e2/wordacrobat/sumihan.gif

                  はじめは何のことか分からないのだが、ようやく見えてきたのは以下のような事。せっかく調べたことなので備忘録的に書いてみる。

                  まずRGBからCMY(CMYKではない)への変換基本公式は以下のように設定される(RGBも0から1の範囲)。
                  C = 1.0 - red
                  M = 1.0 - green
                  Y = 1.0 - blue

                  例えば「R=0.2、G=0.7、B=0.8」だと、上記公式からCMY値は以下のようになる(変換ではなく初めからCMYKを設定したい場合はCMY値だけを決めておく)。

                  C=1.0-0.2=0.8
                  M=1.0-0.7=0.3
                  Y=1.0-0.8=0.2

                  CMY各色の最小値0.2は共通であり重ねると黒色なので、k=0.2に置き換えられる。そこでこの0.2をCMYから引いてやる(ここで上記別図を見ると理解しやすい)。

                  C=0.8-0.2=0.6
                  M=0.3-0.2=0.1
                  Y=0.2-0.2=0.0
                  K=0.2

                  これが最終的なCMYK値となる(UCR[下色除去]処理)。以上の理屈だと、CMYKのうち少なくとも1つは「0」になるはず。
                  なぜこういう面倒なことをするかというと「CMY3色だけでは黒色がうまく表現できない」「インクの総量を減らす」ために、CMYの黒色相当部分をK値に置き換えるという考えのようである。

                  門外漢なので勘違いもあるかもしれない。印刷所関係者の方が補足してもらえると有難い。

                  なお、JavascriptでRGBからCMYKへ変換する代表的サイトは以下のもの(これ以外にもいくつかある)。
                  ・RGB→CMYK
                  http://www.openspc2.org/reibun/javascript/convert/006/

                  カラーチャートからCMYK値を調べられるサイトなどがある。
                  ・CMYK値による色指定
                  http://www.sarago.co.jp/colorspc.html