$doc->InitSecurityHandler();
// Remove the alphabetic labels from example 1.
$doc->RemovePageLabel(7);
// Replace the Prefix in the decimal labels (from example 1).
$label = $doc->GetPageLabel(4);
if ($label->IsValid()) {
    $label->SetPrefix("A");
    $label->SetStart(1);
}
// Add a new label
$new_label = PageLabel::Create($doc->GetSDFDoc(), PageLabel::e_decimal, "B", 1);
$doc->SetPageLabel(10, $new_label);
// starting from page 10.
$doc->Save($output_path . "newsletter_with_pagelabels_modified.pdf", SDFDoc::e_linearized);
echo nl2br("Done. Result saved in newsletter_with_pagelabels_modified.pdf...\n");
$page_num = $doc->GetPageCount();
for ($i = 1; $i <= $page_num; ++$i) {
    echo "Page number: " . $i;
    $label = $doc->GetPageLabel($i);
    if ($label->IsValid()) {
        echo nl2br(" Label: " . $label->GetLabelTitle($i) . "\n");
    } else {
        echo nl2br(" No Label.\n");
    }
}
$doc->Close();
//-----------------------------------------------------------
// Example 4: Delete all page labels in an existing PDF document.
//-----------------------------------------------------------
$doc = new PDFDoc($output_path . "newsletter_with_pagelabels.pdf");
$doc->GetRoot()->Erase("PageLabels");
Example #2
0
for ($i = 1; $i <= $page_num; ++$i) {
    echo nl2br("Opening newsletter_split_page_" . $i . ".pdf...\n");
    $in_doc = new PDFDoc($output_path . "newsletter_split_page_" . $i . ".pdf");
    $new_doc->InsertPages($i, $in_doc, 1, $in_doc->GetPageCount(), PDFDoc::e_none);
    $in_doc->Close();
}
$new_doc->Save($output_path . "newsletter_merge_pages.pdf", SDFDoc::e_remove_unused);
echo nl2br("Done. Result saved in newsletter_merge_pages.pdf...\n");
$in_doc->Close();
// Sample 3 - Delete every second page
echo nl2br("_______________________________________________\n");
echo nl2br("Sample 3 - Delete every second page...\n");
echo nl2br("Opening the input pdf...\n");
$in_doc = new PDFDoc($input_path . "newsletter.pdf");
$in_doc->InitSecurityHandler();
$page_num = $in_doc->GetPageCount();
while ($page_num >= 1) {
    $itr = $in_doc->GetPageIterator($page_num);
    $in_doc->PageRemove($itr);
    $page_num -= 2;
}
$in_doc->Save($output_path . "newsletter_page_remove.pdf", 0);
echo nl2br("Done. Result saved in newsletter_page_remove.pdf...\n");
//Close the open document to free up document memory sooner than waiting for the
//garbage collector
$in_doc->Close();
// Sample 4 - Inserts a page from one document at different
// locations within another document
echo nl2br("_______________________________________________\n");
echo nl2br("Sample 4 - Insert a page at different locations...\n");
echo nl2br("Opening the input pdf...\n");
            case Element::e_path:
                $data = $element->GetPathData();
                $points = $data->GetPoints();
                break;
            case Element::e_text:
                $data = $element->GetTextString();
                echo nl2br($data . "\n");
                break;
            case Element::e_form:
                $reader->FormBegin();
                ProcessElements($reader);
                $reader->End();
                break;
        }
    }
}
PDFNet::Initialize();
// Extract text data from all pages in the document
echo nl2br("__________________________________________________\n");
echo nl2br("Sample 1 - Extract text data from all pages in the document.\n");
echo nl2br("Opening the input pdf...\n");
$doc = new PDFDoc($input_path . "newsletter.pdf");
$doc->InitSecurityHandler();
$pgnum = $doc->GetPageCount();
$page_reader = new ElementReader();
for ($itr = $doc->GetPageIterator(); $itr->HasNext(); $itr->Next()) {
    $page_reader->Begin($itr->Current());
    ProcessElements($page_reader);
    $page_reader->End();
}
echo nl2br("Done.\n");
Example #4
0
$s->StampPage($doc, $page_one, $ps);
$doc->Save($output_path . $input_filename . ".ex6.pdf", SDFDoc::e_linearized);
$doc->Close();
//--------------------------------------------------------------------------------
// Example 7) Add image stamp at top right corner in every pages
$doc = new PDFDoc($input_path . $input_filename);
$doc->InitSecurityHandler();
$s = new Stamper(Stamper::e_relative_scale, 0.1, 0.1);
$s->SetOpacity(0.8);
$s->SetRotation(135);
$s->SetAsBackground(false);
$s->ShowsOnPrint(false);
$s->SetAlignment(Stamper::e_horizontal_left, Stamper::e_vertical_top);
$s->SetPosition(10.0, 10.0);
$img = Image::Create($doc->GetSDFDoc(), $input_path . "peppers.jpg");
$ps = new PageSet(1, $doc->GetPageCount(), PageSet::e_all);
$s->StampImage($doc, $img, $ps);
$doc->Save($output_path . $input_filename . ".ex7.pdf", SDFDoc::e_linearized);
$doc->Close();
//--------------------------------------------------------------------------------
// Example 8) Add Text stamp to first 2 pages, and image stamp to first page.
//          Because text stamp is set as background, the image is top of the text
//          stamp. Text stamp on the first page is not visible.
$doc = new PDFDoc($input_path . $input_filename);
$doc->InitSecurityHandler();
$s = new Stamper(Stamper::e_relative_scale, 0.07000000000000001, -0.1);
$s->SetAlignment(Stamper::e_horizontal_right, Stamper::e_vertical_bottom);
$s->SetAlignment(Stamper::e_horizontal_center, Stamper::e_vertical_top);
$s->SetFont(Font::Create($doc->GetSDFDoc(), Font::e_courier, true));
$red = new ColorPt(1.0, 0.0, 0.0, 0.0);
$s->SetFontColor($red);
// The following sample illustrates how to read/write a PDF document from/to
// a memory buffer.  This is useful for applications that work with dynamic PDF
// documents that don't need to be saved/read from a disk.
PDFNet::Initialize();
// Read a PDF document in a memory buffer.
$file = new MappedFile($input_path . "tiger.pdf");
$file_sz = $file->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) {
        //if ($element->GetType() == Element::e_path)
        $writer->WriteElement($element);
    }
// Finish the block of text
$writer->WriteElement($builder->CreateTextEnd());
// Draw an image that will be clipped by the above text
$writer->WriteElement($builder->CreateImage($img, 10.0, 100.0, 1300.0, 720.0));
$writer->End();
// save changes to the current page
$doc->PagePushBack($page);
// Start a new page ------------------------------------
//
// The example illustrates how to embed the external font in a PDF document.
// The example also shows how ElementReader can be used to copy and modify
// Elements between pages.
$reader = new ElementReader();
// Start reading Elements from the last page. We will copy all Elements to
// a new page but will modify the font associated with text.
$reader->Begin($doc->GetPage($doc->GetPageCount()));
$page = $doc->PageCreate(new Rect(0.0, 0.0, 1300.0, 794.0));
$writer->Begin($page);
// begin writing to this page
$builder->Reset();
// Reset the GState to default
// Embed an external font in the document.
$font = Font::CreateTrueTypeFont($doc->GetSDFDoc(), $input_path . "font.ttf");
while (($element = $reader->Next()) != null) {
    if ($element->GetType() == Element::e_text) {
        $element->GetGState()->SetFont($font, 12);
    }
    $writer->WriteElement($element);
}
$reader->End();
$writer->End();