【サムライズオリジナル記事】
作成日: 2007年8月17日
作成者: 株式会社サムライズ 技術チーム
最終更新日: 2007年8月22日
2007年9月下旬に、いよいよ日本で Adobe ColdFusion 8(以下 CF8) がリリースされます。ここでは、CF8 が持つ多くの魅力の中から PDF との連携機能に関して紹介していきたいと思います。
ColdFusion(以下 CF) では PDF との連携機能として 『レポート機能』と『ドキュメント生成機能』が前バージョンの CF MX 7 から追加されました。
『レポート機能』では、「ColdFusion Report Builder」という付属の専用エディタを使い、表形式のレポートやグラフ付きの集計表などを PDF や FlashPaperベースで作成することができます。また、『ドキュメント生成機能』では、テキストや CFの実行結果(HTML)を PDF や FlashPaperベースとして閲覧・保管したり、単にWebサイトの内容をスクラップしてオフラインで見るだけでなく、PDFにパスワードをかけて閲覧者を制限することも可能です。
「ColdFusion Report Builder」 を用いれば、 データベースの値を元に上記のようなレポートを作ることができます。
これら機能を使えば、例えば各社員の給与明細をPDFで作成してメールで配信するなどの業務アプリケーションをCFの持つ機能で簡単に作ることができます。CF8でも、上記の機能の強化はもちろん他にも色々な PDF の連携機能が追加されました。続いて紹介します。
新機能についての詳細は CF8 に関するDatasheets and white papers ( http://www.adobe.com/products/coldfusion/whitepapers/)内、『ColdFusion feature comparison matrix』 を参考下さい。
CF8 で追加された 『PDFフォーム処理』は、PDFフォーム上に入力されたデータをCFで抽出する機能や、逆にCFを使ってPDFフォーム上に情報を入力してユーザーに配布するなどを可能にする機能です。
『PDFフォーム処理』を使用することで、これまでの PDFの使い方である文書の配布・閲覧・印刷といった目的に加え、PDFフォームを入力・出力インターフェースとして用いたアプリケーションをCF8を使って構築することできます。
例えば、PDFフォームを入力フォーマットとして用いた場合、ユーザーはadobe readerを使って PDFをブラウザ上で直接開いたり、または、ダウンロードやメール等で送信されたPDFファイルをデスクトップ上で開き、オンライン・オフライン問わず好きなタイミングで情報の入力が行えます。
入力データしたデータを、メール、または、インターネット経由で所定の場所に送信したり、あるいは PDFが持つ拡張機能を有効にして入力データをPDFに保存したものを CF8に送信するなど、複数の手段を用いることが可能です。
PDFフォームに入力したデータは複数の手段で CF8に送信できます。
CF8側では、上記のいずれかによって送信されたPDFフォームデータ、または、ファイルを CFの所定の機能を使用してデータの抽出、データベースへの保存などを行います。
PDFフォームからデータを抽出した例。PDFフォームから取得したデータは、CFでおなじみのForm変数で取得が可能です。メール等で送付されたXMLデータに対しては、ColdFusion の XML 機能を使ってデータを操作します。
また、送信された申請データを元に登録証書などのPDF資料を作成、ユーザーに送付することも可能ですので、入力データが送信されたタイミングで動的にPDFファイルの作成、ユーザーへの送付も可能となります。
このようにPDFと連携とデザインや操作性の向上に限らず、これまでと違った Webアプリの制限を越えた形でサービスを運用することが可能です。
PDF文書処理は、既存のPDFファイルに対して ColdFusionから様々な処理を行うことができます。複数のPDFを一つにまとめたり、特定のページを削除するなどのPDFに関する各種処理を行う cfpdf タグや関数などが追加され、 PDFで作成した各種文書を CF8で目的に合った修正や管理が可能です。それに加え、ウォーターマークの付加や所定のページをサムネイル化するなど、PDFの様々な制御をCF側で行うことが可能です。
PDFに対して watermark を付けた例。CF8のimage機能と組み合わせてPDFに特定の情報を記載する事も可能です。
その他、入力されたPDFフォームからフォーム機能を外す機能も用意され、申請書類のデータを固定してデータの変更を防ぐことができます。例えば、ユーザーから送信されたフォーム付きPDFファイルをユーザー控えとして返信やファイルサーバーに保管する場合などでこの機能を使用します。また、登録書や会員証をPDF ベースで作成する際も、PDFフォームで作成して CF8で動的にデータを埋め込んだり、担当者がAdobe Acrobat や Adobe Readerを使ってデータを注入したものをフォーム機能を外してユーザーに送信するなどにも適しています。
CF8から追加された非常にユニークな機能に印刷機能があります。CF8がWebアプリに限らず帳票サーバーとしても動作する事ができ、CF8のスケジュール・タスクと組み合わせることで日々の集計データをPDF化したものを夜間に印刷するなどが可能となります。
データベースから日次データを取得し、日次レポートのPDFを作成、また、所定のプリンタに印刷する例
PDFを所定のサーバーに印刷するためのタグやプリンタ情報を取得する関数などが追加されています。
今回は一般的な解説となりますが、次回以降は実際のコードサンプルなどを含めて紹介したいと思います。