Open Source Web Development Tutorials - Dev Shed
PHPのPDF作成ライブラリ
(2009/01/30公開)
PDFよ、こんにちは
ほかのプログラム言語と同様、PHP PDFライブラリの実験を始めるには、例によって「hello world」のサンプルを作るのが最適だ。
まずは、「helloworld.pdf」という名の、新しいPDF文書を作成する。
$pdf = pdf_new();
pdf_open_file($pdf、 'helloworld.pdf');
次に、新しいページを作る。
pdf_begin_page($pdf、 612、 792); // Letter size
この612と792という奇妙な数字は何だろうかと思われるだろうが、これによってレターサイズの用紙のサイズを指定しているのだ。レターサイズの用紙は、横8.5インチ、縦11インチとなっている。8.5×72=612で、同じく11×72=792となる。2つの数字はこのように、72をかけることによって算出する。
A4サイズのPDFファイルを作る場合は:
pdf_begin_page($pdf、 595、 842); // A4 size
A4サイズの用紙は210mm×297mm、つまり8.27インチ×11.69インチだ。これらの数字に72をかけると、595×842となる。
新しいページを作った後は、その上に文字を記入していく前に、フォントを指定する必要がある。
pdf_set_parameter($pdf、 'FontOutline'、
'Arial=c:windowsfontsarial.ttf');
$font = pdf_findfont($pdf、 "Arial"、 "host"、 1);
pdf_setfont($pdf、 $font、 48);
これで、「hello world」という文字をページ上に記入することができる。
pdf_show_xy($pdf、 "hello world、 PDF!"、 50、 680);
そして最後にPDF文書を以下のように終了する。
pdf_end_page($pdf);
pdf_close($pdf);
pdf_delete($pdf);
プログラム全体は下のようになる。コピーして、「helloworld_pdf.php」という名前で保存しよう。
<?php
# helloworld_pdf
// create a new pdf document
$pdf = pdf_new();
pdf_open_file($pdf、 'helloworld.pdf');
// start a new page (Letter size)
pdf_begin_page($pdf、 612、 792); // Letter size
// setup font and print hello world
pdf_set_parameter($pdf、 'FontOutline'、
'Arial=c:windowsfontsarial.ttf');
$font = pdf_findfont($pdf、 "Arial"、 "host"、 1);
pdf_setfont($pdf、 $font、 48);
pdf_show_xy($pdf、 "hello world、 PDF!"、 50、 680);
// done
pdf_end_page($pdf);
pdf_close($pdf);
pdf_delete($pdf);
echo "helloworld.pdf has been generatedn";
?>
このプログラムを走らせるには、コマンドプロンプトウィンドウを開き、CDコマンドでスクリプトを保存した場所に切り替える。例えば、c:phpにPHPをインストールし、「helloworld_pdf.php」という名前でスクリプトを保存した場合は、次のようにコマンドプロンプトで入力する。
c:phpphp helloworld_pdf.php
こうすると、「helloworld.pdf」という新たなファイルが、スクリプトを実行したフォルダの中に作られる。
そのPDFファイルをダブルクリックすると、次のようなPDF文書が表示される。
フォント情報の指定
この例で一番重要なのは下の1行だ。
pdf_set_parameter($pdf、 'FontOutline'、 'Arial=c:windowsfontsarial.ttf');
これはフォント情報を指定する「かなめ」の行ということができる。また、下にあるような多くの人が目にしたエラーもこの行によって防ぐごとができる。
"PHP Fatal error:” Uncaught exception 'PDFlibException' with message 'Metrics data for font 'Arial' not found' "
システム上にある、いかなるWindowsのTrueTypeフォントでも選択することができる。例えば、Times New Romanの太字イタリック文字を使う場合は、コードを次のものに入れ替える。
pdf_set_parameter($pdf、 'FontOutline'、 ' Times New Roman Bold Italic =c:windowsfontsTIMESI.TTF');
$font = pdf_findfont($pdf、 "Times New Roman Bold Italic"、 "host"、 1);
実行すると、次のようなPDF文書になる。
Copyright © 2008 Ziff Davis Enterprise, Inc.
Originally appearing in the U.S. Edition of Dev Shed. All Rights Reserved.










