FileSize(); $file_reader = new FilterReader($file); $mem = $file_reader->Read($file_sz); $test = array(); for ($i = 0; $i < strlen($mem); $i++) { $test[] = ord($mem[$i]); } $doc = new PDFDoc($mem, $file_sz); $doc->InitSecurityHandler(); $num_pages = $doc->GetPageCount(); $writer = new ElementWriter(); $reader = new ElementReader(); // Create a duplicate of every page but copy only path objects for($i=1; $i<=$num_pages; ++$i) { $itr = $doc->GetPageIterator(2*$i-1); $reader->Begin($itr->Current()); $new_page = $doc->PageCreate($itr->Current()->GetMediaBox()); $next_page = $itr; $next_page->Next(); $doc->PageInsert($next_page, $new_page); $writer->Begin($new_page); while (($element = $reader->Next()) !=null) // Read page contents { if ($element->GetType() == Element::e_path) $writer->WriteElement($element); } $writer->End(); $reader->End(); } $doc->Save($output_path."doc_memory_edit.pdf", SDFDoc::e_remove_unused); // Save the document to a memory buffer. $buffer = $doc->Save(SDFDoc::e_remove_unused); // Write the contents of the buffer to the disk $outfile = new StdFile($output_path."doc_memory_edit.txt", StdFile::e_write_mode); $fwriter = new FilterWriter($outfile); $fwriter->WriteBuffer($buffer); $fwriter->Flush(); // Read some data from the file stored in memory $reader->Begin($doc->GetPage(1)); while (($element = $reader->Next()) !=null) { if ($element->GetType() == Element::e_path) echo "Path, "; } $reader->End(); echo nl2br("\n\nDone. Result saved in doc_memory_edit.pdf and doc_memory_edit.txt ...\n"); ?>