iText のチュートリアル及びドキュメントを眺めて過ごす
API のドキュメントは,
ant javadoc
で作成される。
とりあえず,日本語の表示はチュートリアルの Chapter 9 の CJK Fonts の通り。
String jaString = "はろ〜 わ〜るど。";
BaseFont bfMin = BaseFont.createFont("HeiseiMin-W3", "UniJIS-UCS2-H", BaseFont.NOT_EMBEDDED);
BaseFont bfGo = BaseFont.createFont("HeiseiKakuGo-W5", "UniJIS-UCS2-H", BaseFont.NOT_EMBEDDED);
Font FontMin = new Font(bfMin, 12, Font.NORMAL);
Font FontGo = new Font(bfGo, 12, Font.NORMAL);
Paragraph min = new Paragraph(jaString, FontMin);
Paragraph go = new Paragraph(jaString, FontGo);
document.add(min);
document.add(go);
てな感じでイケた (日本語文字列部分は native2ascii で Unicode にしてコンパイル)。
これでできた PDF がクセがあるのか,その日本語部分が OS X の Preview.app で表示されない。
コンソールに Failed to find CMap `UniJIS-USC-H'. というエラーが出ている。
Acrobat Reader では表示されるので Apple の PDF パーサの実装の手抜きなのかな?
Preview の方が Acrobat より手軽な気がしていて常用していたのだが,う〜む。
また,出力専門でパーサは無い…,などと思っていたが,PdfReader クラスの存在を発見。コレで PDF の入力/解析ができるみたい。
お任せ組版では無く,自由なレイアウトは PdfContentByte クラスで実現できる (チュートリアル Chapter 10)。
CD ケースサイズのカレンダーを作ろうと,写植屋よろしく紙に描いたレイアウトを定規で測りながら習作クラスを書き始める。
『ん? もしかして単位はポイントなのか?』
1 pt = 1/72 inch
1 inch = 25.4 mm
だったっけ? という事は 1 mm は何ポイントだ?
PostScript の世界ではお馴染の座標変換行列なんぞも出てきたりする。
あぁ,これでは休日の息抜きプログラミングにならないぞ…。