機能概要

PHPを利用して、PDF生成するプログラムです。今回は、フリーのPHPライブラリ「TCPDF」を利用します。

TCPDFについて

準備

このプログラムを実装するためには、GitHubなどでファイルをダウンロードする必要があります。

「TCPDF」のGitHubページはこちら

 

ダウンロードしたZIPファイルを解凍してから、フォルダ名「tcpdf」に変更し、任意の場所にアップロードします。

プログラミングコード

「pdf_output.php」PDF生成ページファイル

 

<?php ~ ?>以外の改行や文字は必ず削除しましょう。エラーになります。

  • 行目: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');
?>

演習問題

  1. 上記のコードを使用して、ファイル作成し、動作するようにしてみよう。
  2. 前単元で学習した、ユーザー管理で表示されているユーザー一覧をPDFで表示できるようにしてみよう。