SetaPDF Demos

Stamp Prepended Title Page

This demo prepends an empty page and stamps various data on it.

PHP
<?php

// load and register the autoload function
require_once __DIR__ . '/../../../../../bootstrap.php';

// let's get access to the file
$reader = new SetaPDF_Core_Reader_File($assetsDirectory . '/pdfs/Brand-Guide.pdf');
// create a HTTP writer
$writer = new SetaPDF_Core_Writer_Http('stamped.pdf', true);
// let's get the document
$document = SetaPDF_Core_Document::load($reader, $writer);

// get pages helper
$pages = $document->getCatalog()->getPages();
// create a page in format A4 but don't append it
$page = $pages->create(SetaPDF_Core_PageFormats::A4, SetaPDF_Core_PageFormats::ORIENTATION_PORTRAIT, false);
// prepend the created page
$pages->prepend($page);

// initiate a stamper instance
$stamper = new SetaPDF_Stamper($document);

// let's use a TrueType font for the stamp appearance:
$font = new SetaPDF_Core_Font_TrueType_Subset(
    $document,
    $assetsDirectory . '/fonts/DejaVu/ttf/DejaVuSans.ttf'
);

// initiate the text stamp
$stamp = new SetaPDF_Stamper_Stamp_Text($font, 20);
// fill the stamp with text
$stamp->setText(
    "SetaPDF-Stamper - Title Page - Demo\n"
    . "From: " . $_SERVER['REMOTE_ADDR'] . "\n"
    . "User: Tester\n"
    . "Date: " . date("Y-m-d H:i")
);
// center the text in textbox
$stamp->setAlign(SetaPDF_Core_Text::ALIGN_CENTER);
// define line height to 35
$stamp->setLineHeight(30);
// add stamp to stamper
$stamper->addStamp($stamp, SetaPDF_Stamper::POSITION_CENTER_MIDDLE, SetaPDF_Stamper::PAGES_FIRST);

// now we want to insert an image above the text

// define which image we want to stamp
$image = SetaPDF_Core_Image::getByPath($assetsDirectory . '/pdfs/camtown/Logo.png');
// initiate a image stamp
$stamp = new SetaPDF_Stamper_Stamp_Image($image);
// stretch image stamp
$stamp->setDimensions(150, 30);
// Add stamp to stamper centered on the first page with an y translation of +80
$stamper->addStamp($stamp, SetaPDF_Stamper::POSITION_CENTER_MIDDLE, SetaPDF_Stamper::PAGES_FIRST, 0, 120);

// stamp the document with all previously added stamps
$stamper->stamp();

// save and finish the resulting document
$document->save(true)->finish();