カテゴリー
Mac

PHP+FPDFでPDFの差し込み印刷

PHPでPDFを出力できるようにするには、いろいろ…

PHPでPDFを出力できるようにするには、いろいろライブラリーが必要です。
ただ、iniなどは書き換える必要がないので初心者でも簡単です。
ダウンロードして、解凍して、同じ階層に置くだけで、とりあえず動きます。

環境の作り方は
http://winofsql.jp/VA003334/phpVarious080825125024.htm
http://shikabo.ddo.jp/73.html

このあたりに詳しく書いてあるので、参考にしてください。

肝心な部分ですが、
fpdf.php > fpdi.php > japanese.php と継承されているので、次のように記述します。

<?php
require('japanese.php');
$pdf = new PDF_Japanese();
$pdf->AddSJISFont();

$pdf->SetAuthor('67');//適当に
$pdf->SetTitle('test');//適当に

$pn = $pdf->setSourceFile("tpl.pdf");//A4のテンプレートPDFを用意しておく
$tpl = $pdf->ImportPage(1);

$pdf->AddPage('P');//縦向き
$pdf->useTemplate($tpl,0,0,210,297,false);//A4サイズをmmで指定

$pdf->SetFont('SJIS', '', 9);
$pdf->Text(148.365, 10.274, mb_convert_encoding("あいうえお", "SJIS","UTF-8"));// X,Y座標,SJISのみ

$pdf->Output('example.pdf','I');
?>

・小数点以下は3桁ぐらいまで正確に反映される
かなりきっちり位置合わせ出来ます。

・テキストはベースラインで見ている
ボックスの左上とかではなく、フォントのベースラインのXYを指定します。

・テンプレートのPDFは正確に作る
mm単位で縦横をあわせてあげると、ぴったりはまります。

・横向きはニガテ
用紙方向でランドスケープも指定できますが、文字が回ってしまうので、面倒です
回避方法はあるみたいです。

・SJISしか使えない

・フォントの指定はjapanese.phpで

function AddSJISFont($family='SJIS') { 
$name='HiraKakuPro-W3';
//$name='KozMinPro-Regular-Acro';

とか無理矢理書き換えれば動きます。