我有一个pdf,我想使用证书,用PHP脚本签名。 我分两步分解行动:
我可以解决第一部分......我使用TCPDI(https://github.com/pauln/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。
感谢。
问候。
编辑25/11/2014: 这是我的解决方案,使用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();
您可能在fpdf_tpl.php中遇到一些错误,只需更改相关功能的原型。
答案 0 :(得分:1)
您实际上只定义了源文件,但您没有导入任何页面。试试这个:
$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);
}
这样,您可以将所有现有页面导入到可以与FPDI重用的结构中。生成的文档具有完整的新内部结构,您也可能会丢失here所述的内容。
如果您需要签署原始文档,可以查看SetaPDF-Signer组件(不是免费的!)。