TCPDF入門

Pocket

TCPDFを使うとPHPでPDFを生成することができます。
特徴は次のとおりです。

  • 導入が簡単。
  • HTMLが使える。

導入

次のページでClone or downloadをクリックします。

GitHub - tecnickcom/TCPDF: Official clone of PHP library to generate PDF documents and barcodes

Download Zipをクリックします。
TCPDF-master.zipがダウンロードされます。
展開するとTCPDF-masterというフォルダが現れます。
フォルダ名を適当に変更します。ここでは「tcpdf」とします。

使い方

詳細は下のサンプルのとおりです。
HTMLが使えますが、少し癖があります。おそらくHTMLの解釈を独自に行なっているのだと思います。

普通、HTMLは次のように書きます。

<html>
<head>
<style>
</style>
</head>
<body>
本文
</body>
</html>

しかしTCPDFでは次のように書きます。html, head, bodyというタグが不要です。

<style>
</style>
本文

使えるタグが限られています。writeHTML:TCPDFマニュアル(勝手訳)によると次のとおりです。

a, b, blockquote, br, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, img, li, ol, p, pre, small, span, strong, sub, sup, table, tcpdf, td, th, thead, tr, tt, u, ul

styleタグによる装飾が可能です。
classを使うことができます。クラス名はダブルクォートを使います。シングルクォートだと効かないようです。

<div class="warning">吾輩は猫である。</div> OK
<div class='warning'>吾輩は猫である。</div> NG

idは使えません。

CSSの指定も独特です。例えばtdを使うときはtable tdとする必要があります。

table td{color:blue;} OK
td{color:blue;} NG

サンプル

<?php
require_once("tcpdf/tcpdf.php");
$tcpdf = new TCPDF();
$tcpdf -> AddPage();
$tcpdf -> SetFont("kozgopromedium");
$html = <<< EOF
<style>
h1{color:#0000FF}
.warning{color:red}
table,th,td{
  border-collapse: collapse;
  border:1px solid silver;
}
</style>
<h1>吾輩は猫である</h1>
<div class="warning">吾輩は猫である。</div>
<table>
<tr>
<th>タイトル</th><th>著者</th>
</tr>
<tr>
<td>吾輩は猫である</td><td>夏目漱石</td>
</tr>
</table>
EOF
;
$tcpdf -> writeHTML($html);
$tcpdf -> Output("sample.pdf");

その他

上下の横線を消す方法

上部と下部に横線が入ることがあります。
これはヘッダとフッタを表示するためのものです。
消したいときはこれらを無効にすればOKです。
下のようにします。AddPageの上に入れます。

$tcpdf = new TCPDF();
$tcpdf -> setPrintHeader(false);
$tcpdf -> setPrintFooter(false);
$tcpdf -> AddPage();

用紙のサイズを指定する方法

用紙のサイズはAddPageで指定できます。
第1引数は用紙の向きです。Pは縦、Lは横です。
第2引数は用紙のサイズです。"A4"、"B5"などと指定します。長さ(ミリ)を配列で指定することもできます。
下のようにします。

$tcpdf -> AddPage("P", [127, 89]); // 縦、L版

[ 2020年5月30日 | カテゴリー: PHP | タグ: , ]

« | »

コメント

  1. […] PDFの生成についてはTCPDFを使いました。 […]

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

送信してください。


タグ

カテゴリー

最近の投稿

最近のコメント

固定ページ

アーカイブ

stabucky

写真

メタ情報