已签名的 pdf 上的双重签名

Double signature on pdf already signed

我有这个已经签署 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 已经有签名时,签名会被脚本上的新签名替换,有没有办法同时保留这两个签名?

FPDI 不会修改原件,但您可以通过将现有文档的页面外观导入可重复使用的结构来创建一个全新的文件。

生成的文档是一个全新的文档,可能看起来相同,但其内部结构完全不同。

注释和肯定的数字签名将不会被导入。

无法使用 FPDI 完成您的任务。

PS:无论如何将 FPDI 更新到最新版本。您似乎使用的是旧版本。