HTMLからPDFを出力できるPHPライブラリ「TCPDF」

会社では様々な書類を使用すると思います。
そういった書類を、使い方によっては簡略化できそうなPHPライブラリをみつけましたので、備忘録もかねてご紹介いたします。

TCPDF

PHPでPDFを生成できるフリーのライブラリで、GitHubでもダウンロード可能です。

https://github.com/tecnickcom/tcpdf

TCPDFの公式サイトにサンプルもあります。

http://tcpdf.penlabo.net/tcpdf/examples/

設置方法

①GitHubからZIPファイルをダウンロードします。

②解凍したファイルをサーバーの任意の場所にアップロード。

PDF出力方法

<?php
include "../TCPDF/tcpdf.php";
 
$tcpdf = new TCPDF();
$tcpdf->AddPage();
 
$tcpdf->SetFont("kozgopromedium", "", 10);
 
$html = <<< EOF
<style>
h1 {
    font-size: 20px; // 文字の大きさ
    text-align: center; // テキストを真ん中に寄せる
}
p {
    font-size: 12px; // 文字の大きさ
    color: #000000; // 文字の色
    text-align: left; // テキストを左に寄せる
    line-height:24px;
}

.tbl{
	border:solid 1px #ccc;
	width:100%;
}
.tbl th{
	border:solid 1px #ccc;
	padding:20px;
	text-align:center;
}
.tbl td{
	border:solid 1px #ccc;
	padding:20px;
	text-align:center;
}
li{
	listy-style:none;
}
.num{
	width:30px;
}
h3{
	border-bottom:solid 1px #ccc;
}
h2{
	font-size:12px;
}
</style>
<div class="wrapper">
<h1>御見積書</h1>
	<p></p><p></p>
<table>
<tr><td>
<p>お客様名<br>ご住所<br>有効期限&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;年&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;月&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;日</p>

<p>※下記の通り御見積り申し上げます。</p>
</td>
<td class="box2">
	<p>年&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;月&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;日</p>
	<div class="company">
	<h2>株式会社ファイブスターコーポレーション</h2>
	<p>〒900-0021 沖縄県那覇市泉崎1丁目13−7<br>
	TEL 098-988-0892<br>
	FAX 098-988-0893</p>
	</div>
</td></tr>
</table>
	<h3>御見積金額 ¥</h3>
	<p><br></p>
<table class="tbl">
	<tr><th class="num">No.</th><th>品名</th><th>数量</th><th>単位</th><th>単価</th><th>金額</th><th>備考</th></tr>
	<tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
	<tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
	<tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
	<tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
	<tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
	<tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
	<tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
	<tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
	<tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
	<tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
</table>
</div>
EOF;

$tcpdf->writeHTML($html);
$tcpdf->Output('samurai.pdf', 'I');
?>

上記コードで生成したPDFはこちらです。

HTMLタグやCSSなどに制限があり、若干、自由な配置は行えません。
tableでレイアウトするなどの工夫が必要になります。

フォームと組み合わせて、入力値など動的に処理すると、Web上で御見積書や領収書やお申込書などを発行できると思います。

社内アプリやWebサービスのひとつとしても使用できそうです。

  • このエントリーをはてなブックマークに追加
  • follow us in feedly

何でもお気軽にお問い合せください。

お問い合せはこちら