FPDFでPDFファイルを作成

FPDFでPDFファイルを作成

PHPFPDFでPDFファイルを作成

PHP のサイトで PDF ファイルを作成したいという要望があったのでちょいと調査してみました。主流かどうかわかりませんが、FPDF というライブラリがあったのでこれを調べてみることに。
(最新版の日付が古いので枯れた技術?)

FPDF

最新版の fpdf1.53 をダウンロードして解凍したら、fpdf.php と font フォルダを自分のサイトで使用します。font は FPDF_FONTPATH の定数でフォントの場所を指定します。fpdf.php は require するだけです。

(例)
define('FPDF_FONTPATH','/home/www/font/');
require('fpdf.php');

しかし、このライブラリのままだと日本語が使えなので、MBFPDF のパッチをあてる必要があるとのこと。
(別途、japanese.zip を使う方法もあります)

MBFPDF

mbfpdf10b.zip を解凍すると、font フォルダと PHP ファイル、テキストファイルが出来上がるので、FPDF と同じ場所に font フォルダと PHP ファイルを配備します。
(font フォルダは上書きでOK)

配備する PHP ファイルは下記の 3 つです。
excn.php
exja.php
mbfpdf.php

使用方法は FPDF と同じで、font の場所を定数で指定し、mbfpdf.php を require するだけです。簡単な例を書いておきますが、実際には PDF 作成用の汎用的な Class(クラス)を作っておくと便利です。

下記は名前と住所を持った連想配列のデータを一覧表示する例です。
(文字エンコードは SJIS)

詳しい使い方は日本語ドキュメントを読んで下さい。

(例)
define('FPDF_FONTPATH','/home/www/font/');
require('mbfpdf.php');

$pdf = new MBFPDF('L','mm','A4');
$pdf->AddPage();
$pdf->AddMBFont(GOTHIC ,'SJIS');
$pdf->SetFont(GOTHIC, 'B', 16);

foreach($list as $l) {
    $pdf->Cell(40, 10, mb_convert_encoding($l["name"], "SJIS"), 1);
    $pdf->Cell(40, 10, mb_convert_encoding($l["address"], "SJIS"), 1);
    $pdf->Ln();
}
$pdf->Output('example.pdf', 'I');
[参考]
FPDF日本語の利用

[japanese.zipの参考]
phpbook(FPDFのインストールと環境設定)

最終更新日:

関連記事

人気記事

新着情報