2 Stimmen

Zend_Pdf und Vorlagen

Ich habe Probleme beim Erstellen einer Vorlage für meine PDF-Dokumente in Zend_Pdf. Ich habe die Anleitung befolgt, die unter http://framework.zend.com/manual/en/zend.pdf.pages.html aber es scheint nicht zu funktionieren, da weder Fußzeilentext noch Logo auf irgendeiner Seite außer der ersten sichtbar sind.

Dies ist ein Beispiel für meinen Code: (Hinweis; die MTP-Konstante ist nur die Neuberechnung von mm zu Punkten)

//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;

Habe ich völlig falsch verstanden, wie diese "Template-Funktion" in Zend_Pdf funktioniert? Ich weiß, dass Zend_Pdf im Vergleich zu einigen der externen pdf-Generatoren (wie FPDF) eine ganze Reihe von Funktionen vermissen lässt, aber trotzdem muss es doch eine Möglichkeit geben, eine grundlegende Kopf-/Fußzeile für alle Seiten zu erstellen, oder?

0voto

Arek Jablonski Punkte 339

Versuchen Sie zu verwenden clone stattdessen Übergabe von page als Argument an eine neue Seite.

$page1 = clone $template;

oder einfach

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X