サンプルプログラム

PHP4行で PDF作成できる ~ TCPDF サンプルプログラム

PHP4行で PDF出力できる ~ TCPDF サンプルプログラム

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/

COMMENT

メールアドレスが公開されることはありません。