ここではTCPDF、FPDIを使ったPHPでのPDFファイルの生成を解説していきます。
TCPDFのダウンロード
http://sourceforge.net/projects/tcpdf/files/
FPDIのダウンロード
http://www.setasign.de/products/pdf-php-solutions/fpdi/downloads/
FPDIはFPDIとFPDI_TPLの2つダウンロードしてください。
FPDI_TPLのfpdf_tpl.phpはFPDI直下に置いてください。
UTF-8で日本語フォント
TCPDF標準フォントならkozgopromediumになりますが数字がうまく表示されなかったのでIPAフォント、TTFファイルのIPA Pゴシックをダウンロードします。
http://ossipedia.ipa.go.jp/ipafont/ipafont/download.html
サンプルソース
<?php
require_once('./tcpdf/tcpdf.php');
require_once('./fpdi/fpdi.php');
$pdf = new FPDI();
// 余白設定
$pdf->SetMargins(0, 0, 0);
// セルパディング設定
$pdf->SetCellPadding(0);
// 自動改ページ
$pdf->SetAutoPageBreak(false);
// ヘッダ、フッダを使用しない
$pdf->setPrintHeader(false);
$pdf->setPrintFooter(false);
// 1ページ目を準備
$pdf->AddPage();
// フォント設定
$font = $pdf->addTTFfont('./tcpdf/fonts/ipagp.ttf', 'TrueTypeUnicode', '', 32);
$pdf->SetFont($font, '', 10);
// PDFファイル読み込み
$pdf->setSourceFile('./pdf/include.pdf');
$page = $pdf->importPage(1);
$pdf->useTemplate($page);
// Text
$pdf->Text(10, 10, 'こんにちは世界');
// 改行
$pdf->Ln();
// セル
$pdf->Cell(70, 10, 'セル', 1, 0, 'L');
$pdf->Ln();
// HTML表記
$pdf->writeHTML('<h1>html表記</h1>', true, 0, true, 0);
// 画像表示
$pdf->Image('./image/image.jpg', 10, 10);
// PDF出力
$pdf->Output('sample.pdf', 'D');
解説
$pdf->SetMargins(0, 0, 0); (9行目)
余白の設定をします。
$pdf->SetCellPadding(0); (11行目)
セルパディングを設定します。
$pdf->SetAutoPageBreak(false); (13行目)
自動改ページするかをtrue or falseで指定してください。
$pdf->setPrintHeader(false); (16、17行目)
ヘッダー、フッダーを使用するかをtrue or falseで指定してください。
$pdf->AddPage(); (20行目)
1ペーシ目を準備します。
$pdf->SetFont($font, ”, 10); (24行目)
フォントサイズを設定します。
$pdf->setSourceFile(‘./pdf/include.pdf’); (27~29行目)
テンプレートになるPDFファイルがあれば読み込んでください。
$pdf->Text(10, 10, ‘こんにちは世界’); (32行目)
x座標、y座標、表示する文字列で指定してください。
$pdf->Ln(); (35行目)
PDF内での改行ができます。
$pdf->Cell(70, 10, ‘セル’, 1, 0, ‘L’); (38行目)
セルの幅、高さ、文字列、枠線で囲むかの指定、出力後のカーソルの移動方法、テキストの整列で指定してください。
$pdf->writeHTML(); (43行目)
出力するHTMLテキスト、改行するかしないか、背景の塗つぶし指定、前回の高さ設定を引き継ぐかで指定してください。
$pdf->Image(‘./image/image.jpg’, 10, 10); (46行目)
画像ファイル、x座標、y座標、幅、高さで指定してください。
$pdf->Output(‘sample.pdf’, ‘D’); (49行目)
I: ブラウザに出力する(既定)、保存時のファイル名が$nameで指定した名前になる。
D: ブラウザで(強制的に)ダウンロードする。
F: ローカルファイルとして保存する。
S: PDFドキュメントの内容を文字列として出力する。
関連記事
TCPDF FPDIでPDF読み込みエラーを解消 setSourceFile
https://office-goto.info/php/tcpdf-fpdi-setsourcefile/