1. はじめに
PDFlibは、Adobe PDF(Portable Document Format)形式ファイルをプログラムで生成するためのプログラムライブラリーです。文書を作るイメージで手順に従って関数を呼んでいけばPDF文書を生成するプログラムを容易に作成することができます。PDFlibはさまざまなOS上のさまざまな言語をサポートしているので、きっと日頃お使いになっている開発環境を使ってPDFを作成することができるでしょう。
プログラムからPDF文書を作成できると、たとえばオンラインショップで購入した商品の名称や価格を織り込んだ注文書を作成したり、人事データから個人台帳を一定の書式で出力するなどPDF文書として扱いたいさまざまな書類をダイナミックに生成することができます。
本稿ではできるだけサンプルを使って、PDFlibの概要をご紹介していきます。プログラム例はPHPを使って記述していますが、他の言語でも言語仕様による違いを除けば基本的な使い方は同じです。またあまり詳細には触れず、マニュアルでは把握しにくい基本的な事柄について説明するように心がけています。技術的な詳細については製品に添付されているマニュアルをご参照ください。(注)
プログラムからPDF文書を作成できると、たとえばオンラインショップで購入した商品の名称や価格を織り込んだ注文書を作成したり、人事データから個人台帳を一定の書式で出力するなどPDF文書として扱いたいさまざまな書類をダイナミックに生成することができます。
本稿ではできるだけサンプルを使って、PDFlibの概要をご紹介していきます。プログラム例はPHPを使って記述していますが、他の言語でも言語仕様による違いを除けば基本的な使い方は同じです。またあまり詳細には触れず、マニュアルでは把握しにくい基本的な事柄について説明するように心がけています。技術的な詳細については製品に添付されているマニュアルをご参照ください。(注)
2. 簡単なプログラム例
恒例に従い、PDFlibを使うハローワールドスクリプトから始めましょう。本スクリプトは製品パッケージに付属しているサンプルhello.phpを日本語フォントを出力するように修正したhello-j.phpです。hello-j.phpのソースコードは以下のようになります。
ハローワールドソースコード
|
| PHP5.1.2/PDFlib 7.0.0 |
スクリプトの解説
始める前に、CMap リソースをこちらよりダウンロードし、指定したフォルダに入れてください。
本スクリプトは「ハローワールド、(ようこそPDFlibへの世界へ) 」というテキストをPDF文書として出力するものです。
まず全体をざっと見ると本スクリプトが下記のように一連の手順に従っているのがわかります。
new PDFlib() でPDFオブジェクトを開き、次いでbegin_document()、begin_page_ext()でそれぞれドキュメント、ページを開きテキストなどのPDF要素を出力し、ページ、ドキュメント、PDFオブジェクトの順で閉じていくというのが共通の手順となります。物理的なドキュメントの作成手順と似ていますね。
本スクリプトの主たる処理はテキストの出力ですが、これはload_font()などのフォントの設定、次いでshow()などによる出力という手順を踏みます。テキストの出力については後で詳しく触れます。
begin_document()では、ドキュメントの開始を設定するとともに第1パラメータでPDF文書の出力先ファイル名を指定します。本例のようにファイル名を指定しないとPDF出力はPDFlib内部のバッファに蓄積され、後半の $buf = $p->get_buffer(); のようにget_buffer()によって変数に取り出すことができます。PHPなどを使ったウェブアプリケーションではこのようにファイルを作成しないでメモリー上でPDF出力を処理できると、パフォーマンス上、またウェブ管理やセキュリティ上からも有利といえます。
本スクリプトによるPDF出力例は、このように(PDFファイル)になります。www.pdflib.comというロゴが大きく出力されているのはPDFlib評価版で出力しているためです。正規にライセンスを購入し、ライセンスキーを設定するとロゴが出力されなくなります。
本スクリプトは「ハローワールド、(ようこそPDFlibへの世界へ) 」というテキストをPDF文書として出力するものです。
まず全体をざっと見ると本スクリプトが下記のように一連の手順に従っているのがわかります。
|
| PHP5.1.2/PDFlib 7.0.0 |
new PDFlib() でPDFオブジェクトを開き、次いでbegin_document()、begin_page_ext()でそれぞれドキュメント、ページを開きテキストなどのPDF要素を出力し、ページ、ドキュメント、PDFオブジェクトの順で閉じていくというのが共通の手順となります。物理的なドキュメントの作成手順と似ていますね。
本スクリプトの主たる処理はテキストの出力ですが、これはload_font()などのフォントの設定、次いでshow()などによる出力という手順を踏みます。テキストの出力については後で詳しく触れます。
begin_document()では、ドキュメントの開始を設定するとともに第1パラメータでPDF文書の出力先ファイル名を指定します。本例のようにファイル名を指定しないとPDF出力はPDFlib内部のバッファに蓄積され、後半の $buf = $p->get_buffer(); のようにget_buffer()によって変数に取り出すことができます。PHPなどを使ったウェブアプリケーションではこのようにファイルを作成しないでメモリー上でPDF出力を処理できると、パフォーマンス上、またウェブ管理やセキュリティ上からも有利といえます。
本スクリプトによるPDF出力例は、このように(PDFファイル)になります。www.pdflib.comというロゴが大きく出力されているのはPDFlib評価版で出力しているためです。正規にライセンスを購入し、ライセンスキーを設定するとロゴが出力されなくなります。
PDFlib6とPDFlib7との相違点
また、PDFlib7にリソースしたことにより、CMapリソースが新たに必要となります。こちらよりダウンロードし、指定したフォルダに入れてください。PDFlib7ではCMapリソースを指定することにより日本語の表示が可能となります。(フォント名も変更されています。)
|
|
|

■PDFlibの製品関連情報については、こちらの目次を参照してください。
■文中のマニュアルの参照は、PDFlib7の英語版チュートリアルマニュアルに基づいています。
■サンプルに関しましては、PDFlibクックブックも参考にして下さい。
■PDFlibをインストールすると各バインドのサブディレクトリーに代表的な機能の使い方を示すサンプルプログラムが配置されます。
■本ファイルはPDF1.6で出力されているので、Acrobat7以前のバージョンのAcrobatで表示しようとすると警告メッセージが表示されることがあります。


