はじめに
iText は PDF を作るライブラリですが、PDF シンタックス、PDF オブジェクト、PDF 演算子やオペランドを知っている必要はありません。(しかし、ダイレクトコンテンツ
を使えば、それらを追加することもできます。)iText には、PDF 文書に追加できる数々の高機能オブジェクトがあります。次に、iText
の高機能オブジェクトのいくつか(すべてではない)を示します。
注: HeaderFooter、Graphic などいくつかのオブジェクトは、もうサポートされていないためにリストにはありません。(文書化もされていません。)これらには、十分な代替法があります。
(たとえば、page
events と
graphics2D を参照してください。)
先頭に戻る
Chunk オブジェクト
Chunk は、文書にテキストを追加するときの最小単位であり、高機能オブジェクトを構成する基本要素となります。Chunk
内は、同じ性質―フォント、サイズ、スタイル、色など―をしています。このオブジェクトの完全な機能の説明は、Chunk
オブジェクト の章をご覧ください。下付、上付き、下線、背景色の機能については、次の例で示します。
Chunk についてより知りたいならば、Chunk
オブジェクト の完全な機能を説明する章を見てください。Anchors
や Fonts の章にも、関係した記載があります。
先頭に戻る
Paragraph オブジェクト
Paragraph は、最も使われるテキストオブジェクトです。これは、ひとつもしくはそれ以上の数の高機能オブジェクト―Chunk、Phrase、List、Imageなど―の
ArrayList です。Chunk と違い、Paragraph は異なるフォントのテキストを含ませることができます。
Paragraph について、もっとも知っておかなければならないことは、Paragraph が始まる新規の行ごとに改行幅がつくということです。
Paragraph の配置は、setAlignment(int
alignment) メソッドで設定できます。alignment パラメータは、次のうちのひとつを選択できます。
先頭に戻る- Element.ALIGN_LEFT
- Element.ALIGN_CENTER
- Element.ALIGN_RIGHT
- Element.ALIGN_JUSTIFIED
writer.setSpaceCharRatio(PdfWriter.NO_SPACE_CHAR_RATIO);この効果は、次の例で示します。(得られた PDF の1ページ目と2ページ目を比べてください。) 次のメソッドは、名前そのままですのでこれ以上の説明はしません。
- setIndentationLeft(float indentation)
- setIndentationRight(float indentation)
- setSpacingBefore(float spacing)
- setSpacingAfter(float spacing)
Phrase オブジェクト:
この節は、完全性のための
Phrase という風変わりなクラスを説明します。ほとんどの場合、Paragraph
クラスを使うことになるでしょう。
iText において高機能オブジェクトの 'leading' パラメータは非常に重要です。これは、二つの行の間隔を表し、正の値でなければなりません。
Phrase オブジェクトを生成するために
コンストラクタ を使うことができますが、テキスト中に特殊文字が入っている場合は、特殊文字が変換される
Phrase.getInstance を使うことができます。(これは、基本14フォントだけで動作し、これにはSymbol
と ZapfDingBats は含まれません。)
先頭に戻る
例: java
com.lowagie.examples.objects.SymbolSubstitution
Phrase.getInstance による特殊文字の Symbols フォントへの変換のデモ: SymbolSubstitution.pdf
フォントの置き換えは、FontSelector
クラスを使うことによってもっと安全に行うことができます。
Phrase.getInstance による特殊文字の Symbols フォントへの変換のデモ: SymbolSubstitution.pdf
例: java
com.lowagie.examples.objects.FontSelection
テキストを正しく表示するために必要なグリフを含んだ適切なフォントの選択: fontselection.pdf
テキストを正しく表示するために必要なグリフを含んだ適切なフォントの選択: fontselection.pdf
List オブジェクト:
List オブジェクト は、HTMLにおける <UL> あるいは <OL> タグに似た働きをします。iText
において <LI> と同値なものは、ListItem
です。
List のタイプは、コンストラクタの numbered と lettered パラメータで決定されます。また、symbolIndent パラメータも指定しなければなりません。これは、リストシンボルを表示するために確保されるスペースです。順不同のリストのために、setListSymbol(Chunk symbol) あるいは setListSymbol(String symbol) によって任意の Chunk あるいは文字列をシンボルにすることもできます。数字リストは、setFirst(int first) によって最初の数字を変更しない限り、'1' から始まります。アルファベットリストは、既定では大文字の ’A' で始まります。これは、setFirst(char first) メソッドにパラメータ 'a' を渡すことによって変更できます。
先頭に戻る
List のタイプは、コンストラクタの numbered と lettered パラメータで決定されます。また、symbolIndent パラメータも指定しなければなりません。これは、リストシンボルを表示するために確保されるスペースです。順不同のリストのために、setListSymbol(Chunk symbol) あるいは setListSymbol(String symbol) によって任意の Chunk あるいは文字列をシンボルにすることもできます。数字リストは、setFirst(int first) によって最初の数字を変更しない限り、'1' から始まります。アルファベットリストは、既定では大文字の ’A' で始まります。これは、setFirst(char first) メソッドにパラメータ 'a' を渡すことによって変更できます。
List list = new List(true, 20);
list.add(new ListItem("First line"));
List オブジェクト を拡張したより装飾されたリスト―RomanList、GreekList、ZapfDingbatsList、ZapfDingbatsNumberList―もあります。使い方は、単純です。