PHPを利用して、PDF生成するプログラムです。今回は、フリーのPHPライブラリ「TCPDF」を利用します。
機能概要
準備
このプログラムを実装するためには、GitHubなどでファイルをダウンロードする必要があります。
「TCPDF」のGitHubページはこちら
ダウンロードしたZIPファイルを解凍してから、フォルダ名「tcpdf」に変更し、任意の場所にアップロードします。
プログラミングコード
「pdf_output.php」PDF生成ページファイル
<?php ~ ?>以外の改行や文字は必ず削除しましょう。エラーになります。
- 4行目:PHPライブラリのフォルダパスを指定します。今回は、同一フォルダ内になる設定です。
- 9・10行目:ヘッダー/フッターを表示しないように設定。Trueに設定すると画面上にラインが表示されてしまいます。
- 13行目:フォントのデフォルト設定を行います。
- 18行目:ページを追加します。ページ生成の最初に記述すること。
- 21行目~38行目:「ヒアドキュメント(<<< EOF)」と呼ばれる方法です。何行にも渡ってテキストを記載する場合に利用します。21行目と38行目、EOFは対となります。(ENDやEODなどで表す場合もあります。)
- 41行目:HTMLで記述した文書をPDFに変換します。
- 46行目:PDFとして表示/ダウンロードできるようになります。
output()の1つ目の引数「ファイル名」、2つ目の引数「空白の場合は、表示のみ。Dの場合は、ダウンロード」
<?php
include "./tcpdf/tcpdf.php";
$tcpdf = new TCPDF();
//ヘッダー/フッターを表示しない
$tcpdf->setPrintHeader(false);
$tcpdf->setPrintFooter(false);
//フォント設定(デフォルト値)
$tcpdf->SetFont("kozgopromedium", "", 10);
//-----------------------------//
//ページを追加
$tcpdf->AddPage();
//文書生成(HTML)
$html = <<< EOF
<style>
h1 {
font-size: 24px;
color: #ff00ff;
text-align: center;
}
p {
font-size: 12px;
color: #000000;
text-align: center;
}
</style>
<h1>ここにタイトルが入ります</h1>
<p>
PDF出力が簡単にできます。HTMLのスタイル(CSS/STYLE)も使用することができます。
</p>
EOF;
//HTMLをPDFに変換
$tcpdf->writeHTML($html);
//-----------------------------//
//PDFで出力(2つ目の引数「D」は、ダウンロードさせます)
$tcpdf->Output('pdf_output.pdf', 'D');
?>
下記は、複数ページにまたがる場合の記述の仕方となります。
<?php
include "./tcpdf/tcpdf.php";
$tcpdf = new TCPDF();
//ヘッダー/フッターを表示しない
$tcpdf->setPrintHeader(false);
$tcpdf->setPrintFooter(false);
//フォント設定(デフォルト値)
$tcpdf->SetFont("kozgopromedium", "", 10);
//--1ページ目---------------------//
//ページを追加
$tcpdf->AddPage();
//文書生成(HTML)
$html = <<< EOF
<style>
h1 {
font-size: 24px;
color: #ff00ff;
text-align: center;
}
p {
font-size: 12px;
color: #000000;
text-align: center;
}
</style>
<h1>1ページ目:ここにタイトルが入ります</h1>
<p>
PDF出力が簡単にできます。HTMLのスタイル(CSS/STYLE)も使用することができます。
</p>
EOF;
//HTMLをPDFに変換
$tcpdf->writeHTML($html);
//--2ページ目---------------------//
//ページを追加
$tcpdf->AddPage();
//文書生成(HTML)
$html = <<< EOF
<style>
h1 {
font-size: 24px;
color: #ff00ff;
text-align: center;
}
p {
font-size: 12px;
color: #000000;
text-align: center;
}
</style>
<h1>2ページ目:ここにタイトルが入ります</h1>
<p>
PDF出力が簡単にできます。HTMLのスタイル(CSS/STYLE)も使用することができます。
</p>
EOF;
//HTMLをPDFに変換
$tcpdf->writeHTML($html);
//--3ページ目---------------------//
//ページを追加
$tcpdf->AddPage();
//文書生成(HTML)
$html = <<< EOF
<style>
h1 {
font-size: 24px;
color: #ff00ff;
text-align: center;
}
p {
font-size: 12px;
color: #000000;
text-align: center;
}
</style>
<h1>3ページ目:ここにタイトルが入ります</h1>
<p>
PDF出力が簡単にできます。画像も使用することができます。<br>
<img src="images/wf-hp_design.jpeg">
</p>
EOF;
//HTMLをPDFに変換
$tcpdf->writeHTML($html);
//-----------------------------//
//PDFで出力(2つ目の引数「D」は、ダウンロードさせます)
$tcpdf->Output('pdf_output.pdf', 'D');
?>
演習問題
- 上記のコードを使用して、ファイル作成し、動作するようにしてみよう。
- 前単元で学習した、ユーザー管理で表示されているユーザー一覧をPDFで表示できるようにしてみよう。