アジャイル,Trac,オープンソースなどの話。認定スクラムマスター。Twitterは@ryuzee
PHPでPDFを作成するにはPDFlibやFPDFを使うのが定番。オイラの場合はオープンソースということでFPDFを使っている。
FPDF標準では既存のPDFを読み込んで追記するということは出来ないが、他のライブラリと組み合わせると実現可能なので、以下にメモ書きしておく。
1.必要なライブラリの入手
まずは必要なライブラリをダウンロードする。
FPDFは標準では日本語が利用できないのだが、これに対応する方法として、MBFPDFを利用する方法とFPDF_Japaneseを利用する方法がある。
今回はFPDF_Japaneseを利用する。
ダウンロードするもの
・FPDF本体
http://www.fpdf.org/から最新版の1.53をダウンロード
・japanese.zip
http://www.fpdf.org/download/japanese.zipからダウンロード
・fpdi
http://www.setasign.de/products/pdf-php-solutions/fpdi/から以下の2つをダウンロード
FPDI-1.2.zip
FPDF_TPL-1.1.1.zip
2.セットアップ
1で入手したファイルをすべて解凍して、同一ディレクトリ内に配置する。
下記の構成になるはずだ。(ルートフォルダはとりあえずfpdf153とする)
3.PHPスクリプトの修正
2で配置しただけでは、まだ既存のPDFは読み込めない。以下の通りPHPファイルを修正する
対象はjapanese.php
2行目を
から
へ。
15行目を
を
とする。
以上で準備は完了なので、サンプルスクリプトでテストする。
サンプルスクリプトは以下の通りだ。
こいつを用意してブラウザから叩けば新しいPDFが出来上がる。
$pdf= new PDF_Japanese("P", "mm", "A4");
$pdf->AddSJISFont();
$pdf->SetFont('SJIS', '', 8);
$pagecount = $pdf->setSourceFile("org.pdf");
for($i = 0; $i <$pagecount; $i++ ) {
$tplidx = $pdf->ImportPage($i+1);
$pdf->addPage();
$pdf->useTemplate($tplidx);
$s = "全ページの下に文字加えてみるよ。ワショーイ。";
$s = mb_convert_encoding($s, "sjis", "euc");
$pdf->Text(20, 285, $s);
}
$pdf->Output("new.pdf","I");
フォントの種類の変更方法は別途調べることにする。
コメントはありません。是非コメントしてください。