Last Updated 2011/09/21
このページでは、PDF 文書を作成するためのクラスライブラリの iTextSharp を取り上げます。
PDF "Portable Document Format" はいまや電子文書の標準フォーマットになりました。
広く普及した原因は、PDF 文書を表示するソフト Adobe Reader が無料で公開されていること、ハードウエアの環境を選ばないこと、などを挙げることができます。ここまで普及し、しかも、十分な機能を持っている以上、PDF の地位は将来にわたってゆるがないものと考えます。最近では書類を PDF 文書として提出することを要求されることさえ増えてきました。
PDF に対抗するためかどうかは分かりませんが、Microsoft は XPS を提案しています。PDF ドキュメントを作成するツールは有料(しかも、かなり高い)ですが、XPS では無料(?)です。無料といっても、現時点で、XPS ドキュメントをスクラッチで作成するためのツールとしては MS-Word しかありませんが、HTML ドキュメントを印刷する手順の中で、XPS 化するための仮想プリンタを使うことができます。詳しくは、XPS のページをご覧ください。
さて、私は HTML 化の可能なアウトラインプロセサ型テキストエディタ(DocMan3 といいます)を公開しています。これはアプリケーションのヘルプファイルのように、見出しを階層化したツリー構造で表示し、それぞれの見出しに対応するテキストを編集するものです。このソフトの最大の特徴は、テキストから直接 HTML ドキュメントに変換する機能を持っていることです。さらに、見出しの構造が分かっていますから、HTML 型ヘルプファイル(.chm ファイル)の作成もボタン一発で可能です。
HTML 化が可能であれば、HTML 化と似た手法で、テキストからいきなり PDF 化できないかと考えていたところ、iTextSharp の存在を知りました。ここで紹介するヘルプファイルは、iTextSharp を研究する過程でまとめたものです。
iTextSharp は Java で開発された iText を C# で書き換えたものです。iText の開発者は、ベルギー人の Bruno Lowagie という人で、Paulo Soares という人も深くかかわったようです。
iTextSharp は PDF 文書の作成を第一の目的としていますが、HTML/XML や RTF 文書の作成も視野に入れています。iTextSharp のクラスライブラリは大規模なものですが、以上の理由で、PDF 文書とは関係のない機能も多く含まれています。
さて、iTestSharp はソースコード公開型のフリーウエアです。これだけ規模の大きいライブラリを無料で公開されることに感謝の念に耐えません。ただ、クラスライブラリの内容を説明するドキュメントはありません。ソースコードの中に若干の説明はあるのですが、ほとんど役に立ちません。その代わりといってはナンですが、作者の Bruno Lowagie が "iText in Anction" という解説書(英語)を書いています。この本は多分日本語にはなっていないと思います。その本の内容の一部はアチコチのサイトを見て分かったのですが、クラスの使い方が中心で、ライブライリファレンスにはなっていないようです。私はこれが原因で購入を見合わせました。
PDF 文書の仕様は Adobe System 社から公開されており、iTextSharp は PDF 文書作成のためのほとんどすべての機能をカバーしているようです。しかし、使い方が分からなければどうにもなりません。そこで、以下に紹介するライブラリリファレンスは iTextSharp の一部の機能を解説するものではありますが、お役に立てると思います。
すでに説明しましたが、私はテキストから PDF 文書への変換だけに興味があります。したがって、iTextSharp のクラスライブラリ全体を知りたいとは考えていません。
iTestSharp を使って HTML/XML 文書を作成したいと考える人はそれほど多いとも思えません。
下図は、iTextSharp.chm を表示したところです。iTextSharp のクラスの構成は名前空間で分けていますが、 iTextSharp.chm では機能別にしました。
PDF 文書の作成という目的を達成するために必要なクラスにはサンプルコードを付けておきましたので、理解しやすいと思います。もちろん、日本語を使うための手順についても詳しく書いておきました。
iTestSharp に関する情報を提供する WEB サイトはたくさんありますが、実務的という意味ではかなり分かりやすくなっていると自負しています。しかも日本語です。
興味のある人は、以下に示す Vector のサイトからダウンロードしてください。サンプルのプロジェクトは含みませんが、Windows アプリケーションとしてプロジェクトを作成し、ボタンコントロールを貼り付けて、その Click イベントハンドラにサンプルコードをコピー&ペーストすればすぐにテストできます。
http://www.vector.co.jp/soft/winnt/writing/se462217.html
私は HTML 化が可能なアウトラインプロセサ型テキストエディタ DocMan3を公開していますが、HTML 化と同じ手順で PDF 化できないかと考えていたところ、上記で説明した iTextSharp の存在を知り、これを利用することでテキストから直接 PDF 化が可能であることが分かりました。
こうして誕生したのが DocPdf3 です。DocPdf3 を DocMan3 と組み合わせて使うと、シオリ付きの PDF 文書を作成できます。ボタン一発でです(本当に、ボタン一発ですよ)。DocPdf3 は元来、DocMan3 のために作ったものですが、テキストから PDF 文書を作成するニーズがあると思い、フリーウエアとして公開することにしました。今までのものと一味違うツールです。一度お試しください。Software のページにあります。
もちろん、DocMan3 のユーザーさんはぜひダウンロードしておいてください。すぐに使わなくてもいずれ役に立ちます。
−以上−