Programmer's Reference Guide

Änderungen von PDF Dokumenten speichern

Dokument Seiten

Die Abstraktion von PDF Dokumentseiten wird durch die Klasse Zend_Pdf_Page abgebildet.

PDF Seiten werden entweder aus einem vorhandenen PDF gelesen oder erstellt.

Neue Seiten können durch die Erstellung eines neuen Zend_Pdf_Page Objektes oder durch den Aufruf der Zend_Pdf::newPage() Methode erhalten werden, die ein Zend_Pdf_Page Objekt zurückgibt. Der Unterschied ist, dass die Zend_Pdf::newPage() Methode eine Seite erstellt, die bereits an das vorhandene Dokument angehängt worden ist. Im Gegensatz dazu können ungebundene Seiten bei verschiedenen PDF Dokumenten verwendet werden und sind ein wenig performanter [1] . Du hast die Wahl, welche Vorgehensweise verwendet werden sollte.

Die Zend_Pdf::newPage() Methode und der Zend_Pdf_Page Konstruktor benötigen die gleichen Parameter welche die Größe der Seite spezifizieren. Das ist entweder die Seitengröße ($x, $y) in Punkten (1/72 Zoll) oder eine vordefinierte Konstante, die als Seitentyp verwendet wird:

  • Zend_Pdf_Page::SIZE_A4

  • Zend_Pdf_Page::SIZE_A4_LANDSCAPE

  • Zend_Pdf_Page::SIZE_LETTER

  • Zend_Pdf_Page::SIZE_LETTER_LANDSCAPE

Dokumentseiten werden in der öffentlichen Eigenschaft $pages der Zend_Pdf Klasse abgelegt. Dies ist ein Array mit Zend_Pdf_Page Objekten. Es definiert den Satz und die Reihenfolge der Dokumentseiten und kann wie ein normales Array verändert werden:

Beispiel #1 Verwaltung von PDF Dokumentseiten

<?php
...
// Umgekehrte Seitenreihenfolge
$pdf->pages = array_reverse($pdf->pages);
...
// Füge eine neue Seite hinzu
$pdf->pages[] = new Zend_Pdf_Page(Zend_Pdf_Page::SIZE_A4);
// Füge eine neue Seite hinzu
$pdf->pages[] = $pdf->newPage(Zend_Pdf_Page::SIZE_A4);

// Entferne eine bestimmte Seite
unset($pdf->pages[$id]);

...
            

Klonen von Seiten

Bestehende PDF Seiten können durch das Erstellen eines neuen Zend_Pdf_Page Objektes geklont werden indem eine existierende Seite als Parameter angegeben wird:

Beispiel #2 Klonen bestehender Seiten

<?php
...
// Die Template Seite in einer seperaten Variable speichern
$template = $pdf->pages[$templatePageIndex];
...
// Neue Seite hinzufügen
$page1 = new Zend_Pdf_Page($template);
$pdf->pages[] = $page1;
...

// Andere Seite hinzufügen
$page2 = new Zend_Pdf_Page($template);
$pdf->pages[] = $page2;
...

// Die Quell Template Seite von den Dokumenten entfernen
unset($pdf->pages[$templatePageIndex]);

...
            

Das ist nützlich wenn verschiedene Seite mit Hilfe eines Templates erstellt werden sollen.

Achtung

Wichtig! Geklonte Seiten verwenden die gleichen PDF Ressourcen mit der Template Seite. Diese kann also nur innerhalb des gleichen Dokuments als Template Seite verwendet werden. Modifizierte Dokumente können als neue abgespeichert werden.

[1] Dies ist eine Einschränkung der V1.0 Version der Zend_Pdf Komponente. Sie wird in zukünftigen Versionen beseitigt werden. Aber ungebundene Seiten werden immer ein besseres (also optimaleres) Ergebnis für gemeinsame Benutzung in Dokumenten liefern.

Änderungen von PDF Dokumenten speichern
blog comments powered by Disqus

Select a Version

Languages Available

Components

Search the Manual