Home • ChemFormatter • iText.NET • JFreeChart.NET • ConcatPDF • iTextFront • TIFF2PPT • J by J# • Programming J#
MSN Search

iText.NET

iText .NET
@SourceForge
ライセンス
更新履歴
ダウンロード
使い方
J# Examples
C# Examples
VB.NET Examples
コンパイル
ConcatPDF
iText (Java)
J by J#

SourceForge.net Logo

 

チュートリアル: iText.NET

デバイス色空間
グラフックスの章で、すでに ssetRGBColorFill/Stroke (赤-緑-青)、setCMYKColorFill/Stroke (シアン-マゼンダ-黄色-黒)、setGrayFill/Stroke (白黒)のようなメソッドについて説明した。これらのメソッドは、色空間を自動的に、DeviceRGB、DeviceCMYK あるいは DeviceGray へ変換する。これらは、出力デバイスが作り出す色や灰色の陰影を直接指定するデバイス色空間である。
PDFでは、ほかの色空間も可能である、iText で PDF のすべてをサポートしているわけではない。より特殊な機能については、ここでは説明しない。そが、iText で実装済みかどうかは、メーリングリストに質問を入れるべきである。透過、スポットカラー、パントーン、パターン、シェーディングのような機能については、下にスクロールすれば多くの例が見つかる。
先頭に戻る
色空間の分割
PDF Reference Manual 234ページより
色出力デバイスは、原色あるいは加工した塗料をさまざまな割合で混ぜ合わせることによりすべての色を作成することができる。ディスプレイのような加算的色デバイスは、原色は、赤、緑、青の光よりなり、プリンタのような減算的色デバイスでは、典型的には、シアン、マゼンダ、黄色と場合によっては黒インクよりなる。加えて、いくつかのデバイスは、通常使われる塗料を加工しただけではできないような効果を作り出すために、スポット塗料と呼ばれる、別な塗料が利用可能である。これには、金属光沢や蛍光色、特殊な質感などの例がある。
ページを印刷するとき、ほとんどのデバイスは、すべての加工塗料(ともしあればスポット塗料)を組み合せ、ひとつの合成されたページを作り出す。しかし、イメージセッターのようなデバイスでは、セパレ―ションと呼ばれる単色で表現されたページに分割して出力する。例えば印刷工程で、セパレ―ションが組み合わされると、適切なインクあるいは塗料がそれらに適用されて、フルカラーのページが出来上がる。
分割された色空間は、追加された塗料を使うことを特定したり、減算的デバイスのためのデバイス色空間の個別の色コンポーネントの制御から独立させたりするための手段を提供する。そのような空間が現在の色空間であるときには、現在の色はそれはtintと呼ばれるシングルコンポ―テント値であり、それは塗料あるいは色コンポーネントの適用を制御をするものである。
iTextでは、PdfSpotColor クラスによってスポットカラーを作成できます。その色に名前を付け、tintと代替色空間値を与える必要があります。この最後のパラメータのために、ExtendedColor クラスが作成されました。これは、java.awt.Color を継承しています。代替色空間値として RGB をもった PdfSpotColor を作成したいならば、java.awt.Color を使います。CMYK を使うのなら、CMYKColor あるいは ExtendedColor を継承したもの、白黒を使うなら GrayColor を使います。
これらのPdfSpotColor は、PdfContentByte.setColorFill/Stroke メソッドとともに使われます。高機能オブジェクトのために PdfSpotColor を使うなら、SpotColor クラスを使わなければなりません。
先頭に戻る
パターン
経路を筆書きしたり塗りつぶし足りするとき、これまでは単色を使ってきた。しかし、単色の代わりに、繰り返しのグラフィカルな形や滑らかに色が変化していくグラジエントで埋めていくこともできる。そのような繰り返し図形や滑らかなグラジエントをパターンと呼びます。
タイリングパターン
PDF Reference Manual version 1.6 4.6.2 節 (p261) より
タイリングパターンは、パターンセルと呼ばれる小さなグラフィックスの図形から構成される。パターンを描くとは、水平、垂直の両方向で一定の間隔でセルを複製し、ある領域を埋めるということです。その効果は、あたかもその形が透明なガラスタイルの表面に描かれ、その複製が領域を覆うようにずらりと並べられ、境界で切断されるようなものです。これを領域をタイリングするといいます。
タイリングパターンは、色付きタイリングパターン色なしタイリングパターンの二つに分けることができます。
色付きタイリングパターンは、その色情報を含んでいます。コンテンツストリームが始まるとき、その実際の色は、パターンの親のコンテンツストリームにより決まります。パターンセルを描く過程で、パターンコンテンツストリームはそれが描くグラフィックエレメントの色を明示的に設定します。(パターンセルは、異なった色で描画されているエレメントを含んでいてもよい。)
色なしのタイリングパターンは、色情報を継承しません。そのパターンが使われるときはいつでも、色を別に指定しなければなりません。コンテンツストリームは、色が注入されるステンシルとして記述されます。
iText では、PdfContentByte にある createPattern メソッドのひとつによって PdfPatternPainter を作成します。デフォルト色を指定したときには、そのパターンは自動的にステンシルパターンになります。色なしのタイリングパターンは、それ自身には色がないので、デフォルト色を定義する必要があります。この色は、setPatternFill を呼び出すたびに、色を定義する予定なら null でもかまいません。
手短に言うと、PdfPatternPainter を作成するメソッドには、createPattern(float, float) (色付きのパターン、幅と高さが定義されているだけで、垂直、水平の間隔はその幅、高さと同じ)、createPattern(float, float, java.awt.Color) (色なしのパターン、幅と高さ、および、色なしパターンのためのデフォルト色が定義されている)、createPattern(float, float, float, float) (色付きのパターン、幅と高さ、およびその垂直、水平の間隔が定義されている)、createPattern(float, float, float, float, java.awt.Color) (色なしのパターン) がある。
PatternColor. PdfPatternPainter をいったん得たら、それを setPatternFill/setPatternStroke メソッドでさまざまな場所で使うことができる。スポットカラーの場合は、パターンを高機能オブジェクト PatternColor のための色として使うために ExtendedColor を継承しているクラスを使うことができる。
Example: java com.lowagie.examples.directcontent.colors.Pattern
A stencil example (you define a shape and a default color).: see pattern.pdf
Example: java com.lowagie.examples.directcontent.colors.Patterns
Colored patterns.: see patterns.pdf
External resources for this example: pngnow.png
シェーディングパターン
PDF Reference Manual version 1.6 4.6.3 節 (p272) より
シェーディングパターンは、ある色からある色へ、描画領域を横切ってのスムースな遷移を提供し、それは、出力デバイス特有の解像度とは無関係であり、色の遷移の段数の指定はしない。
 シェーディングにはさまざまなタイプがある。paintShading(com.lowagie.text.pdf.PdfShading) メソッドで経路を描くため (このメソッドは、経路を描くので、fill() stroke() を呼び出してはいけない。)に使われるシェーディングオブジェクトを構築する方法を知りたいならば、PdfShading のAPIをチェックしてください。 PdfShadingPattern の作成もできます。これは、パスを塗りつぶす(paintShading(com.lowagie.text.pdf.PdfShadingPattern))のために使えるだけでなく、塗りつぶしや筆書きの色の設定setShadingFill(com.lowagie.text.pdf.PdfShadingPattern)/setShadingStroke(com.lowagie.text.pdf.PdfShadingPattern)にも使えます。 高機能オブジェクトの色としてシェーディングパターンを使えるようにするために、ExtendedColor の派生クラス ShadingColor もあります。
先頭に戻る
透過度
PDF Reference manual(第7章, p483)には、透過度についての章があります。コンテンツを加えることについての iText のアプローチをみたら、下層や反対にコンテンツを覆うために上層にコンテンツを加えることができることがわかります。しかしながら、PDF 1.4 からは、コンテンツをオーバーラップすることは必ずしも下のものを(それを見えないようにするという意味で)覆うとは限りません。PDF バージョン 1.4 の仕様に、透過イメージモデルが導入されました。これは、すべての'レイヤー'がそれがページ上でどのように実際に表示されるかを指定できるということです。
次のイメージは、PDF Reference Manual (p1053)からコピーしたものです。 Transparency
見ればわかるように、半分が灰色で半分が白色の四つの四角形があります。これは、バックドロップ(すでに指定したすべてのオブジェクトのスタック)と呼ばれます。これらの四角形を加えた後に、いくつかの円を加えました。最初の四角形では、透過度を設定していません。青い円は、黄色を多い、それは赤色を覆っています。二番目の四角形では、塗りつぶしの不透明度を 0.5 にしています。円の色は、ブレンドされています。バックドロップもすかして見えます。
三番目の四角形では、同じ透過度グループに入っています。グループの中では、デフォルトの不透明度(1=不透明度)で描かれます。そのグループは、不透明度0.5で描かれています。見てわかるように、青い円は、黄色を多い、それは赤色を覆っています。しかし、これを四角形に加えると、灰色の半分の部分がブレンドされています。四番目の四角形では、グループ中の円の不透明度は0.5です。そのため、それぞれの色はブレンドされています。このグループが1の不透明度で バックドロップの上に追加されていますが、ブレンドモードは異なっています。
Example: java com.lowagie.examples.directcontent.colors.Transparency
Reproducing PLATE 16 on p1053 in the PDF Reference Manual: see transparency.pdf
PDF Reference Manual の第7章では、さまざまなブレンドモードが与えられています(iText では、PdfGState.setBlendMode を使って設定します。グラフィックスステートの章も参照してください。そこには、利用可能なブレンドモードのリストがあります。)。
透過度グループの設定は、PdfTransparencyGroup.setIsolated(スタックを構成している初期の背景により決定する)および、PdfTransparencyGroup.setKnockout(スタック中のオブジェクトが、お互いに混合されるか、グループの背景とのみ混合されるかを決定する)で設定します。
Example: java com.lowagie.examples.directcontent.colors.Groups
Making images transparent.: see groups.pdf
ほかに、透過イメージモデルを提供するうまい例としては、ソフトマスクとしてのイメージの利用があります。
Example: java com.lowagie.examples.directcontent.colors.SoftMask
Making images transparent.: see softmask.pdf
External resources for this example: otsoe.jpg
先頭に戻る

Copyright (C) 2001-2007 Kazuya Ujihara. All rights reserved.