PHPでPDFファイルから1ページだけカットする方法です open_pdi_document関数でPDFファイルを開きます。 open_pdi_page関数とfit_pdi_page関数を繰り返し使って、出力するドキュメントにページを出力していきます。この時、出力したくないページをif文の条件を使って出力しないようにします。 詳細は、PDFlib/PDI/PPSリファレンスのp.129からの「8.PDF取り込み(PDI)関数」を参照してください。
<?php // /path/to/をPDFファイルのあるパスに置き換えてください $templatePDF = '/path/to/foo.pdf'; define('PATH_CMaps', '/usr/local/pdflib7/resource/cmap'); // カットしたいページ $cutoff_page = 3; $p = new PDFlib(); try { $p->set_parameter("SearchPath", PATH_CMaps); $p->set_parameter("errorpolicy", "return"); $p->begin_document('', ''); $p->set_info("Creator", "Opentype Co.Ltd."); $p->set_info("Title", "PDI cut off"); $doc = $p->open_pdi_document($templatePDF, ''); if ($doc == 0) { echo $p->get_errmsg(); exit; } foreach ( range(1, $p->get_pdi_value('/Root/Pages/Count', $doc, 0, 0)) as $page_num ) { if ( $page_num == $cutoff_page ) { // カットしたいページをここでスキップ2008年9月24日水曜日 continue; } $page = $p->open_pdi_page($doc, $page_num, ''); if ($page == 0) { echo $p->get_errmsg(); exit; } $p->begin_page_ext(0, 0, "width=a4.width height=a4.height"); $p->fit_pdi_page($page, 0, 0, 'adjustpage'); $p->end_page_ext(''); $p->close_pdi_page($page); } $p->close_pdi_document($doc); $p->end_document(''); $buf = $p->get_buffer(); header("Content-Type: application/pdf"); header("Content-Length: " . strlen($buf)); header("Content-Disposition: inline; filename=pdi_cutoff_any1page.pdf"); print $buf; } catch (PDFlibException $e) { die("PDFlib exception occurred in hello sample:\n" . "[" . $e->get_errnum() . "] " . $e->get_apiname() . ": " . $e->get_errmsg() . "\n"); } catch (Exception $e) { die($e); } $p = 0;
このPDFを見る
codeなにがし::PDFファイルから1ページだけカットするには