如何使用我正在生成的其他 PDF 创建新文档?
我有创建一些文档的方法,我想将它们全部合并到一个大 PDF 中,我该如何使用 TCPDF 来做到这一点?
我不想使用其他库。
TCPDF 有一个tcpdf_import
类,于 2011 年添加,但仍处于“开发中”。如果你不想使用 TCPDF 之外的任何东西,那你就走运了!
但是FPDI是对 TCPDF 的一个很好的补充:它就像一个插件。就这么简单:
require_once('tcpdf/tcpdf.php');
require_once('fpdi/fpdi.php'); // the addon
// FPDI extends the TCPDF class, so you keep all TCPDF functionality
$pdf = new FPDI();
$pdf->setSourceFile("document.pdf"); // must be pdf version 1.4 or below
// FPDI's importPage returns an object that you can insert with TCPDF's useTemplate
$pdf->useTemplate($pdf->importPage(1));
完毕!
另请参阅此问题: TCPDF and FPDI with multiple pages
为什么不使用 Zend_PDF,它确实是一个非常好的合并文件的方法。
<?php
require_once 'Zend/Pdf.php';
$pdf1 = Zend_Pdf::load("1.pdf");
$pdf2 = Zend_Pdf::load("2.pdf");
foreach ($pdf2->pages as $page){
$pdf1->pages[] = $page;
}
$pdf1->save('3.pdf');
?>
这个线程是从 2009 年开始的,但是在 2020 年使用 PHP 中的现有 PDF 仍然是一个问题。
在 Zend_PDF 被放弃并且 TCPDI 不支持 PHP 7 之后,FPDI目前似乎是 2020 年剩下的少数可行的解决方案之一。它可以与 TCPDF 和 FPDF 一起使用,因此现有代码可以继续工作。它目前似乎维护得很好。
查看FPDI 和 FPDF_TPL。这不是一个完美的解决方案,但您基本上可以使用 FPDF_TPL 来创建 PDF 文件的模板并将其插入到您的 PDF 文件中。