Font クラス
どのPDF Reader でも標準フォントとして、Courier、Courier Bold、Courier Italic
(Oblique)、Courier Bold and Italic、Helvetica、Helvetica Bold、Helvetica
Italic (Oblique)、Helvetica Bold and Italic、Times Roman、Times
Roman Bold、Times Roman Italic、Times Roman Bold and Italic、Symbol、ZapfDingBats®
(ビルトインフォントの節も参照)
の14個のフォントは、利用可能です。 同じタイプフェースでも (Courier、Helvetica、Times
Roman) でも、フェース(normal、bold、italic、bolditalic)が異なる場合は 、異なるフォントとして扱われます。このことは、ファイルとスタイルからフォントを得るの節でも出てきます。iText
は、これらの違いをフォントファミリー (Courier、Helvetica、Times Roman) とスタイル
(normal、bold、italic) により指定することによりより透過的にようになっています。
基本 14 ォントのオブジェクトは、次に示すような単純なコンストラクタによって構築します。
先頭に戻る基本 14 ォントのオブジェクトは、次に示すような単純なコンストラクタによって構築します。
fonts[0] = new Font(Font.COURIER, Font.DEFAULTSIZE, Font.NORMAL); fonts[2] = new Font(Font.COURIER, Font.DEFAULTSIZE, Font.BOLD); fonts[3] = new Font(Font.COURIER, Font.DEFAULTSIZE, Font.BOLD | Font.ITALIC); fonts[7] = new Font(Font.HELVETICA, Font.DEFAULTSIZE, Font.BOLDITALIC); fonts[9] = new Font(Font.TIMES_ROMAN, Font.DEFAULTSIZE, Font.ITALIC);
Example: java
com.lowagie.examples.fonts.StandardType1Fonts
Sums up the 14 Standard Type 1 Fonts: see StandardType1Fonts.pdf
Sums up the 14 Standard Type 1 Fonts: see StandardType1Fonts.pdf
FontFactory クラス
次の例では、Font インスタンスの作成に、FontFactory
クラスを使っています。これは、(フォントプロパゲーションの機能を使わない限り)新しい
Font オブジェクトを得る最も簡単な方法です。フォントの取得の章を読むと、フォントの'ソース'としてさまざまなものがあることがわかります。Fontfactory
は、さまざまな形式のフォントオブジェクト(特殊なCIDフォントは除きます)を構築する共通のメソッドを持ったAPIです。
先頭に戻るfonts[0] =
FontFactory.getFont(
FontFactory.COURIER,
Font.DEFAULTSIZE,
Font.NORMAL);
fonts[2] =
FontFactory.getFont(
FontFactory.COURIER,
Font.DEFAULTSIZE,
Font.BOLD);
fonts[3] =
FontFactory.getFont(
FontFactory.COURIER,
Font.DEFAULTSIZE,
Font.BOLD | Font.ITALIC);
fonts[7] =
FontFactory.getFont(
FontFactory.HELVETICA,
Font.DEFAULTSIZE,
Font.BOLDITALIC);
fonts[9] =
FontFactory.getFont(
FontFactory.TIMES_ROMAN,
Font.DEFAULTSIZE,
Font.ITALIC);
Example: java
com.lowagie.examples.fonts.FontFactoryType1Fonts
Sums up the 14 Standard Type 1 Fonts (using the FontFactory): see FontFactoryType1Fonts.pdf
Sums up the 14 Standard Type 1 Fonts (using the FontFactory): see FontFactoryType1Fonts.pdf
BaseFont クラス
FontFactory から返される Font オブジェクトは、ほとんどの場合、複雑なクラスである
BaseFont のラッパークラスとして働いているに過ぎません。BaseFont インスタンスを
BaseFont.createFont メソッドで直接生成することもできます。
先頭に戻るBaseFont helvetica =
BaseFont.createFont(
BaseFont.HELVETICA,
BaseFont.CP1252,
BaseFont.NOT_EMBEDDED);
- 最初のパラメータは、フォント名あるいはファイル名を表します。Windows
システムでは、ほとんどのフォントは、 C:\WINDOWS\FONTS
ディレクトリにあるので、Arial の BaseFont
オブジェクトを構築する正しい方法は、次のようになります。
BaseFont arial = BaseFont.createFont( "C:\\WINDOWS\\FONTS\\ARIAL.TTF", BaseFont.CP1252, BaseFont.NOT_EMBEDDED);完全フォント名でフォントを問い合わせることもできます。次の例を見てください。Example: java com.lowagie.examples.fonts.FullFontNamesTTF ファイルのパスを使ってフォントを作成するならば、フォント名として TTF ファイルが要求されます。(ファイルからのフォントの作成の節では、ひとつのメソッドで完全なフォントディレクトリの登録する方法が記載されています。これにより、Fontオブジェクトを作成するとき、常に分割されたフォントへのパスが必要にはなりません。)
Retrieving the full font name: see fullfontname_arialbi.txt
- 二番目のパラメータは、エンコーディングです。文字は抽象記号、つまりグリフは、文字を特定するためのグラフィカルな表現です。たとえば、グリフ
A、A、A いずれも、抽象的な "A"
という文字の表現です。エンコーディングは、(文字列から得られる)文字コードとグリフの表現を結びつけるものです。Java
の String オブジェクトにおける同じ Java
文字でも、エンコーディングによってさまざまなに表現されます。Basefont
には、既定の値が設定されていますが、使用しているフォントで利用できるいずれのエンコーディングも利用できます。
フォントのエンコーディングは、次のようにして問い合わせることができます。BaseFont.WINANSI = BaseFont.CP1252 Latin 1 BaseFont.CP1250 Latin 2: 東ヨーロッパ BaseFont.CP1257 Windows Baltic BaseFont.MACROMAN MacRomanEncoding このリストを、"1251" (キリル文字)、"1253" (ギリシャ文字)、"1254" (トルコ文字)に拡張すること容易です。 Example: java com.lowagie.examples.fonts.ListEncodingsすべてのフォントが任意のエンコーディングを含んでいるわけではありません。あなたの要求にあうフォントを探すことに使えるだけです。
Asking the font for its available encodings: see encodings.txt
Example: java com.lowagie.examples.fonts.FontEncoding次の例では、値 IDENTITY_H をエンコーディングとして渡しています。BaseFont.IDENTITY_H および BaseFont.IDENTITY_V は、真の意味ではエンコーディングではありません。これらの値は、ユニコード文字が2バイトの領域を取ってそのまま保存され、参照されることを表します。アジアフォントやタイ語のような Adobe に無視されたエンコーディングを保持する唯一の方法です。ヨーロッパ言語や中東言語の場合は、1文字あたり1バイトで格納される利用可能なエンコーディングを利用する方が有利です。BaseFont.IDENTITY_H あるいは BaseFont.IDENTITY_V のフォントは、3番目のパラメータで指定しない限り埋め込まれます。
Using a True Type font that will be embedded in the PDF: see fontencoding.pdf
Example: java com.lowagie.examples.fonts.UnicodeExample
Using BaseFont.IDENTITY_H as 'encoding': see unicode.pdf
Example: java com.lowagie.examples.fonts.EncodingFont
Using an encoding to display characters from other alphabets: see encodingfont.pdf
- 3番目のパラメータは、PDF
文書にフォント(のサブセット)を埋め込む場合にしてします。これは、作成した文書の読み手のシステムで使われていない特殊なフォントを使っている場合は必須です。Example: java com.lowagie.examples.fonts.FontEncoding
Using a True Type font that will be embedded in the PDF: see fontencoding.pdf
続く
There more on fonts in the chapters
フォントの取得
(ビルトイン、ファイルからの取得、jar からの取得、CID フォント) とフォントの特性
(スタイルの変更、書き込み方向の変更、など) の章でもフォントについてさらに説明します。 and .
先頭に戻る