PHP の TCPDF ライブラリ を使用すると、簡単に PDF ファイルを作成・表示させることができます(業務用の請求書なども作成することが可能です)。
この最もシンプルな PHP サンプルプログラムをご紹介いたします。
※参考サイトは最下部にまとめております。
目次
TCPDF サンプルプログラム
TCPDF を使用するために TCPDF ライブラリをサーバーにアップロードする必要があります(ダウンロード先は [参考サイト] をご参照ください)。
PDF作成に必要なコード PHP4行
仮に TCPDF ライブラリが “lib/tcpdf/” に配置してあるとすると、PDF ファイルを作成・表示するのに 最低限必要な PHP のコードは4行のみで、サンプルプログラムはこんな感じになります…
<?php
//TCPDF ライブラリを読む込む
require_once('lib/tcpdf/tcpdf.php');
//TCPDF オブジェクト初期化
$pdf = new TCPDF("L", "mm", "A4", true, "UTF-8");
//ページ追加
$pdf->AddPage("P");//P:Portrait(縦長) L:Landscape(横長)
//ブラウザ出力
$pdf->Output("sample-tcpdf-1.pdf", "I");
?>
実際に上記のプログラムを表示させたものが こちら になります。
横線が一本描画された PDF ファイルが表示されると思います。
作成された PDF の横線を消すには?
上記で表示される “横線” は「ページ・ヘッダー」と呼ばれるもので…これを消すには(ほとんどの場合不要ですので)以下のコードを TCPDF オブジェクト初期化 直後に記述します…
$pdf->setPrintHeader(FALSE);
$pdf->setPrintFooter(FALSE);
現在時刻を出力してみる
上記のサンプルでは、この PDF が “今” PHP によって作成されたものかどうか…わかりません、、
そこで試しに現在時刻を出力してみます。ページ追加の次の行に Write メソッドを使って現在時刻を出力するコードを挿入すると、こんな感じになります…
<?php
//TCPDF ライブラリを読む込む
require_once('lib/tcpdf/tcpdf.php');
//TCPDF オブジェクト初期化
$pdf = new TCPDF("L", "mm", "A4", true, "UTF-8");
$pdf->setPrintHeader(FALSE);
$pdf->setPrintFooter(FALSE);
//ページ追加
$pdf->AddPage("P");//P:Portrait(縦長) L:Landscape(横長)
//現在時刻の出力
$pdf->Write(4, date("Y年n月j日 H:i"));
//ブラウザ出力
$pdf->Output("sample-tcpdf-2.pdf", "I");
?>
実際に上記のプログラムを表示させると こんな感じ になります。
文字化けしてますね、、
日本語フォントを読み込む
文字化けを解決するには、日本語フォントを追加する必要があります。TCPDF オブジェクトを初期化したあとに 以下のコードを書いて フォントを追加しておきます(念の為3種類ほど)。
//フォント追加
$GOTHIC = $pdf->addTTFfont('lib/tcpdf/fonts/ipag.ttf');
$MARUGOTHIC = $pdf->addTTFfont('lib/tcpdf/fonts/rounded-mplus-2m-regular.ttf');
$MINCHO = $pdf->addTTFfont('lib/tcpdf/fonts/ipam.ttf');
また、ページ追加したあと 現在時刻を出力する前に 追加したフォントを指定するために以下のコードを追加します…
//フォント設定
$pdf->SetFont($GOTHIC, "", 9);
最後に、ページのタイトルが表示されるようにします。
$pdf->SetTitle("タイトル");
ここまでのコードをまとめると こんな感じになります…
<?php
//TCPDF ライブラリを読む込む
require_once('lib/tcpdf/tcpdf.php');
//TCPDF オブジェクト初期化
$pdf = new TCPDF("L", "mm", "A4", true, "UTF-8");
$pdf->setPrintHeader(FALSE);
$pdf->setPrintFooter(FALSE);
$pdf->SetTitle("タイトル");
//フォント定義
$GOTHIC = $pdf->addTTFfont('lib/tcpdf/fonts/ipag.ttf');
$MARUGOTHIC = $pdf->addTTFfont('lib/tcpdf/fonts/rounded-mplus-2m-regular.ttf');
$MINCHO = $pdf->addTTFfont('lib/tcpdf/fonts/ipam.ttf');
//ページ追加
$pdf->AddPage("P");//P:Portrait(縦長) L:Landscape(横長)
//フォント設定
$pdf->SetFont($GOTHIC, "", 9);
//現在時刻の出力
$pdf->Write(4, date("Y年n月j日 H:i"));
//ブラウザ出力
$pdf->Output("sample-tcpdf-3.pdf", "I");
?>
実際に表示させてみると こんな感じ です。
「現在時刻の出力」箇所を、請求書を出力するなどのコードに書き換えていくと…さまざまな PDF ファイルを開発していくことが可能です!
参考サイト
TCPDF ダウンロード
https://sourceforge.net/projects/tcpdf/files/
TCPDF マニュアル(勝手訳)
http://tcpdf.penlabo.net/