【发布时间】:2010-12-10 10:38:09
【问题描述】:
如何使用我正在生成的其他 PDF 创建新文档?
我有创建一些文档的方法,我想将它们全部合并到一个大 PDF 中,我该如何使用 TCPDF 来做到这一点?
我不想使用其他库。
【问题讨论】:
如何使用我正在生成的其他 PDF 创建新文档?
我有创建一些文档的方法,我想将它们全部合并到一个大 PDF 中,我该如何使用 TCPDF 来做到这一点?
我不想使用其他库。
【问题讨论】:
TCPD 有一个 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
【讨论】:
这个帖子是 2009 年的,但在 2020 年使用 PHP 中的现有 PDF 仍然是一个问题。
在 Zend_PDF 被放弃并且 TCPDI 不支持 PHP 7 之后,FPDI 目前似乎是 2020 年剩下的为数不多的可行解决方案之一。它可以与 TCPDF 和 FPDF 一起使用,因此现有代码可以继续工作。而且目前看来维护得很好。
【讨论】:
为什么不用 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');
?>
【讨论】:
查看FPDI and FPDF_TPL。这不是一个完美的解决方案,但您基本上可以使用 FPDF_TPL 来创建 PDF 文件的模板并将其插入到您的 PDF 文件中。
【讨论】:
【讨论】: