スライドショー

サンプルコードでわかる!PHPでpdfを出力する方法

こんにちは!独学プログラマー&ライターのつぶらやです。

PHPを使用して開発していると

PHPでpdfを出力したい
ブラウザの表示をそのままpdfにしたい

などという時があると思います。

しかし、PHPはひと工夫しないとpdfに変換することは出来ません。

今回はPHPでpdfを作成するための方法を以下の流れでお話します。

pdfライブラリ(TCPDF)の使い方
pdfの出力方法
pdfのダウンロード

それでは早速解説していきます。

pdfを使用するためのライブラリ

PHPでpdf出力をするためには色々なライブラリが存在しますが、今回はインストール不要TCPDFを使用します。

TCPDFについて

以前はFPDFというライブラリも使用されていたようですが、2018年9月現在確認したところ最新は2015年と古いです。

開発が長い間止まっているライブラリはセキュリティなどの観点から使用しないほうがよいです。

TCPDFを使用する準備

①以下のソースが公開されているGitHubにアクセス

https://github.com/tecnickcom/tcpdf

②以下の図のようにClone of download をクリック→Download ZIPをクリック


③ダウンロードしたZIPファイルを解凍する

④解凍したファイルの名前を「tcpdf」に名前を変更

⑤phpのinclude_pathに配置する

以上で準備完了です。

インストールの必要がないというのは準備が楽ですね。

pdfを出力してみよう

それでは、前項目で設定したTCPDFを使用してpdfをブラウザに出力してみましょう。

以下の内容のtcpdf_test.phpを作成します。

<?php
include "./tcpdf/tcpdf.php"; // include_path配下に設置したtcpdf.phpを読み込む

$tcpdf = new TCPDF();
$tcpdf->AddPage(); // 新しいpdfページを追加

$tcpdf->SetFont("kozgopromedium", "", 10); // デフォルトで用意されている日本語フォント

$html = <<< EOF
<style>
h1 {
    font-size: 24px; // 文字の大きさ
    color: #ff00ff; // 文字の色
    text-align: center; // テキストを真ん中に寄せる
}
p {
    font-size: 12px; // 文字の大きさ
    color: #000000; // 文字の色
    text-align: left; // テキストを左に寄せる
}
</style>
<h1>侍エンジニア塾</h1>
<p>
今日は侍エンジニア塾についてお話させていただきます。
</p>
EOF;

$tcpdf->writeHTML($html); // 表示htmlを設定
$tcpdf->Output('samurai.pdf', 'I'); // pdf表示設定
?>

ブラウザの表示結果

注意すべき点は日本語の出力についてです。

デフォルトで用意されている日本語フォントをサンプルのように読み込めば基本的に大丈夫です。

ただ、文字化けする報告などがネットに上がっています。

その場合は作成したtcpdf_test.phpの文字コードが何になっているか確認しましょう。

utf-8でないと文字化けしたり、日本語が全く出力されない場合もあります。

私が確認したとき、うっかりtcpdf_test.phpをsjisで保存して表示されませんでした。

文字コードはとても重要です。

pdfをダウンロードしてみよう

先程はブラウザに表示させました。

最後にアクセスした際にすぐにダウンロードをさせたい場合の方法を書きたいと思います。

全項目で作成したtcpdf_test.phpを使用します。

$tcpdf->Outputの第二引数を変更してください。

tcpdf_test.php

<?php
include "./tcpdf/tcpdf.php";

$tcpdf = new TCPDF();
$tcpdf->AddPage();

$tcpdf->SetFont("kozgopromedium", "", 10);

$html = <<< EOF
<style>
h1 {
    font-size: 24px;
    color: #ff00ff;
    text-align: center;
}
p {
    font-size: 12px;
    color: #000000;
    text-align: left;
}
</style>
<h1>侍エンジニア塾</h1>
<p>
今日は侍エンジニア塾についてお話させていただきます。
</p>
EOF;

$tcpdf->writeHTML($html);
$tcpdf->Output('samurai.pdf', 'D'); // 第二引数をDに変更する
?>

結果

samurai.pdfというファイルがダウンロードされました。

※画像のブラウザはchromeを使用しています。

$tcpdf->Output('samurai.pdf', 'D');

第一引数に設定した名前でダウンロードされます。

まとめ

本日はPHPでpdfを使用するシンプルな方法を解説しました。

phpだけでは出来ないことも、ライブラリを使用すれば解決する事も多いです。

少しずつ覚えていければいいですね。

それでは、また。

LINEで送る
Pocket

ITエンジニアへ転職したい方におすすめ

自分を評価してくれる企業に転職して年収を上げたい! 自分のスキルにあった独自案件を知りたい!
エンジニアは今もっとも注目されている職業の1つ。エンジニアになって年収を増やしたい方や、あなたのスキルに見合った企業へ転職したいエンジニアの方も多いですよね。

しかし、大手の転職媒体は扱う求人数が多くても、誰もが登録しているので競争率もかなり高くなっています。そのため、あなたの条件に見合った企業を見つけても転職するためには、相応の努力とスキルが必要となります。

こういった媒体では、未経験からエンジニアを目指す方やエンジニア歴2〜3年で転職を考えている方にとって、最適な転職環境とはいえません。

そこでオススメしたいのが、未経験者や若手エンジニア向けの独自案件を多く掲載している「侍ワークス」です。

侍ワークスは、独自案件を多く掲載しているだけでなく、

・応募から就業まで一貫したサポート

・就業後もアフターフォロー

といった経験の浅い方や初めてエンジニアを目指す方にも安心のフォロー体制が整っています。もちろん登録は完全無料!しかも案件を見るだけなら登録も不要です。

まずは、お気軽にどんな求人があるか見てみてください。あなたにピッタリの企業がきっと見つかりますよ! 侍ワークスの求人情報を見る

書いた人

つぶらや

つぶらや

独学PG&SE、東京在住30代女性。
誰でもプログラマーになれるがモットーで、わかりやすい記事を目指しています。