オープンソース紹介


PDF生成ライブラリ iText

JavaのオープンソースのPDFを生成するライブラリとして非常に有名なツールです。
JasperReport、JFreeReportなどJavaで作成されたレポートツールもPDF出力部分にこのライブラリを使用しています。
iTextだけを利用してPDFを作成する場合は、完全に自由なレイアウトの帳票作成が可能ですが、帳票毎に文字や線の描画をプログラミングで記述することになります。シンプルなレイアウトであれば、PDFフォームへの差し込み印刷のような帳票生成も可能です。また、出力設定ファイル(XML等)から帳票を生成する仕組みを作成することで簡易レポートツールを実装することも可能です。

主な機能

  • テキストの出力
    Chunk、Phrase、Paragraph、Section、Chapter などの要素を使って、テキストをPDFに出力できます。 Chunkには同じフォント属性(フォント、サイズ、カラー、スタイル)の文字列です。 Phraseでは、行送りを指定することができます。 Paragraphには、アラインメントやインデントを指定することができます。 Section、Chapterで章、節を作成し、ブックマークを付加することができます。 これらの要素をDocumentに追加することで、文字列や文章を自動フォーマットでPDFに出力されます。
  • 画像の出力
    BMP、EPS、GIF、JPEG、PNG、TIFF、WMFフォーマットの画像をPDFに出力できます。 自動フォーマットでの出力の他、絶対位置への出力や、拡大縮小、回転も可能です。
  • 日本語フォントの使用
    iTextAsian.jarを使用することで、日本語フォントを利用することができます。 Acrobat標準フォント(明朝、ゴシック)を利用することで、フォントを埋め込まないPDFファイルが作成できます。MS明朝などのTrueTypeFontをPDFファイルに埋め込むことも可能です。
  • DirectContentに対する図形や画像の自由なレイアウト出力
    DirectContentとして取り出したPdfContentByteを使用することで、絶対座標を指定して図形や画像を配置することができます。 PdfContentByteからJavaのGraphic2D クラスを取得することができ、このGraphic2DクラスにJavaのグラフィック 描画メソッドを利用して図形をPDFに出力することができます。 また、直接PDFのグラフィックスオペレータを使用することで、座標変換、パス構築、パスペイントなどによるグラフィック 描画も可能です。透明化やクリッピングなど複雑なグラフィックの描画可能となります。文字列の描画や回転も可能です。
  • 文字列の絶対座標での出力/段組み出力
    PdfContentByteから作成したColumnTextを利用することで、絶対座標で出力領域を作成し、文字列を流し込む ことができます。段組みや特定位置に文字を出力したい場合に利用します。
  • テーブルの出力
    HTMLのテーブルのような仕様で、Cellを追加することでテーブルを作成することができます。 使用方法によっては、DirectContentにパス構築でテーブルを作成するほうが簡単なこともあります。
  • バーコードの出力
    JAN (EAN、UPC)、CODE39、CODE128などのバーコードの他、DataMatrix、PDF417などの2次元バーコードも実装している ようです。QRコードがないので、バーコード印刷ライブラリを別途用意した方がよいと思われます。弊社での実装実績はありません。
  • PDFフォームの利用
    AcroFormと呼ばれるテキストフィールド、ラジオボタン、チェックボックスなどの入力フィールドをもったPDFフォームの作成が可能です。 あらかじめテンプレート用に作成したPDFフォームに対し、AcroFormのテキストフィールドに文字列を設定する機能も実現できます。 DirectContentと組み合わせることで、画像や文字列のインデントの実装も可能です。
  • 既存PDFファイルへの操作
    PDFファイルの結合、取り出し、暗号化

ライセンス

LGPL (GNU Lesser General Public Licence)
MPL (MOZILLA PUBLIC LICENSE)

リンク

iTextの公式ホームページ

<<back