 |
|
PDF ファイルの結合
PHP コード
複数のドキュメントのページを結合します。
相互作用する要素(ブックマークなど)が入ります。
使用するソフトウェア:PDFlib+PDI/PPS 7
使用するデータ:PDFドキュメント
<?php
/* データファイルの場所です。必要なように適合させます */
$searchpath = "../data";
$pdffiles = array(
"PDFlib-real-world.pdf",
"PDFlib-datasheet.pdf",
"TET-datasheet.pdf",
"PLOP-datasheet.pdf",
"pCOS-datasheet.pdf"
);
$p = new PDFlib();
/* load_font()等からの戻り値を調べなければいけないことを表しています */
$p->set_parameter("errorpolicy", "return");
$p->set_parameter("SearchPath", $searchpath);
if ($p->begin_document("", "") == 0)
die("Error: " . $p->get_errmsg());
$p->set_info("Creator", "PDFlib starter sample");
$p->set_info("Title", "starter_pdfmerge");
foreach ($pdffiles as $pdffile) {
/* PDF入力を開きます */
$indoc = $p->open_pdi_document($pdffile, "");
if ($indoc == 0) {
printf("Error: %s\n", $p->get_errmsg());
continue;
}
$endpage = $p->pcos_get_number($indoc, "/Root/Pages/Count");
/* 全ての入力ドキュメントページをループします */
for ($pageno = 1; $pageno <= $endpage; $pageno++) {
$page = $p->open_pdi_page($indoc, $pageno, "");
if ($page == 0) {
printf("Error: %s\n", $p->get_errmsg());
continue;
}
/* ダミーページのサイズは後で適合されるでしょう */
$p->begin_page_ext(10, 10, "");
/* ファイルの名前が付いたブックマークを作ります */
if ($pageno == 1) {
$p->create_bookmark($pdffile, "");
}
/* 読み込みページを出力ページ上に配置し、ページサイズを適合
* します。
*/
$p->fit_pdi_page($page, 0, 0, "adjustpage");
$p->close_pdi_page($page);
$p->end_page_ext("");
}
}
$p->end_document("");
/* PDFデータをバッファから取り出す */
$buf = $p->get_buffer();
$len = strlen($buf);
/* httpヘッダを生成する */
header("Content-type: application/pdf");
header("Content-Length: $len");
header("Content-Disposition: inline; filename=starter_block.pdf");
print $buf;
$p->delete();
?>
|
| PHP5.1.2/PDFlib 7.0.0 |
|
(Dec 18, 2006)