InitSecurityHandler(); $writer = new ElementWriter(); $reader = new ElementReader(); $num_pages = $doc->GetPageCount(); for($i = 1; $i <= $num_pages; ++$i) { $itr = $doc->GetPageIterator($i); $page = $itr->Current(); $reader->Begin($page); $new_page = $doc->PageCreate(); $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_text) { // Set all text to blue color. $gs = $element->GetGState(); $gs->SetFillColorSpace(ColorSpace::CreateDeviceRGB()); $gs->SetFillColor(new ColorPt(0.0, 0.0, 1.0)); $text_arr = $element->GetTextData(); $size = $element->GetTextDataSize(); $text_arr_new = ""; $bUnicode = False; if ($size > 2) { if (ord($text_arr[0]) == 254 and ord($text_arr[1]) == 255) { $bUnicode = True; for ($n = 0; $n < $size; $n++) { //copy Unicode string as is $text_arr_new .= $text_arr[$n]; } } } if (!$bUnicode) { for ($n = 0; $n < $size; $n++) { //replace 'c' with 'k' and 'k' with 'c' switch (ord($text_arr[$n])) { case 99: $text_arr_new .= chr(107); break; case 107: $text_arr_new .= chr(99); break; default: $text_arr_new .= $text_arr[$n]; } } } $element->SetTextData($text_arr_new, $size); $writer->WriteElement($element); } else if ($element->GetType() == Element::e_image) { // remove all images continue; } else { $writer->WriteElement($element); } } $writer->End(); $reader->End(); $new_page->SetMediaBox($page->GetCropBox()); $doc->PageRemove($doc->GetPageIterator($i)); } $doc->Save($output_path."newsletter_ed.pdf", SDFDoc::e_remove_unused); echo nl2br("Done. Result saved in newsletter_ed.pdf...\n"); ?>