导入 PDF 并使用 Symfony 签名

Import a PDF and sign it with Symfony

我需要签署现有的 pdf。

我正在使用 Symfony 3.4.12 和包 https://packagist.org/packages/whiteoctober/tcpdf-bundle 来签署 pdf。

在服务中我添加了这部分:

AppBundle\Controller\AController:
    class: AppBundle\Controller\AController
    arguments: ['@white_october.tcpdf']

我正在使用这个控制器;

use WhiteOctober\TCPDFBundle\Controller\TCPDFController;

使用此代码,我可以下载创建的正确签名的 pdf:

private $tcpdf;

public function __construct(TCPDFController $tcpdf)
{
    $this->tcpdf = $tcpdf;
}

public function aAction ()
{
    $pdf = $this->tcpdf->create(
        'LANDSCAPE',
        PDF_UNIT,
        PDF_PAGE_FORMAT,
        true,
        'UTF-8',
        false
    );
    $pdf->SetAuthor('qweqwe');
    $pdf->SetTitle('Prueba TCPDF');
    $pdf->SetSubject('Your client');
    $pdf->SetKeywords('TCPDF, PDF, example, test, guide');
    $pdf->setFontSubsetting(true);

    // set additional information
    $info = array(
        'Name' => 'xxx',
        'Location' => 'xxx',
        'Reason' => 'xxx xxxx',
        'ContactInfo' => 'http://www.xxx.xx',
    );

    // set document signature
    $pdf->setSignature('file:///var/www/html/publicCert.pem', 'file:///var/www/html/privateKey_cert.pem', 'xxxx', '', 2, $info, 'A');

    $pdf->SetFont('helvetica', '', 11, '', true);
    $pdf->AddPage();

    $html = '<h1>Working on Symfony</h1>';

    $pdf->writeHTMLCell(
        $w = 0,
        $h = 0,
        $x = '',
        $y = '',
        $html,
        $border = 0,
        $ln = 1,
        $fill = 0,
        $reseth = true,
        $align = '',
        $autopadding = true
    );

    $pdf->Output("example.pdf", 'I');
}

我的 objective 正在尝试签署现有的 pdf,所以我尝试使用 FPDI 导入它,但我感到困惑,因为我知道我可以使用 PDFI 导入 pdf,但我无法签署它并且与 TCPDF 相反,我无法导入 pdf,但我可以签署创建的 pdf。显然我不能使用一个函数到另一个函数。

那么,我该如何解决这个问题?任何的想法?你能举个例子吗?

最后我无法用 TCPDF 包解决这个问题,但我发现一个不太昂贵的解决方案抛出 SetAsign 在这个例子中你可以看到你可以 select 你想要签名的 pdf .我知道它要付出代价,但我可以看到 FDI 和这个库在 pdf 的最新版本中遇到了一些问题,并且与 FPDF 插件相比,Setasign 是一个更稳定和维护的版本,并且会为您避免一些问题。

我找到的示例和解决方案在下一个link中解释:

"https://manuals.setasign.com/setapdf-signer-manual/the-main-class/#index-4-1"