Объединение файлов PDF с PHP

У меня есть несколько файлов PDF, созданных динамически с использованием TCPDF.

Мне нужно объединить эти PDF-файлы, созданные TCPDF, в один, и, как я видел, лучше всего делать это с библиотекой 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-файлы?


person user198003    schedule 18.04.2016    source источник


Ответы (1)


Просто измените порядок параметров Output(). Порядок был изменен в последней версии FPDF, но внутренне поддерживаются оба порядка, в то время как TCPDF поддерживает только $name, за которым следует $dest.

FPDI расширит класс TCPDF, если он доступен. Если он недоступен, он будет расширять FPDF.

person Jan Slabon    schedule 19.04.2016