Двойная подпись на уже подписанном pdf - PullRequest
0 голосов
/ 05 мая 2020

У меня есть этот сценарий, который уже подписывает PDF-файл

<?php
require("../config/include.php");
require_once(DIR_LIBRERIAS."TCPDF/tcpdf.php");
require_once(DIR_LIBRERIAS.'FPDI/fpdi.php');
//$pdf = new TCPDF(PDF_PAGE_ORIENTATION);

error_reporting(0);
// set certificate file
$certificate = 'file://'.DIR_ROOT.'cert/testcertif.crt';
$pdf = new FPDI();
$filename = "zz_test_firmado.pdf";
$info = array('Name' => 'testcertif', 'Location' => 'Oficina', 'Reason' => 'test firma', 'ContactInfo' => 'test.com.ar');

$pdf->setSignature($certificate, $certificate, 'test key pass', '', 2, $info);

$pdf->setPrintHeader(false);
$pdf->setPrintFooter(false);
$pages_count= $pdf->setSourceFile($filename);
$page = "P";

for($i = 1; $i <= $pages_count; $i++)
{
    $tplIdx = $pdf->importPage($i);
    $size = $pdf->getTemplateSize($tplIdx);
    if ($size['w'] > $size['h']) {
        $pdf->AddPage('L', array($size['w'], $size['h']));
        $arrayUltimo = array($size['w'], $size['h']);
        $page = "L";
    } else {
        $pdf->AddPage('P', array($size['w'], $size['h']));
        $arrayUltimo = array($size['w'], $size['h']);
    }

    $pdf->useTemplate($tplIdx, 0, 0, 0, 0, true);

}

$pdf->output('testfirmass222.pdf', 'I');

?>

Однако, когда PDF-файл, который я импортирую, уже имеет подпись, подпись заменяется новой, помещенной в сценарий, есть способ сохранить оба?

1 Ответ

1 голос
/ 05 мая 2020

FPDI не изменяет оригинал, но вы создаете совершенно новый, импортируя внешний вид страниц существующих документов в структуру многократного использования.

Полученный документ является полностью новым, который может выглядеть идентично, но его внутренняя структура это совсем другое.

Аннотации и наверняка цифровые подписи не будут импортированы.

Ваша задача не может быть выполнена с FPDI.

PS: В любом случае обновите FPDI до последней версии. Похоже, вы используете устаревшую версию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...