Использование TCPDF и FPDI с пирогом php - PullRequest
3 голосов
/ 02 марта 2010

У меня есть настройка TCPDF в моей установке торт php, и теперь я пытаюсь также использовать с ним FPDI, так как мне нужно добавить PDF в начало генерируемого PDF.

Когда я пытаюсь это сделать, я использую 3 класса

XTCPDF, который содержит мои данные заголовка FPDI - класс FPDI TCPDF - класс TCPDF

и это настроено так:

XTCPDF расширяет FPDI FPDI расширяет TCPDF

Когда я пытаюсь сгенерировать PDF с этим с помощью команд из класса FPDI, я получаю следующую ошибку:

Fatal error: Cannot access protected property XTCPDF::$PDFVersion in C:\Program Files\XAMPP\xampp\htdocs\quote\app\vendors\fpdi\fpdi_pdf_parser.php on line 388

Я думаю, что это может быть проблема с областью действия, но я не слишком уверен, я также проверил, изменив его так, чтобы не включать класс XTCPDF, но возникает та же ошибка,

РЕДАКТИРОВАТЬ: код, который я использую для доступа к классу FPDI:

    $tcpdf->setSourceFile(APP.'webroot'.DS.'img'.DS.'pdf'.DS.'front_cover.pdf');
$frontCover = $tcpdf->importPage(1); 
$tcpdf->useTemplate($frontCover);

Заранее благодарен за любую помощь: D

1 Ответ

3 голосов
/ 26 марта 2010

Я не уверен, как вы добавили FPDI и TCPDF в свое приложение для торта. У меня были некоторые проблемы, когда я делал что-то подобное. Я понял, что вам нужно сделать, это импортировать TCPDF, затем FPDI, а затем заставить XTCPDF расширять FPDI.

Итак, в папке моих поставщиков у меня есть файл xtcpdf.php, который выглядит следующим образом:

<?php
App::import('Vendor','tcpdf/tcpdf');
App::import('Vendor','fpdi/fpdi');

class XTCPDF  extends FPDI {

function header() {}
function footer() {}

#other custom methods...

?>

Поскольку FPDI уже расширяет TCPDF, вы получаете доступ к TCPDF, включая FPDI ...

Я заметил, что при попытке использовать StartTransaction, CommitTransaction и rollbackTransaction в TCPDF это приводило к ошибкам. Я не выяснил, почему это так, но я получил бы ошибку при доступе к закрытым методам, (я думаю, это было совсем недавно, когда я пытался), в любом случае, все остальное, кажется, работает отлично.

...