Заказчиком была поставлена задача — вконец PDF-документа, который создается с помощью класса TCPDF, нужно присоединить сканы тоже в PDF-формате.
Поиск решения постоянно приводил к необходимости использования какой-нибудь утилитки (например Pdftk), которую нужно было устанавливать со всеми вытекающими. А т.к. хостинг был обычный, то установка дополнительного софта довольно проблематична. В общем, было необходимо решение, которое в идеале просто расширяет функционал TCPDF (FPDF), ну или, в любом случае, полностью реализовано на PHP.
В конце концов решение нашлось — FPDI. Это расширение старого доброго FPDF, но поддерживается и TCPDF, чему я был особенно рад.
Для удобства использования в CakePHP, я создал компонент, наследующий FPDI.
Правда склеивать PDF-ки все равно пришлось в связке с FPDF, т.к. с TCPDF при импорте почему-то добавлялись пустые страницы.
Поиск решения постоянно приводил к необходимости использования какой-нибудь утилитки (например Pdftk), которую нужно было устанавливать со всеми вытекающими. А т.к. хостинг был обычный, то установка дополнительного софта довольно проблематична. В общем, было необходимо решение, которое в идеале просто расширяет функционал TCPDF (FPDF), ну или, в любом случае, полностью реализовано на PHP.
В конце концов решение нашлось — FPDI. Это расширение старого доброго FPDF, но поддерживается и TCPDF, чему я был особенно рад.
Для удобства использования в CakePHP, я создал компонент, наследующий FPDI.
<?php
define('FPDF_FONTPATH', ROOT.'/vendors/fpdf/font/');
App::import('Vendor', 'fpdf'.DS.'fpdf');
App::import('Vendor', 'fpdi'.DS.'fpdi');
class FpdiComponent extends FPDI {
public function addFile($file) {
$pages = $this->setSourceFile($file);
for ($i = 1; $i <= $pages; $i++) {
$this->AddPage('P', 'A4');
$tpl_id = $this->importPage($i);
$this->useTemplate($tpl_id, 0, 0, 210, 297);
}
}
}
Правда склеивать PDF-ки все равно пришлось в связке с FPDF, т.к. с TCPDF при импорте почему-то добавлялись пустые страницы.