将PDF文件与PHP合并

时间:2016-04-18 15:41:58

标签: php pdf tcpdf fpdf fpdi

我有几个使用TCPDF动态创建的PDF文件。

我必须将TCPDF创建的PDF合并为一个,因为我看到最佳实践是使用FPDI库来实现。

所有必须合并的PDF都存储在同一目录中。

要合并它们,我正在使用下一个代码:

require( MY_APP_PATH . 'fpdf/fpdf.php');
require( MY_APP_PATH . 'fpdi/fpdi.php');


$fpdi = new FPDI();
// iterate over array of files and merge
foreach ($filesToMerge as $file) {
    $fpdi->setSourceFile(MY_APP_PATH . 'pdf/' . $file);
    $tpl = $fpdi->importPage(1, '/MediaBox');
    $fpdi->addPage();
    $fpdi->useTemplate($tpl);
}

$fpdi->Output('F', 'merged.pdf');

我来到这里的错误是:

TCPDF ERROR: Incorrect output destination: /VAR/WWW/HTML/MYAPP/PDF/MERGED.PDF

看起来TCPDF和FPDI库(甚至是FPDF?)之间存在一些冲突,因为它们都有相同的方法输出。

此外,如果我在单独的代码(不包括TCPDF类)中运行它,它可以正常工作

你能告诉我如何避免这种情况并合并我的PDF吗?

1 个答案:

答案 0 :(得分:1)

只需更改Output()参数的顺序即可。订单在最新的FPDF版本中更改,但internally both orders are supported,而TCPDF仅支持$ name,后跟$ dest。

FPDI将extend TCPDF类(如果可用)。如果它不可用,它将延长FPDF