日別アーカイブ: 2014年3月7日

PDFの色指定について

これまで、PDFの関連仕様としてPDF/X,PDF/A などについて説明してきました。これらの各仕様の中には「カラーの再現性を保証」するために、PDFがサポートする各種カラースペースに対して制限を設けているものがありました。たとえば、PDF/X-1およびPDF/X-1aでは、使用できるカラースペースをCMYK(およびグレースケール)に限定しています。今回からPDFで使用できる色について、説明してみたいと思います。

PDFのカラー機能
まずPDFのカラー機能ですが、色を指定する機能と色を描画する機能に分けられます。
色を指定する機能
ページコンテンツの文字、線、画像、あるいは、ページコンテンツ以外のしおり、注釈といった各種オブジェクトに対して色を指定する機能になります。
色を描画する機能
色の変換やガンマ補正などを行ってPDF内に指定されている色を表示する機能です。

PDFの作成者側では、PDF内の各種オブジェクトに対して色を指定し、PDFの表示・印刷などの使用者側では、指定された色を解釈し、対象のデバイスで使用可能な機能を用いて指定された色を再現することになります。PDFの色指定には様々な方法が用意されています。表示する特定のデバイスに依存しない方法で色を指定することもできます。

PDFのカラー指定
次にPDFでカラーを指定する方法を見ていきたいと思います。
カラー値
PDF内での色の指定方法は各種存在しますが、通常、カラースペースを指定し、カラースペースによって決まるカラー成分毎に値を指定することになります。たとえば、RGBカラースペースであればカラー成分はR,G,Bの3成分を持ちますので、カラースペースとしてRGBを指定したのち、これらの各成分に対応する3種類の値を指定することになります。
カラースペース
PDFで使用されるカラースペースの説明に入ります。PDFのカラースペースは大きく3種類のカテゴリに分類されます。

  • デバイスカラースペース
    • DeviceGray
    • DeviceRGB
    • DeviceCMYK
  • CIEベースカラースペース
    • CalGray
    • CalRGB
    • Lab
    • ICCBased
  • 特殊カラースペース
    • Pattern
    • Indexed
    • Separation
    • DeviceN
デバイスカラースペース
出力デバイス上の表現に直接関係するカラー値を指定します。一番簡単な指定方法ですが、同じ指定をしても出力デバイスが異なれば違った色に見えることが多いという欠点もあります。

  • DeviceGray
    無彩色の光の輝度を白と黒の比率で制御します。カラー値の成分は1つであり、黒 0 ~白 1の範囲で表現されます。
  • DeviceRGB
    加法混色の3原色 赤・緑・青(R,G,B)を成分に持ち、各成分の値を 0(成分無)~1(最大輝度)で表現します。黒(0,0,0) ~白(1,1,1)となります。
  • DeviceCMYK
    減法混色の4原色 シアン、マゼンタ、イエロー、ブラック (C/M/Y/K)を成分に持ち、各成分の値を0(その成分無)から1(最大濃度)で表現します。白(0,0,0,0)から黒(1,1,1,0) となります。成分Kは、理論的には不要ですが、CMYのインクを混合して黒を生成するより黒インクを使用するほうが印刷上、きれいな黒が表現されるために使用されます。(0,0,0,1)も黒となります。

PDF内で、各カラースペースを混在して指定することができます。たとえば黒でABCと3文字表示されていても「A」はDeviceGrayの0、「B」はDeviceRGBの(0,0,0)、「C」はDeviceCMYKの(1,1,1,0)という場合もあり得ます。(PDF/XやPDF/Aではこのあたりの混在使用を禁止しています)

次回、CIEベースカラースペースについて説明したいと思います。

PDFの色指定について(2)
色とは何か
PDFの色指定 (3)CIE1931 CIELuv CIELAB
CIEカラースペース
PDFの色指定(4)
ICCプロファイル
PDEの色指定(5)CIEベースカラースペース
PDFのCIEベースカラースペース格納形式と使用のされ方の概略

PDF Tool API V4.0にJava APIを追加!

みなさん、こんにちわ。

このたび、『Antenna House PDF Tool API V4.0』は改訂2版(MR2)を公開いたしました。
MR2では、新たにJava用APIが追加されています。
Java用APIはWindows用とLinux用、どちらも32bit用、64bit用の双方用意されています。

PDF Tool API V4.0は昨年10月に初版をリリースしました。
初版は、C++用API、.NET用APIとコマンドラインでしたが、今回Java用APIを加え、これでPDF Tool API V4.0としての製品形態が(ようやく(^_^;))整いました。
    PDF Tool API 製品紹介ページ

評価版がありますので、ぜひ、お試しください!
    PDF Tool API 評価版申し込み

旧バージョンのPDF Tool API V3.1と比較して、V4.0の特長は、なんといっても、

◎処理が速い!
下記のページに、一部ですが、速度比較テスト結果を掲載していますのでご参考ください。
    処理速度比較テスト結果

◎64bit nativeなAPI!
V3.1は32bit APIのみでしたので、動作環境が64bit OSでも32bitモードで動作するプログラムを作るしかありませんでした。
V4.0では、64bit nativeなAPIですので、64bit OSの利点を活かせる64bitプログラムの作成が可能です。
もちろん、32bit APIもあります。

◎Linuxに対応!
V3.1はWindows用のみでしたが、V4.0ではWindowsとLinuxの2つのプラットフォームに対応しました。
Linux用として、C++用API、Java用APIとコマンドラインがあります。C++用API、Java用APIについては、サンプルコードをたくさん付けましたので、評価版ですぐにも動かしてみることができると思います。

V3.1のユーザーさんにとりましては、V4.0ではインターフェースが変更になっておりV3.1との互換がないためバージョンアップには躊躇があろうかと思います(すみません。。)。
(わかりやすいかどうかちょっと自信がありませんが)V3.1との相違点を整理してみました。
    V3.1とV4.0のおもな相違点

V3.1を使用したプログラムの改変や動作環境の移行などの予定がございましたら(予定はなくても!)、ぜひ、V3.1→V4.0のバージョンアップをご検討ください!!