PHPでPDFファイルを作成するには?
翻訳校正:村上雅章・野崎裕子
PHPで記述されたFPDFというフリーのクラスを用いて、PHPからPDFファイルの作成や操作を行う方法を、簡単なコード例を使って紹介する。
PHPには動的にPDFファイルを作成する機能が搭載されているため、さまざまな作業において重宝するはずだ。そしてFPDFは、PDFファイルの作成や操作を可能にする数多くの機能を持ったフリーのPHPクラスだ。
PDFlib
PHPのAPIには、PDFファイルを取り扱うための機能が数多く用意されており、それらはPDFlibというライブラリとともに使用することを念頭に置いて設計されている。このPDFlibは拡張可能となっているものの、商業利用の際には無償で利用することができない。また、PDFlib Liteという、個人利用の許されている無償版もあるものの、その機能には制限がある。つまりPDFlibライブラリのすべての機能を使用するには、高額なライセンス料を支払う必要があるのだ。
なぜFPDFを使用するのか?
PHPからPDFファイルを作成するもう1つの方法は、FPDFを使用するというものだ。FPDFはPDFファイルの作成や操作を可能にする数多くの機能を持ったフリーのPHPクラスである。ここで重要なのは、FPDFが「フリー」であるという点だ。つまり、このクラスのダウンロードと使用は無償(free)であり、あなたのニーズに合わせてカスタマイズすることも自由(free)に行えるのだ。さらに、フリーであることに加え、PDFlibよりも簡単に使用することができる。PDFlibはPHPパッケージのエクステンションとしてインストールする必要があるのに対して、FPDFはPHPスクリプト内でインクルードするだけで使用できるようになっているのだ。
PDFファイルの作成
まず始めに、FPDFクラスをFPDFのウェブサイトからダウンロードし、以下のようにしてそれをPHPスクリプト内でインクルードする。
require('fpdf.php');
では、FPDFを使って単純なPDFファイルを作成する方法を紹介していくことにしよう。
まず、以下のようにして新たなFPDFオブジェクトを生成する。
$pdf= new FPDF();
FPDFのコンストラクタは以下のパラメータを受け取ることができる。
- String orientation (PまたはL) -- ページの向き(ポートレートかランドスケープか)
- String unit (pt, mm, cm, inのいずれか) -- 長さの単位(ポイント、ミリメートル、センチメートル、インチのいずれか)
- Mixed format (A3, A4, A5, Letter, Legalのいずれか) -- ページのフォーマット(A3、A4、A5、レター、リーガルのいずれか)
次に、以下のようにドキュメントの属性を設定する。
$pdf->SetAuthor('Lana Kovacevic');
$pdf->SetTitle('FPDF tutorial');
今回の例では、ドキュメント全体で同じフォントを用いるため、ページの作成前に以下のようにしてフォントを設定する。
$pdf->SetFont('Helvetica','B',20);
$pdf->SetTextColor(50,60,100);
SetFont関数は3つのパラメータ、すなわちフォントファミリとスタイル、サイズを受け取る。ここでは20ポイントのHelveticaフォントをBold(太字)指定している。なお、これらの設定はドキュメントの表題に適用される。フォントは、通常のフォントファミリ中から指定することも、AddFont()関数を使って別途指定することもできる。
また、SetTextColor()によって、ドキュメント全体で使用するフォントの色を設定している。色はRGB値またはグレイスケールで表現することができる。なお、ここではRGB値を使用している。
- 今日のトップ記事
- 2日前
- 3日前
- 4日前
- 5日前
- ホワイトペーパー
- 話題のタグ
現場の知見から得られるノウハウを共有しましょう
新APIまもなく登場--Google Developer Day 2008の見所とは?
仮想化によるコスト削減を見える化:オンラインTCOカリキュレータ
Firefox 3が対応したdisplayプロパティの値(2)
Ruby・Python・JavaScript・PHPについてどう思いますか?:Tim Brayに聞いてみた
来日したゲイツ氏が経団連で行ったスピーチ全文
グリーンITと「幼年期の終わり」
Web開発者向けツール Opera Dragonflyのアルファ版が登場
あなたがプログラムを理解できない10の理由:第1回
Rubyでどう書く?:RubyでPDF履歴書を作成する
Neil YoungがJavaOneにやってきた
-Simplify IT- ITをシンプルに 連載第2回
オンラインマーケティングの最重要課題
内部統制対策を実現するIT運用管理ツール