导入 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"
我需要签署现有的 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"