我使用MPDF创建一个PDF。 我想数字签名的PDF文档添加。
我只能找网上的例子添加数字签名到TCPDF对象,而不是一个MPDF。
有没有人有关于这个问题,可以帮助我的信息吗?
这是我的PHP代码:
$pdf=new mPDF('en','A4','','DejaVuSansCondensed',$template->margin_left,$template->margin_right,$template->margin_top,$template->margin_bottom,$template->margin_header,$template->margin_footer);
$pdf->setAutoFont();
$pdf->SetHTMLHeader($header);
$pdf->SetHTMLFooter($footer);
$pdf->writeHTML($printable);
$pdf->Output($file_name, "D");
非常感谢!
编辑(14年5月17日):
我已经找到了下一个图书馆 - 在这里 (向下滚动),并用正确的Zend图书馆包装它,使其工作开箱即取得了一定的利用它。 所以,如果你想用PHP进行数字签名PDF文档,你可以使用下一个库。 http://www.mediafire.com/download/181rgs86nvr4nd5/signPdf.zip
几个星期的寻找用于签名已经生成的PHP文件中的PHP解决方案之后,这是唯一与我找到了很好的性能解决方案的工作,它可以与任何PDF库中使用。
感谢达米尔开发这个库。
旧的过时的答案
我有同样的问题,努力为好。 我已经找到了,现在唯一的解决办法是创建PDF,然后使用https://www.setasign.com/products/fpdi/about/#p-510到PDF导入TCPDF。
然后用TCPDF签字。
首先创建一个类,然后从FPDI和继承TCPDF
require_once('tcpdf.php');
require_once('fpdi.php');
class Signpdf_lib extends FPDI{}
然后做实际签约
$pdfSigner = new Signpdf_lib();
$pageCount = $pdfSigner->setSourceFile($this->pdfFilePath);
// iterate through all pages
for ($pageNo = 1; $pageNo <= $pageCount; $pageNo++) {
// import a page
$templateId = $pdfSigner->importPage($pageNo);
// get the size of the imported page
$size = $pdfSigner->getTemplateSize($templateId);
// create a page
$pdfSigner->AddPage('P', array($size['w'], $size['h']));
// use the imported page
$pdfSigner->useTemplate($templateId);
}
$info = array(
'Name' => "$documentName - $documentNumber",
'Location' => 'IL',
'Reason' => 'DOC SIGN',
'ContactInfo' => 'user details',
);
//load the certificate
$certificateStr = Signatures_lib::loadSignature();
// set document signature
$pdfSigner->setSignature($certificateStr, null, null, null, 1, $info);
// define active area for signature appearance
$pdfSigner->setSignatureAppearance(0, 5, 30, 30);
$pdfSigner->Output($this->pdfFilePath, 'F');
我曾试图用TCPDF签名算法和MPDF使用它,但没能做到这一点,所以如果有人获得成功的我怎么会很高兴知道!