$doc->PageInsert($p7, $cover); $doc->PageInsert($p7, $cover); $doc->PageInsert($p7, $cover); // Replicate the cover page two more times by placing it before and after // existing pages. $doc->PagePushFront($cover); $doc->PagePushBack($cover); $doc->Save($output_path . "newsletter_page_clone.pdf", 0); echo nl2br("Done. Result saved in newsletter_page_clone.pdf...\n"); $doc->Close(); // Sample 6 - Use ImportPages() in order to copy multiple pages at once // in order to preserve shared resources between pages (e.g. images, fonts, // colorspaces, etc.) echo nl2br("_______________________________________________\n"); echo nl2br("Sample 6 - Preserving shared resources using ImportPages...\n"); echo nl2br("Opening the input pdf...\n"); $in_doc = new PDFDoc($input_path . "newsletter.pdf"); $in_doc->InitSecurityHandler(); $new_doc = new PDFDoc(); $copy_pages = new VectorPage(); for ($itr = $in_doc->GetPageIterator(); $itr->HasNext(); $itr->Next()) { $copy_pages->push($itr->Current()); } $imported_pages = $new_doc->ImportPages($copy_pages); for ($i = 0; $i < $imported_pages->size(); ++$i) { $new_doc->PagePushFront($imported_pages->get($i)); // Order pages in reverse order. // Use PagePushBack() if you would like to preserve the same order. } $new_doc->Save($output_path . "newsletter_import_pages.pdf", 0); echo nl2br("Done. Result saved in newsletter_import_pages.pdf...\n\n" . "Note that the output file size is less than half the size\n" . "of the file produced using individual page copy operations\n" . "between two documents\n");
// pages. Using PDFNet API it is possible to write applications that can // re-order the pages such that they will display in the correct order // when the hard copy pages are compiled and folded correctly. //----------------------------------------------------------------------------------- PDFNet::Initialize(); echo nl2br("-------------------------------------------------\n"); echo nl2br("Opening the input pdf...\n"); $in_doc = new PDFDoc($input_path . "newsletter.pdf"); $in_doc->InitSecurityHandler(); // Create a list of pages to import from one PDF document to another. $import_pages = new VectorPage(); for ($itr = $in_doc->GetPageIterator(); $itr->HasNext(); $itr->Next()) { $import_pages->push($itr->Current()); } $new_doc = new PDFDoc(); $imported_pages = $new_doc->ImportPages($import_pages); // Paper dimension for A3 format in points. Because one inch has // 72 points, 11.69 inch 72 = 841.69 points $media_box = new Rect(0.0, 0.0, 1190.88, 841.6900000000001); $mid_point = $media_box->Width() / 2; $builder = new ElementBuilder(); $writer = new ElementWriter(); for ($i = 0; $i < $imported_pages->size(); ++$i) { // Create a blank new A3 page and place on it two pages from the input document. $new_page = $new_doc->PageCreate($media_box); $writer->Begin($new_page); // Place the first page $src_page = $imported_pages->get($i); $element = $builder->CreateForm($src_page); $sc_x = $mid_point / $src_page->GetPageWidth(); $sc_y = $media_box->Height() / $src_page->GetPageHeight();