Как стать автором
Обновить

Склеивание PDF-документов средствами PHP

Время на прочтение2 мин
Количество просмотров4.5K
Заказчиком была поставлена задача — вконец PDF-документа, который создается с помощью класса TCPDF, нужно присоединить сканы тоже в PDF-формате.

Поиск решения постоянно приводил к необходимости использования какой-нибудь утилитки (например 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, 0210297);
        }
    }
}


Правда склеивать PDF-ки все равно пришлось в связке с FPDF, т.к. с TCPDF при импорте почему-то добавлялись пустые страницы.
Теги:
Хабы:
Всего голосов 5: ↑4 и ↓1+3
Комментарии1

Публикации

Ближайшие события