在已签署的pdf文件上重复签署

问题描述 投票:0回答:1

我有这个脚本,已经签署了一个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已经有了签名,签名被新的脚本所取代,是否有办法保持两者?

php digital-signature fpdf signature fpdi
1个回答
1
投票

FPDI并不修改原始文档,而是通过将现有文档的页面外观导入到一个可重复使用的结构中来创建一个全新的文档。

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

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

你的任务不能用FPDI来完成。

PS:在任何情况下,更新FPDI到其最新版本。它看起来像你正在使用一个旧版本。

© www.soinside.com 2019 - 2024. All rights reserved.