Zend_Pdf и шаблонный - PullRequest
       29

Zend_Pdf и шаблонный

2 голосов
/ 21 июня 2011

У меня проблемы с созданием шаблона для моих PDF-документов в Zend_Pdf. Я следовал инструкциям, приведенным в http://framework.zend.com/manual/en/zend.pdf.pages.html, но, похоже, он не работает, поскольку ни текст нижнего колонтитула, ни логотип не видны ни на одной странице, кроме первой.

Это пример моего кода: (Примечание; константа MTP - это просто пересчет от мм до точек)

//Create pdf object
$pdf = new Zend_Pdf();

//Create the first page
$page = $pdf->newPage(Zend_Pdf_Page::SIZE_A4);

/*HEADER*/
//insert logo at the top
$logo = Zend_Pdf_Image::imageWithPath(APPLICATION_PATH . '/../document_root/images/logotype.png');
$page->drawImage($logo, 22*MTP,274*MTP, 62*MTP, 289*MTP); 

/*FOOTER*/
$footerStyle->setFont(Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_HELVETICA), 10);
$page->setStyle($footerStyle);
$page->drawText('Footer text', 33*MTP, 20*MTP, 'ISO-8859-1');

//save the page to pdf->pages
$pdf->pages[0] = $page;

//save the page as a template
$template = $pdf->pages[0];

//create the next page from template
$page1 = new Zend_Pdf_Page($template);

//save the next page to pdf->pages
$pdf->pages[] = $page1;

Полностью ли я неправильно понял, как эта "функция шаблона" работает в Zend_Pdf? Я знаю, что Zend_Pdf не хватает целого ряда функций, сравнимых с некоторыми из внешних pdf-генераторов (например, FPDF), но все же, должен быть какой-то способ сделать основной колонтитул для всех страниц, верно?

1 Ответ

0 голосов
/ 21 июня 2011

Попробуйте использовать clone вместо передачи страницы в качестве аргумента для новой страницы.

$page1 = clone $template;

или просто

$pdf->pages[] = clone $pdf->pages[0];
...