PHPで簡単にPDF出力できるTCPDF

帳票作成

業務系のシステムで欠かせないのが帳票作成です。また近年であれば帳票作成はPDF出力化するのが一般的です。PDF形式が一般的になったことは開発者から見れば嬉しいことですが、一番厄介なのがPDF出力するためのツールやフレームワーク毎に作法が異なっており、その度にPDF出力の方法を学習しなければいけません。

TCPDF

そこで今回紹介したいのがHTML形式でPDF作成できるTCPDFです。 https://tcpdf.org/ PDF出力のための表現にHTMLを利用できるので、わざわざ新しいPDF出力の方法を学ばなくてもHTMLさえ知っていれば大丈夫です。このTCPDFは2002年から開発が続いており、今でも現役で活躍しています。またTCPDFのサイトには65個にもおよぶサンプルが揃っているので、使い方に悩んだとき必ず役に立つことでしょう。

TCPDFの配置

TCPDFはオープンソースソフトウェアでありGithubで公開されています。Githubからはzip形式でダウンロードすることができます。「Clone or download」ボタンをクリックしさらに「Download ZIP」を選択してください。 https://github.com/tecnickcom/tcpdf zipファイルはお好きなところに配置してください。私はプロジェクトフォルダに「lib」フォルダを作成し、そこに「TCPDF」を配置しています。下記、「lib / TCPDF」に配置したものとし説明を続けます。

使い方

今回は index.php を用意し、直接PDFファイルとして表示してみましょう。利用時にtcpdf.phpを読み込む必要があります。 そしてTCPDFクラスのインスタンスを生成します。今回は次のような引数を利用しインスタンスを生成しました。
  • 第1引数 … PDFの方向(L: 横, P: 縦)
  • 第2引数 … 単位(mm, pt, in など)
  • 第3引数 … 用紙サイズ
  • 第4引数 … unicodeであればtrue
  • 第5引数 … 文字コード
インスタンスに対して AddPage メソッドで新しいページを追加します。 インスタンスに対して SetFont メソッドでフォントを指定します。日本語を出力する場合、日本語フォントを指定しなければ文字化けします(??と表示されます)。
  • 第1引数 … フォント名
  • 第2引数 … フォントスタイル(空文字: 標準, B: ボールド, I: イタリック など)
  • 第3引数 … フォントサイズ
インスタンスに対して writeHTMLメソッドでhtmlで書かれた内容を書き込めます。htmlの内容にはstyleタグにcssも記述することができます。 インスタンスに対して Output メソッドでPDFファイルを出力します。
  • 第1引数 … ファイル名
  • 第2引数 … 出力方法(I: ブラウザに出力, D: ダウンロード など)

サンプル

次のようなindex.phpファイルを用意しました。簡単なユーザ一覧であり、No, 名前, 年齢, 住所を表示しています。またテーブルのスタイルをcssで記述しています。 これを出力すると、次のように表示されます。

まとめ

HTML形式でPDFファイルを作れるのは非常にありがたいです。学習コストが低く、比較的自由に表現できるかと思います。ぜひご利用ください。
» お仕事のご依頼はこちら