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.

Sign Encrypted PDF Document

This demo shows you how to digital sign an already encrypted/protected PDF document (user-password: "topsecret"; owner-password: "owner").

It is not enough to authenticate at the initial document instance but the signer needs to be able to do this on an intermediate version, too.

See here how to authenticate against an existing security handler of a PDF document.

PHP
<?php

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

$writer = new \SetaPDF_Core_Writer_Http('topsecret.pdf');
$document = \SetaPDF_Core_Document::loadByFilename(
    $assetsDirectory . '/pdfs/tektown/Laboratory-Report-up=topsecret,op=owner.pdf',
    $writer
);

// let's create an authentication callback
$authCallback = static function(\SetaPDF_Core_SecHandler_SecHandlerInterface $secHandler) {
    $secHandler->auth('owner');
};

// create a signer instance and pass the callback
$signer = new \SetaPDF_Signer($document, $authCallback);

// add a signature field
$field = $signer->addSignatureField();
// and define that you want to use this field
$signer->setSignatureFieldName($field->getQualifiedName());

$certificatePath = $assetsDirectory . '/certificates/setapdf-no-pw.pem';

// now create a signature module
$module = new \SetaPDF_Signer_Signature_Module_Pades();
// pass the path to the certificate
$module->setCertificate('file://' . $certificatePath);
// set the path to the private key (in this demo the key is also saved in the certificate file)
$module->setPrivateKey('file://' . $certificatePath, '');

// sign the document with the module
$signer->sign($module);