Start · Sprachen · PHP · Referenz · ps_end_page

ps_end_page

Funktion

Beendet die aktuelle Seite in einem PostScript-Dokument, das mit der PS-Extension erstellt wird.

Kategorie: misc

Signatur

ps_end_page(resource $psdoc): bool

Beschreibung

ps_end_page() schließt die zuletzt mit ps_begin_page() geöffnete Seite in einem PostScript-Dokument ab. Jede begonnene Seite muss mit diesem Aufruf explizit beendet werden, bevor eine neue Seite geöffnet oder das Dokument geschlossen werden kann.

Die Funktion gehört zur ps-Extension (PostScript), die das Erzeugen von PostScript-Dateien aus PHP heraus ermöglicht. Das typische Muster lautet: Dokument öffnen → Seite beginnen → Inhalte zeichnen → Seite beenden → ggf. weitere Seiten → Dokument schließen.

Wird ps_end_page() nicht aufgerufen, bevor das Dokument mit ps_delete() oder ps_close() geschlossen wird, kann die resultierende PostScript-Datei fehlerhaft oder unvollständig sein. Daher ist es ratsam, den Aufruf immer unmittelbar nach Abschluss der Zeichenoperationen einer Seite zu platzieren.

Parameter

Name Typ Default Beschreibung
$psdoc Pflicht resource Eine gültige PostScript-Dokument-Ressource, die zuvor mit ps_new() erzeugt und mit ps_open_file() geöffnet wurde.

Rückgabewert

Typ
bool
Beschreibung
Gibt true zurück, wenn die Seite erfolgreich beendet wurde, oder false im Fehlerfall (z. B. wenn keine Seite geöffnet war oder die Ressource ungültig ist).

Beispiele

Einfaches einseitiges PostScript-Dokument

<?php
// PS-Ressource erzeugen
$ps = ps_new();

if (!ps_open_file($ps, '/tmp/ausgabe.ps')) {
    die('Datei konnte nicht geöffnet werden.');
}

// Dokumentinformationen setzen
ps_set_info($ps, 'Creator', 'PHP ps_end_page Beispiel');
ps_set_info($ps, 'Title', 'Test-Seite');

// Erste Seite beginnen (A4: 595 x 842 Punkte)
ps_begin_page($ps, 595, 842);

// Text auf der Seite ausgeben
ps_set_value($ps, 'textx', 50);
ps_set_value($ps, 'texty', 780);
ps_show($ps, 'Hallo, PostScript!');

// Seite beenden
ps_end_page($ps);

// Dokument schließen und Ressource freigeben
ps_close($ps);
ps_delete($ps);

echo 'PostScript-Datei erfolgreich erstellt.';
?>
PostScript-Datei erfolgreich erstellt.

Mehrseitiges PostScript-Dokument

<?php
$ps = ps_new();
ps_open_file($ps, '/tmp/mehrseiter.ps');

ps_set_info($ps, 'Creator', 'PHP Mehrseiter');
ps_set_info($ps, 'Title', 'Mehrseitiges Dokument');

$seiten = ['Seite 1: Einleitung', 'Seite 2: Hauptteil', 'Seite 3: Fazit'];

foreach ($seiten as $inhalt) {
    ps_begin_page($ps, 595, 842);

    ps_set_value($ps, 'textx', 50);
    ps_set_value($ps, 'texty', 780);
    ps_show($ps, $inhalt);

    // Jede Seite muss explizit beendet werden
    ps_end_page($ps);
}

ps_close($ps);
ps_delete($ps);

echo 'Mehrseitiges Dokument mit ' . count($seiten) . ' Seiten erstellt.';
?>
Mehrseitiges Dokument mit 3 Seiten erstellt.

// Wichtig · Fallstricke

Hinweis zur Extension: Die ps-Extension ist nicht standardmäßig in PHP enthalten und muss separat installiert werden (PECL-Paket ps). Sie setzt die externe Bibliothek pslib voraus.

Reihenfolge beachten: ps_end_page() muss immer nach ps_begin_page() aufgerufen werden. Ein verschachtelter Aufruf (Seite innerhalb einer Seite) ist nicht erlaubt und führt zu einem Fehler. Ebenso darf ps_end_page() nicht aufgerufen werden, wenn keine Seite geöffnet ist.