3.プログラム全般に関すること
ここでは個別の話に入る前にプログラムに共通する全般的な事項を説明します。
言語バインディング
PDFlibは主要な言語のほとんどで利用することができます。PDFlib自身はAnsi Cで開発されていますが、各言語で利用できるようAPIやライブラリー、リソースが言語バインディングとして整備されています。これにより原則としてPDFlibの全ての機能をどのサポート言語からも利用することが可能となります。
言語バインディングは、どの言語でもPDFlibの各関数をほとんど同じ使い勝手で利用できるように工夫されていますが、一部言語に依存する相違、たとえばCの文字列パラメータでは文字列の長さを指定する必要があるなどの違いが残るので注意が必要です。各言語バインディングの詳細はマニュアル「2章 PDFlib Language Bindings(PDFlibの言語バインディング)」に記述されています。
言語バインディングは、どの言語でもPDFlibの各関数をほとんど同じ使い勝手で利用できるように工夫されていますが、一部言語に依存する相違、たとえばCの文字列パラメータでは文字列の長さを指定する必要があるなどの違いが残るので注意が必要です。各言語バインディングの詳細はマニュアル「2章 PDFlib Language Bindings(PDFlibの言語バインディング)」に記述されています。
スコープ
PDFlibでは、関数の呼出し手順の妥当性を確保するために関数のスコープ(有効範囲)を規定しています。スコープは下図のように生成するPDFオブジェクトの構造に従って定義されています。各関数毎に使用できるスコープが規定されており、スコープの範囲外で関数を使用するとPDFlibの例外(Exception)エラーが発生するようになっています。各関数のスコープは「API-referenceマニュアル」の、各関数の説明のスコープの項に、またスコープの定義は「1.3 Function Scopes」に記載されています。

図 スコープの関係
パラメータ
PDFlibのさまざまな動作を制御するためのグローバルパラメータが定義されています。文字型パラメータはset_parameter()、get_parameter()、数値型パラメータは、set_value()、get_value()で、設定及び問合せすることができます。たとえば、
|
では、ファイルを検索するときのパスを追加します。ここで$pはPDFオブジェクト、"SearchPath"はパラメータを指定するためのキー、$seachpathは検索させたいパスを含む変数です。パラメータの使用方法は「API-referenceマニュアル」の各関数の説明に関連して記載されています。
例外処理
PDFlibは独自の例外処理機能を持っています。深刻でない例外処理(Warning)についてはグローバルパラメータwariningなどの設定により例外の発生の可否を設定することができます。エラーメッセージ、エラーコード、例外処理を起こした関数名を返す例外処理関数が用意されています。ハローワールドのサンプルでも次のようにbegin_document()が失敗したときにエラーメッセージを出力するために例外処理関数が使われています。
|
例外処理についてはマニュアルの「3.1.1 Exception Handling」及び各言語バインディングの説明に記述されています。
オプションリスト
関数のパラメータの数を抑えながらさまざまな処理の指定を可能とするために、パラメータのひとつとしてオプションリストを指定することができます。オプションリストは、文字列のパラメータで、単純にはname=valueなどの形でさまざまな値を指定できるほか、複数の値を持つリスト値などをひとつのパラメータに対し設定できます。
|
上記は画像を配置する関数ですが、最後のパラメータはオプションリスト形式となっており、「(1)10分の1に縮小し、(2)左を上として配置すること」を指定しています。オプションリストについては「API-referenceマニュアル」で各関数ごとに詳しく説明されています。
ページと座標系
PDFlibの座標系はPDFの既定の座標系に従っています。PDFの既定の座標系はページの左下隅が原点となり、最初の座標が右方向に、2番目の座標が上方向に増えていきます。座標の単位はポイントです。ポイントとmmの関係は以下のようになります。
1ポイント = 1/72 インチ = 25.4/72 mm = 0.3528 mm
座標単位をポイントからセンチメートルに変更したい時は、72/2.54 = 28.3456 から
1ポイント = 1/72 インチ = 25.4/72 mm = 0.3528 mm
座標単位をポイントからセンチメートルに変更したい時は、72/2.54 = 28.3456 から
|
| PHP5.1.2/PDFlib 7.0.0 |
と座標系を拡大します。座標変換関数やユーザ座標により用途に合わせた座標系を設定することができます。ページと座標系についてはマニュアルの「3.2 Page Descriptions」で詳しく説明されています。
|
|
|



