[PHP-users 24550] Re: linuxでPDI(PDFlib)のエラー

榮水貴行 t-eimizu @ aim.ac
2005年 2月 16日 (水) 14:52:05 JST


お世話になります。榮水です。

結論から言うと、PDFlibのスコープでエラーになっています。

>$pdf = PDF_new();

ここで、objectスコープが開始されているのですが、

>$newpage = PDF_open_pdi_page($pdf,$template,1,""); ← エラー

この関数は、documentもしくはpageスコープでないと使用できません。

>(エラーメッセージ)
> Fatal error: pdf_open_pdi_page():[2100]
> PDF_open_pdi_page: Function must not be called in 'object' scope 

ですから、関数を「object」スコープで呼んではいけません、
というエラーになります。

なので、PDF_new()のあとで、
$doc = PDF_begin_document($p, '', '');
としてあげれば、documentスコープが開始して、正常に動くはずです。

もちろん最後には
PDF_close_pdi_page($p, $newpage);
PDF_close_pdi($p, $template);
PDF_end_document($p, '');
PDF_delete($p);
とやって、スコープを終了させてやらないといけません。

>他のサイト等で調べたのですが、自力で解決できない状況です。

まぁ、PDFlib本家とtuneBizのサイトをうろうろするのがいいと思います。
http://www.pdflib.com/jp/

あとは早川仁さんのHOWTOも役に立ちます。
http://hykw.tv/comp/pdflib/index.html

それからなんといっても日本語マニュアルの情報量が一番です。
http://www.pdflib.com/jp/products/pdflib/download/index.html

スコープの話はこのマニュアルの3章を読んでください。
おそらく、マニュアルをじっくり読まれればご理解いただけると思います。

以上、お役に立てれば幸いです。

*=================================*
株式会社エイム
榮水 貴行
Mail: t-eimizu @ aim.ac
*=================================*


PHP-users メーリングリストの案内