【问题标题】:Double signature on pdf already signed已签名的pdf上的双重签名
【发布时间】:2020-05-05 13:02:54
【问题描述】:

我有这个已经签署了 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】:

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

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

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

    FPDI 无法完成您的任务。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-27
      • 2017-12-01
      • 2017-05-18
      • 2017-09-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多