Signatur
Beschreibung
ps_begin_page() leitet eine neue Seite in einem mit ps_new() erzeugten PostScript-Dokument ein. Jede Seite muss mit einem zugehörigen Aufruf von ps_end_page() abgeschlossen werden, bevor eine weitere Seite begonnen oder das Dokument gespeichert wird.
Die Parameter width und height geben die Seitenabmessungen in PostScript-Punkten (Einheit: pt, 1 pt = 1/72 Zoll) an. Für DIN-A4 gelten beispielsweise 595 × 842 Punkte, für Letter-Format 612 × 792 Punkte.
Die Funktion setzt außerdem den grafischen Zustand zurück, sodass Transformationen, Clipping-Pfade und ähnliche Zustandsänderungen der vorherigen Seite nicht in die neue Seite übertragen werden. Sie ist daher essenziell für den korrekten Seitenaufbau in mehrseitigen Dokumenten.
Diese Funktion gehört zur ps-Erweiterung (pslib), die separate Installation und Aktivierung in der PHP-Umgebung erfordert.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $psdoc Pflicht | resource | Die Ressource des PostScript-Dokuments, wie sie von ps_new() zurückgegeben wird. |
|
| $width Pflicht | float | Breite der Seite in PostScript-Punkten (pt). DIN-A4 entspricht beispielsweise 595 pt. | |
| $height Pflicht | float | Höhe der Seite in PostScript-Punkten (pt). DIN-A4 entspricht beispielsweise 842 pt. |
Rückgabewert
true bei Erfolg zurück, false im Fehlerfall (z. B. wenn das Dokument nicht geöffnet ist oder eine vorherige Seite nicht mit ps_end_page() beendet wurde).Beispiele
Einfaches DIN-A4-Dokument mit einer Seite
<?php
// Neues PostScript-Dokument erzeugen
$ps = ps_new();
if (!ps_open_file($ps, '/tmp/beispiel.ps')) {
die('Datei konnte nicht geöffnet werden.');
}
ps_set_info($ps, 'Creator', 'MeineApp');
ps_set_info($ps, 'Title', 'Beispieldokument');
// DIN-A4-Seite beginnen (595 x 842 Punkte)
ps_begin_page($ps, 595, 842);
// Text auf der Seite platzieren
ps_set_font($ps, 'Helvetica', 0, 0);
$font = ps_findfont($ps, 'Helvetica', '', 0);
ps_setfont($ps, $font, 14.0);
ps_show_xy($ps, 'Hallo, Welt!', 100, 700);
// Seite beenden
ps_end_page($ps);
// Dokument schließen
ps_close($ps);
ps_delete($ps);
echo 'PostScript-Datei wurde erfolgreich erstellt.';
?>
Mehrseitiges Dokument
<?php
$ps = ps_new();
ps_open_file($ps, '/tmp/mehrseiten.ps');
ps_set_info($ps, 'Title', 'Mehrseitiges Dokument');
$seiten = ['Seite 1: Einleitung', 'Seite 2: Hauptteil', 'Seite 3: Fazit'];
$font = null;
foreach ($seiten as $inhalt) {
// Neue Seite im Format Letter (612 x 792 pt)
ps_begin_page($ps, 612, 792);
if ($font === null) {
$font = ps_findfont($ps, 'Times-Roman', '', 0);
}
ps_setfont($ps, $font, 16.0);
ps_show_xy($ps, $inhalt, 72, 720);
ps_end_page($ps);
}
ps_close($ps);
ps_delete($ps);
echo 'Mehrseitiges Dokument mit ' . count($seiten) . ' Seiten erstellt.';
?>
// Wichtig · Fallstricke
Erweiterungsabhängigkeit: Die ps-Erweiterung basiert auf der externen C-Bibliothek pslib. Sie ist nicht standardmäßig in PHP enthalten und muss separat kompiliert und aktiviert werden (extension=ps in der php.ini).
Seitenreihenfolge: Es darf immer nur eine Seite gleichzeitig offen sein. Wird ps_begin_page() aufgerufen, ohne die vorherige Seite mit ps_end_page() beendet zu haben, kann das Dokument beschädigt werden oder die Funktion schlägt fehl.
Koordinatensystem: Das Koordinatensystem in PostScript-Dokumenten hat seinen Ursprung unten links auf der Seite. Der y-Wert wächst nach oben, was sich von üblichen Bildschirmkoordinaten unterscheidet.