SetaPDF Demos PHP libraries to handle, modify or create PDF files

Get Signed Version

Extract the document version that was signed.

PHP
<?php

use setasign\SetaPDF2\Core\Document;
use setasign\SetaPDF2\Core\Reader\StreamReader;
use setasign\SetaPDF2\Core\Writer\HttpWriter;
use setasign\SetaPDF2\Signer\Signer;
use setasign\SetaPDF2\Signer\ValidationRelatedInfo\IntegrityResult;

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

$file = $assetsDirectory . '/pdfs/tektown/Laboratory-Report-signed.pdf';

$fh = fopen($file, 'rb');
$reader = new StreamReader($fh);
$document = Document::load($reader);

$fieldNames = Signer::getSignatureFieldNames($document);
// let's filter only used signature fields
$fieldNames = array_filter($fieldNames, static function($fieldName) use ($document) {
    $integrityResult = IntegrityResult::create($document, $fieldName);
    return $integrityResult->getStatus() !== IntegrityResult::STATUS_NOT_SIGNED;
});

$fieldNameId = displaySelect('Signature field name:', $fieldNames);
$fieldName = $fieldNames[$fieldNameId];

$integrityResult = IntegrityResult::create($document, $fieldName);

$writer = new HttpWriter('result.pdf');
IntegrityResult::extractSignedVersion(
    $integrityResult,
    $reader,
    $writer
);

fclose($fh);