PHPで複数ページのPDFを分割して1ページごとの複数ファイルにする

2009-04-15
このエントリーをはてなブックマークに追加

FPDIを利用します。「フリーで使っていいよ」と書いてあるのにPayPalのボタンが置いてあるのは、寄付はしてねっていうことですよね。会社のプロジェクトで利用することになったら経費で寄付してみようかと。

require ‘../var/fpdf/fpdi.php’;

$temp_pdf= new FPDI();
$_page = $temp_pdf->setSourceFile(‘../var/hoge.pdf’);
unset($temp_pdf);

for($i=1;$i<=$_page;$i++)
{
    $_write_pdf = new FPDI();
    $_write_pdf->setSourceFile(‘../var/hoge.pdf’);
    $_tmp_info = $_write_pdf->importPage($i);
    $_write_pdf->addPage();
    $_write_pdf->useTemplate($_tmp_info);
    $_write_pdf->Output(“hoge_”.$i.”.pdf”,”F”);
    unset ($_write_pdf);
}

unsetにはあまり意味はない、というかムダかもしれません。closeやdisposeが見当たらなかったので微妙に気持ち悪かったから入れただけです。解放してくれているのかなぁ。

ページ数の取得のために一度テンプレートとして読み込み、それからページ数分でループしてます。ループ処理の中で「テンプレートファイルのiページ目だけ読み込んでファイル書き出し」を繰り返しています。

これでやりたいことはできたのですが、なんかメソッド一発で分割してくれるのがありそうで怖い。あったらどなたか教えてください。

FPDIは1.2、FPDFは1.53、PHPは5.2、WindowsXP上のApache2.0で動作確認しました。

Tags: