tcpdf - 从现有的PDF文档开始

时间:2009-09-13 21:56:07

标签: php pdf tcpdf

我有几个PDF模板,我想使用tcpdf加载和修改输出。

是否可以加载现有PDF并将其用作tcpdf中的起点?

3 个答案:

答案 0 :(得分:28)

您想使用FPDI

有一些示例代码here

答案 1 :(得分:2)

我尝试了FPDI的免费版本,但不支持PDF版本1.5或更高版本。

如果其他人正在寻找免费解决方案,那么我已经使用TCPDI。您可以在github https://github.com/pauln/tcpdi上找到它 如果您使用的是作曲家,那么您也可以为作曲家找到一些叉子。只需在github上搜索tcpdi。

将其添加到项目中后,代码非常简单。它是TCPDF的扩展,因此您以前的所有代码都可以正常工作

这是我的代码的摘录。我用它来保存隐私策略的副本(静态pdf),并在每个页脚上带有用户名和协议日期。

// Create new PDF document
$pdf = new TCPDI(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
...
// Add the pages from the source file.
$pagecount = $pdf->setSourceFile($policyPdfPath);
for ($i = 1; $i <= $pagecount; $i++) {
    $tplidx = $pdf->importPage($i);
    $pdf->AddPage();
    $pdf->useTemplate($tplidx);
    // Add agreement text in document footer
    $pdf->SetXY(15,282);
    $pdf->Cell(180, 5, "Documento approvato da {$fullName} il {$date}", 0, 0, 'C');
}
// Send PDF on output
$pdf->Output(FOLDER_PATH . DIRECTORY_SEPARATOR . "{$userId}.pdf", 'F');

答案 2 :(得分:0)

对于任何其他发现此问题的人,似乎确实有一个PARSER和import类是为TCPDF(https://tcpdf.org/docs/srcdoc/TCPDF/source-class-TCPDF_IMPORT/#50-100)构建的,但截至2018年仍在开发中。

还值得注意的是,上述解决方案不允许编辑PDF页面的内容。换句话说,您将页面整体导入,就无法编辑文本内容或图像。