PDFlibをPHPで動作させるため方法

PDFlib-5.xのインストール


PDFlibサイト
http://www.pdflib.com/products/pdflib/download/index.html
から、PDFlib-5.0.0-Linux.tar.gz と
http://www.pdflib.com/products/download-source.html
から、PDFlib-5.0.0-unix-src.tar.gzのリンクで
PDFlib-Lite-5.0.0-Unix-src.tar.gzを
Getしてくる。

現在(2003/05)ではphpは4.1.0-4.3.1がサポートされているので
phpも4.3.1をgetする

探した限りLiteしかみつからなかった。
Liteはphpモジュールはサポートされていないのでインストール後
PDFlib-5.0.0-Linux.tar.gzからphpのモジュールをコピーする。

はじめにzlibをインストールする。

(多分rpmで入っているので不要だと思う)
$ tar zxvf zlib-1.1.4.tar.gz
$ cd zlib-1.1.4
$ ./configure --shared
$ make
$ make test
$ make install

PDFlibのインストール


$ tar zxvf PDFlib-5.0.0-Linux.tar.gz
$ su
# cp PDFlib-5.0.0-Linux/bind/php/php-4.2.1/libpdf_php.so /usr/local/lib
# exit

$ tar zxvf PDFlib-Lite-5.0.0-Unix-src.tar.gz
$ cd PDFlib-Lite-5.0.0-Unix-src
$ ./configure --with-tifflib --with-zlib \
--with-pnglib --with-jpeglib

configが終了すると
最後にサマリーが出る。
_____________________________________________________________
For your convenience, here's a summary of configure's results:

Support for shared libraries:           yes
C++ language binding for PDFlib:        no
Java language binding for PDFlib:       no
Perl language binding for PDFlib:       yes
Python language binding for PDFlib:     yes
Tcl language binding for PDFlib:        yes
PHP language binding for PDFlib:        no, see bind/pdflib/php/readme.txt
PDF import library (PDI):               no
     Note: if you purchase the additional PDF import library (PDI)
     you can also manipulate existing PDF documents with PDFlib.
     The additional block feature can be used to personalize PDF.
     See http://www.pdflib.com for details.

Please observe the licensing terms for commercial PDFlib usage.
PDFlib license agreement and purchase order can be found in the doc directory.

$ make
$ su
# make install
# exit

PHPのインストール

$ tar zxvf php-4.3.1.tar.gz
$ cd php-4.3.1
$ ./configure --with-zlib-dir=/usr/local \ <-rpmでのインストールだと /usr
--with-jpeg-dir=/usr/lib \
--with-png-dir=/usr/lib \
--with-tiff-dir=/usr/lib \
--with-pdflib=/usr/local \
--with-apxs=/usr/local/apache1327/bin/apxs \
--with-pgsql --without-mysql

$ make
$ su
# make install

初めてのインストールのときは

# cp php.ini-recommended /usr/local/lib/php.ini


その後Apacheを再起動する。

以下は確認作業


<?php
phpinfo();
?>

をinfo.phpで保存し、アクセスすると

         pdf
---------------------------------------------------
|PDF Support            |enabled                  |
------------------------|--------------------------
|PDFlib GmbH Version    |5.0.0                    |
------------------------|--------------------------
|Revision               |$Revision: 1.112.2.2 $   |
---------------------------------------------------

という情報が入ったインフォメーションが出る。


$ touch test.pdf
$ chmod a+w test.pdf

以下のようなコードをpdfsamp.php
に入力するとサンプルが表示される。


<HTML>
<HEAD><TITLE>PDF Sample</TITLE></HEAD>
<BODY>
<?php
/*
このサンプルは pdf を動的に作成して、ファイルに保存する、というものです。
*/

 // test.pdf ファイルをオープン
 $fp = fopen("test.pdf", "w");

 $pdf = pdf_open($fp);

 // ファイル情報
 pdf_set_info_title($pdf, "Test for PDFlib 5.0");
 pdf_set_info_author($pdf, "JE2ISM");
 pdf_set_info_creator($pdf, "See Author");
 pdf_set_info_subject($pdf, "Test");

 pdf_begin_page($pdf, 72/25.4*210, 72/25.4*297);
 pdf_add_outline($pdf, "Page 1");

 // 四角の表示
 pdf_rect($pdf,55,650,255,150);
 pdf_stroke($pdf);

 // ストロークとフィルを指定
 pdf_set_text_rendering($pdf, 2);

 // フォントを指定して日本語の表示
 pdf_set_font($pdf, "HeiseiMin-W3", 32, "EUC-H");
 pdf_show_xy($pdf, "日本語 平成明朝のテスト。", 50,600);

 pdf_set_font($pdf, "HeiseiKakuGo-W5", 32, "EUC-H");
 pdf_show_xy($pdf, "日本語 平成角ゴシックのテスト", 50, 500);

 // 線を引く
 pdf_moveto($pdf, 50, 400);
 pdf_lineto($pdf, 500, 400);
 pdf_stroke($pdf);

 pdf_end_page($pdf);
 pdf_close($pdf);
 fclose($fp);
 echo "test.pdf が出力されました。";

?>
</BODY>
</HTML>

PDFLIBサンプル

休講印刷サンプル