在php中导入并签署pdf

在php中导入并签署pdf,php,pdf,import,Php,Pdf,Import,我有一个pdf,我想用一个证书和一个php脚本来签名。 我将动作分解为两个步骤: 在脚本中导入pdf 在证书上签字 我可以解决第一部分。。。我正在使用TCPDI()和TCPDF 这是我的剧本: <?php require_once('tcpdf/config/tcpdf_config.php'); require_once('tcpdf/tcpdf.php'); require_once('tcpdi.php'); $pdf = new TCPDI(PDF_PAGE_ORIENTATI

我有一个pdf,我想用一个证书和一个php脚本来签名。 我将动作分解为两个步骤:

  • 在脚本中导入pdf
  • 在证书上签字
我可以解决第一部分。。。我正在使用TCPDI()和TCPDF

这是我的剧本:

<?php require_once('tcpdf/config/tcpdf_config.php');
require_once('tcpdf/tcpdf.php');
require_once('tcpdi.php');
$pdf = new TCPDI(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

$pdf->AddPage();
$pdf->setSourceFile('file.pdf');

$pdf->Output('output.pdf', 'I')
?>

我没有任何错误,但是输出是空白的,标题上有一条小黑线

你知道有什么问题吗? 我还尝试了FPDF/FPDI

谢谢

问候

2014年11月25日编辑: 以下是我使用TCPDF的解决方案:

$pdf = new TCPDI(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

$pdfdata = file_get_contents('/Users/ynp/Downloads/billofsale.pdf'); 
$pagecount = $pdf->setSourceData($pdfdata); 
for ($i = 1; $i <= $pagecount; $i++) { 
    $tplidx = $pdf->importPage($i);
    $pdf->AddPage();
    $pdf->useTemplate($tplidx); 
}

$pdf->Output();
$pdf=新的TCPDI(pdf页面方向,pdf单元,pdf页面格式,真,'UTF-8',假);
$pdfdata=file_get_contents('/Users/ynp/Downloads/billofsale.pdf');
$pagecount=$pdf->setSourceData($pdfdata);
对于($i=1;$i进口页($i);
$pdf->AddPage();
$pdf->useTemplate($tplidx);
}
$pdf->Output();

fpdf_tpl.php中可能会出现一些错误,只需更改相关函数的原型即可。

您实际上只定义了源文件,但没有导入其中的任何页面。请尝试以下操作:

$pageCount = $pdf->setSourceFile('file.pdf');
for ($pageNo = 1; $pageNo <= $pageCount; $pageNo++) {
    $tplIdx = $pdf->importPage($pageNo);
    $pdf->AddPage();
    $pdf->useTemplate($tplIdx, null, null, 0, 0, true);
}
$pageCount=$pdf->setSourceFile('file.pdf');
对于($pageNo=1;$pageNo importPage($pageNo);
$pdf->AddPage();
$pdf->useTemplate($tplIdx,null,null,0,0,true);
}
通过这种方式,您可以将所有现有页面导入到一个可以与FPDI一起重用的结构中。生成的文档具有一个全新的内部结构,并且您可能会丢失所描述的内容


如果您需要对原始文档进行签名,您可以签出该组件(不是免费的!)。

确实可以。但我想使用lib TCPDF,特别是因为签名功能是免费的……PS:for中有一个错误,它是
$pageNo