読者です 読者をやめる 読者になる 読者になる

tcpdf + PDFI + PHP によるPDFの出力

PDFで請求書を出力したかったのでやってみた

** Illsutratorを使用してPDFのテンプレートを作成する

Illustratorを使用して帳票のテンプレートを作成する。
保存するときに保存のオプションで、「互換性のある形式」を「Acrobat 5(PDF1.4)」にして保存する。

** tcpdf のインストール

https://github.com/tecnickcom/tcpdf

から zip をダウンロードするか clone して展開する。

** フォントのインストール

http://coliss.com/articles/freebies/best-of-free-japanese-fonts-for-2016.html

好きなフォントをダウンロードしてきて、.tff のフォントファイルを、tcpdf を展開したところに出来る fonts フォルダにコピーする。


fonts フォルダにフォントキャッシュが書き込まれるので、ウェブサーバプログラムのアカウントで読み書きできるようにする。


** FPDI のインストール

https://www.setasign.com/products/fpdi/downloads/

から FPDI のパッケージをダウンロードして、tcpdf とおなじところに展開しておく


** ライブラリの使用

>|
<?php
include 'tcpdf.php';
include 'fpdi.php';

$pdf = new FPDI(); // FPDI の呼出

$pdf->SetMargins(0,0,0); // 上左右マージンの設定
$pdf->SetCellPadding(0); // セルパディングの設定
$pdf->SetAutoPageBreak(false); // 自動改ページを無効
$pdf->setPrintHeader(false); // ページヘッダ無効
$pdf->setPrintFooter(false); // ページフッタ無効

$font_m = new TCPDF_FONTS(); // フォントクラスの呼出
$fontPathMintyo = './fonts/mintyo.ttf'; // 明朝フォントの設定
$MintyoFont = $font_m->addTTFfont($fontPathMintyo, '', '', 32);

$font_g = new TCPDF_FONTS(); // フォントクラスの呼出
$fontPathGothic = './fonts/gothic.ttf'; // ゴシックフォントの設定
$GothicFont = $font_g->addTTFfont($fontPathGothic, '', '', 32);

$pdf->AddPage(); // ページを追加

$pdf->setSourceFile('./template.pdf'); // テンプレートを読み込み
$tplIdx = $pdf->importPage(1); // 読み込んだPDFの1ページ目のインデックスを取得
$pdf->useTemplate($tplIdx, null, null, null, null, true); // 読み込んだPDFの1ページ目をテンプレートとして使用

$pdf->SetFont($MintyoFont, '', 12); // 書き込む文字列のフォント,サイズを指定
$pdf->SetTextColor(0, 0, 0); // 書き込む文字列の文字色をRGB指定

$pdf->SetXY(150, 20); // 左上から150mm右、20mm下の位置に
$pdf->Write(0, "ほげほげ" ); // 文字列を書き込む

$pdf->Output('testt.pdf', 'I'); // PDFとして表示

|<


以下を参考にした
http://qiita.com/emegane/items/486975a79ebb267c2b8e

http://cmf.ohtanz.com/blog/archives/2463