SetaPDF Demos

There seems to be a problem loading the components. Please check your PHP error logs for details!

Common issues could be that you missed to install the trial license or that you are using a trial version on an unsupported PHP version.

PDF Portfolio With Dynamic Files & Metadata

This demo shows you how to add dynamic created files to a PDF portfolio and how to define things like a description, file specifc metadata or a mime-type individually.

Note: The viewer application needs to support PDF packages. Otherwise the files will be simple attachments.

PHP
<?php

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

// create a document as the cover sheet
$writer = new \SetaPDF_Core_Writer_Http('dynamic-portfolio.pdf');
$document = new \SetaPDF_Core_Document($writer);
$document->getCatalog()->getPages()->create(\SetaPDF_Core_PageFormats::A4);
// we leave it empty for demonstration purpose...

// create a collection instance
$collection = new \SetaPDF_Merger_Collection($document);

// add a dynamically created text file
$textFile = 'A simple text content';
$collection->addFile(
    new \SetaPDF_Core_Reader_String($textFile),
    'text-file.txt',
    'The description of the text file.',
    [
        // an optional check sum
        \SetaPDF_Core_EmbeddedFileStream::PARAM_CHECK_SUM => md5($textFile, true),
        // modification and creation date are default columns and set automatically
        // to the current date time. If you want to define them manually:
        \SetaPDF_Core_EmbeddedFileStream::PARAM_MODIFICATION_DATE => new DateTime('yesterday'),
        \SetaPDF_Core_EmbeddedFileStream::PARAM_CREATION_DATE => new DateTime('-1 week')
    ],
    'text/plain'
);

// add another dynamically created text file
$textFile = 'Another simple text content';
$name = $collection->addFile(
    new \SetaPDF_Core_Reader_String($textFile),
    'another-text-file.txt',
    'The description of the other text file.',
    [],
    'text/plain'
);
// get the file specification by its name
$fileSpecification = $collection->getFile($name);

// get the embedded file stream and add additional parameters
$fileSpecification->getEmbeddedFileStream()->setParams([
    \SetaPDF_Core_EmbeddedFileStream::PARAM_CHECK_SUM => md5($textFile, true),
    \SetaPDF_Core_EmbeddedFileStream::PARAM_MODIFICATION_DATE => new DateTime('yesterday'),
    \SetaPDF_Core_EmbeddedFileStream::PARAM_CREATION_DATE => new DateTime('last Wednesday')
], false);

// save and finish
$document->save()->finish();