TCPDFとは?PHPでPDF出力する使い方を手順付きで解説


みなさんこんにちは。Wakka Inc.のベトナム拠点でテクニカルマネージャーを担当している鍋山です。
PHPでPDF出力を実装するなら、無料ライブラリ「TCPDF」が定番です。
本記事では、TCPDFのインストールから実装手順、日本語対応の注意点まで、コード例付きで分かりやすく解説します。
開発リソースは足りていますか?
ラボ型開発なら最適なプロジェクト体制で優秀な人材を低コストで確保できます。興味がある方は「【保存版】成長企業が導入するWakkaのラボ型開発」に詳しいサービス内容を掲載しているのでご覧ください。
お役立ち資料の無料DL

【資料DL】成長企業が導入するWakkaのラボ型開発
ラボ型開発や海外開発拠点の設立を検討されている方に向けて、『ラボ型開発の特徴』、『Wakka Inc.のサービスラインナップ』、『独自の海外子会社設立サービス』をご紹介しています。
こんな方におすすめ
・開発リソース不足に悩んでいる方
・ラボ型開発について検討をしたい方
・海外開発子会社のメリットについて知りたい方
WaGAZINE読者さま限定!
【保存版】成長企業が導入する
開発リソース不足に悩んでいる方や、
TCPDFの基本概要

『TCPDF』とは、HTMLでPDF出力ができるようにしてくれる無料のオープンソースソフトウェアのことです。
PHPのクラスライブラリとして利用されることもあります。
追加の外部ライブラリを必要とせず、TCPDFをダウンロードしてファイルをインクルードすれば使用できます。
「PHPでPDF出力するならTCPDF」といわれるほど、広く利用されている代表的なライブラリです。
2002年から開発されており、2026年4月現在の最新バージョンは6.10.1です。
TCPDFは認知度が高く、WebアプリケーションにおいてPDF出力の需要は比較的高いため、使い方を覚えておくと便利なライブラリといえます。
TCPDFの使用手順

TCPDFの使用手順は、下記のように大きく2つに分けて解説します。
・ダウンロード
・実装
興味のある方は、ぜひ参考にしてください。
TCPDFのダウンロード方法
TCPDFは、GitHubの以下のURLからダウンロードできます。
https://github.com/tecnickcom/tcpdf
また、yumコマンドを用いたインストールも可能です。
yum install php-tcpdf
yumでインストールすると/usr/share/php配下にダウンロードされるので、既存プロジェクトへ配置することを推奨します。
もし、/usr/share/php配下を確認しても見つからない場合、rpmコマンドで場所を確認してください。
rpm -gs php-tcpdf
TCPDFは、自身のプロジェクトの中に配置します。プロジェクトの中にlib等のディレクトリを作り、ファイルの中にコピーします。
また、プロジェクト配下に直接配置しても問題ありません。
今回のサンプルでは、下記のようにプロジェクト配下に配置しました。
project/tcpdf
TCPDFを実装しよう
TCPDF実装の基本的な流れは、tcpdf.phpをインクルードし、TCPDFをインスタンス化、そして、各種設定を行い、最後に出力する流れです。
それでは、具体的な実装手順について詳しく解説します。
1.tcpdfの読み込み
はじめに、tcpdf.phpを読み込みます。tcpdf.phpをインクルードする際は、正しいパスを指定してください。
今回のチュートリアルでは、同じ階層にtcpdf.phpがあるため、下記のようなパスになります。
require_once(‘tcpdf.php’);
2. TCPDFのインスタンス化
次は、TCPDFのインスタンス化です。
$pdf = new TCPDF($orientation,$unit,$format,$unicode,$encoding,$diskcache,$pdfa);
引数は全部で7つ指定できます。省略した場合は、それぞれの既定値が使われます。
第1引数は、用紙の向きを設定します。縦にする場合はP、横にするときはLを入力してください。
なお、空文字列を指定すると自動判定されます。既定値はPです。
第2引数では、測定単位を決めます。測定単位には、pt(ポイント)やmm、cm、in(インチ)の4種類から選択可能です。
ポイント(pt)は一般的な単位ではありますが、1ポイントあたり0.35mmに換算されます。
タイポグラフィでは一般的な単位であり、印刷術の基本です。基本的にPDFを出力する際は、mmを指定します。
よって、初期値もmmです。
第3引数では、用紙サイズを設定します。用紙サイズとは、A4やB5のような縦と横の幅が決められた用紙のことです。
型はstringで、初期値はA4です。
第4引数は、ユニコードかどうかを決める部分です。初期値はtrueとなっています。
第5引数は、文字セットエンコーディングです。HTMLのエンコーディング指定に使用されます。初期値は、UTF-8です。
第6引数は、通常は使用しないパラメータです。指定する必要がなく、初期値のfalseのままで良いです。
第7引数では、Aモードに設定するのかを決めます。基本的に初期値のfalseを設定しましょう。
サンプルでは、下記のように引数を設定しました。
$pdf = new TCPDF(‘P’, ‘mm’, ‘A4’,true, ‘UTF-8’,false,false);
3.新規ページを作成する
インスタンス化ができたら、次はaddPage関数を使って新しくページを追加します。
関数の引数は、用紙の向きと用紙サイズ、余白設定、tocpageの設定です。サンプルでは、下記のようにすべて初期値としました。
$pdf ->addPage();
4.フォントサイズを指定する
フォントサイズは、setFont関数で指定します。
指定できるフォントは、Helvetica-BoldやTimes-Roman、Times-Italicなどです。
ほかにも、setFont関数の第2引数でフォントスタイルの指定もできます。
$pdf ->setFont(‘kozgopromedium’, ‘B’,10);
5.PDF出力する内容を変数に代入する
次は、PDF出力する内容を変数に代入します。
HTML文章は、通常の文字列よりも長いので、ヒアドキュメントを使用するのがおすすめです。
$html = <<< EOF
HTML文章
EOF;
6.HTMLを書き込む
変数に代入したHTMLを出力します。
書き込みをする際は、writeHTML関数を使用してください。
引数は、書き込む内容が代入されている変数を指定します。サンプルの場合は、$htmlです。
$pdf ->writeHTML($html);
7.最後にアウトプットして完了
最後にアウトプットして完了です。アウトプットは、Output関数を使用します。
$pdf ->Output(引数);
Output関数の第1引数は、出力時のファイル名の指定です。
どのような名前で保存したいのかを決めて設定しましょう。
基本的には、ファイル名がかぶらないように日付などを使用するのが一般的です。
第2引数は、どのような出力にするのかを指定します。
I、D、F、Sの4種類から選択できます。
Iは、PDFをブラウザ上に直接表示する設定です。Dはブラウザでダウンロードさせたいときに設定します。
また、ローカルファイルとして保存する場合はFを利用します。
Sは文字列として出力する際に利用しますが、使用頻度は高くありません。
WaGAZINE読者さま限定!
【保存版】成長企業が導入する
開発リソース不足に悩んでいる方や、
TCPDFを使う際の注意点

TCPDFは基本的に簡単で、開発経験を持つエンジニアであれば、十分に使いこなせます。
しかし、使い方にはいくつかの注意点があります。
注意点を知らずに実装するとエラーに直面したり、意図した出力が得られない可能性があるため、ぜひチェックしてください。
注意点①kozgopromediumを指定する
1つ目の注意点は、setFont関数の第1引数でkozgopromediumを指定する点です。
TCPDFは日本語フォントの種類が少なく、デフォルトの状態のまま実行すると日本語が文字化けしてしまいます。
そのため、デフォルト設定から適切に設定する必要があります。
注意点②「¥」がバックスラッシュになる
2つ目の注意点は、半角の¥マークがバックスラッシュに変換されることです。
PDF出力は請求書や領収書など、金額を表記する機会が多いため、知らないとエラーにはまってしまう可能性があります。
半角の「¥」を使用する場合は、全角の「¥」マークを使うことで、バックスラッシュになってしまう問題を回避できます。
そのため、¥マークを使うときは、全角の「¥」を使用するようにしてください。
TCPDFを覚えてPHPを使用したPDF出力をマスターしよう
今回は、PHPでPDF出力ができるTCPDFの基本概要や使い方の手順を解説しました。
関連ドキュメントも比較的充実しているため、開発経験豊富なエンジニアであれば、使いこなすことは容易です。
ぜひ、TCPDFを活用してPDF出力機能を備えたWebアプリケーション開発に役立ててみてください。
一方で、実際の現場では「実装自体は難しくないが、対応するリソースが足りない」といった課題に直面するケースも少なくありません。
PDF出力のような機能追加に限らず、既存システムの改修や新規開発が重なり、社内エンジニアだけでは手が回らない状況に悩んでいる企業も多いのではないでしょうか。
こうした課題に対して、外部リソースの活用は有効な選択肢のひとつです。
なかでも、継続的に開発体制を確保できるラボ型開発は、単発の委託とは異なり、自社チームに近い形で柔軟に活用できる点が特徴です。
Wakka Inc.では、こうした課題を抱える企業に向けて『海外子会社化もできる、オフショア・ラボ開発サービス』を提供しています。
企画・開発・運用保守までトータル支援を行っていますので、リソースや開発ノウハウ不足に悩む方は、下記の問い合わせボタンからお気軽にお問い合わせください。
また、ラボ型開発について詳しく知りたい方は下記の記事をぜひご覧ください。
WaGAZINE読者さま限定!
【保存版】成長企業が導入する
開発リソース不足に悩んでいる方や、

日系オンラインリサーチ会社のCTOとしてベトナムチームを立ち上げ、Wakka Inc.のテクニカルマネージャーとして参画。現在はベトナム拠点で開発チームの標準化や社内のインフラ管理・ITプロジェクト統括をやっています。モットーは『みんなで頑張りましょう』











