PHPでPDFファイルを作成するには?
翻訳校正:村上雅章・野崎裕子
PHPで記述されたFPDFというフリーのクラスを用いて、PHPからPDFファイルの作成や操作を行う方法を、簡単なコード例を使って紹介する。
ここまでの指定が終わったのであれば、PDFドキュメントのページ設定を以下のように行う。
$pdf->AddPage('P');
$pdf->SetDisplayMode(real,'default');
AddPage()のパラメータに「P」または「L」を引き渡すことで、ページの向きを指定することができる。ここでは「P」を引き渡すことでポートレートを指定している。SetDisplayMode関数は、ページの表示方法を指定するためのものである。そのパラメータは、表示倍率とレイアウトだ。ここでは表示倍率を100パーセント、レイアウトをビューアのデフォルトレイアウトと指定している。
ページの設定ができたところで、見映えを良くするために画像を挿入し、そこにリンクを設定することにしよう。ここではファイル名と大きさ、URLをパラメータとしてImage関数を呼び出すことで、FPDFのロゴを表示している。
$pdf->Image('logo.png',10,20,33,0,' ','http://www.fpdf.org/');
また以下のように記述することで、リンクを挿入することができる。
$pdf->Link(10, 20, 33,33, 'http://www.fpdf.org/');
では、ドキュメントの表題を作成し、それを枠で囲んでみることにしよう。
$pdf->SetXY(50,20); $pdf->SetDrawColor(50,60,100); $pdf->Cell(100,10,'FPDF Tutorial',1,0,'C',0);
ここではSetXY関数を用いて、表題の表示位置をX座標とY座標で指定している。また、SetDrawColor関数にRGB値を引き渡すことで枠の色を指定している。その後、Cell関数を呼び出し、表題のテキストを引き渡し、矩形の枠を描画している。この関数にはwidth(幅)とheight(高さ)、text(テキスト)、border(枠の有無)、ln(関数呼び出し後の現在位置)、align(揃え)、fill(塗りつぶしの有無)といったパラメータを引き渡している。borderに指定できる値は0(枠なし)か1(枠あり)のいずれかである。この例では、lnにデフォルト値である0を、alignには枠の中のテキストを中央揃えするための「C」を、そしてfillには0を指定している。fillに1を指定すると、矩形内が塗りつぶされることになる。ここでは0を指定しているため、矩形内は透明になる。
では、ちょっとしたメッセージとなるテキストをPDFに書き込んでみよう。
$pdf->SetXY(10,50); $pdf->SetFontSize(10); $pdf->Write(5,'Congratulations! You have generated a PDF. ');
ここでもまた、テキストの位置をX座標とY座標で指定しているが、今回はSetFontSize関数を用いてフォントのサイズを小さくしている。実際のテキストはWrite関数によってPDFへと出力される。第1パラメータの5は、行の高さを指定するものだ。ただしこの指定は、テキストが複数行で構成されている場合にのみ意味を持つことになる。
最後に、Output関数を使用し、以下のように出力先を指定する。
$pdf->Output('example1.pdf','I');
ここでは、Output関数にフィル名と出力先(この例では「I」)を引き渡している。第2パラメータに「I」を指定すると、出力先がブラウザになる。
すべてをまとめると以下のようになる。
<?php
require('fpdf.php');
//FPDFオブジェクトを生成する
$pdf=new FPDF();
//ドキュメントの属性を指定する
$pdf->SetAuthor('Lana Kovacevic');
$pdf->SetTitle('FPDF tutorial');
//ドキュメント全体のフォントを指定する
$pdf->SetFont('Helvetica','B',20);
$pdf->SetTextColor(50,60,100);
//ページの設定を行う
$pdf->AddPage('P');
$pdf->SetDisplayMode(real,'default');
//画像を挿入し、リンクを設定する
$pdf->Image('logo.png',10,20,33,0,' ','http://www.fpdf.org/');
//枠で囲まれた表題を表示する
$pdf->SetXY(50,20);
$pdf->SetDrawColor(50,60,100);
$pdf->Cell(100,10,'FPDF Tutorial',1,0,'C',0);
//本文の位置をX座標とY座標によって指定し、フォントサイズを小さくした後、内容を出力する
$pdf->SetXY(10,50);
$pdf->SetFontSize(10);
$pdf->Write(5,'Congratulations! You have generated a PDF.');
//ドキュメントを出力する
$pdf->Output('example1.pdf','I');
?>
- 今日のトップ記事
- 昨日
- 3日前
- 4日前
- 5日前
- 7日前
- ホワイトペーパー
- 話題のタグ
仮想化Java環境のスループットを2倍に--BEA LiquidVMの適応型メモリ管理
Firefox 3が対応したdisplayプロパティの値(3) - inline-table
MSもアドビも学生さんに開発ソフトを無償提供
「Economist」のトップページがリニューアル
あなたがプログラムを理解できない10の理由:第2回
新APIまもなく登場--Google Developer Day 2008の見所とは?
-Simplify IT- ITをシンプルに 連載第2回
内部統制対策を実現するIT運用管理ツール
リスティング広告における競争優位性の維持