Start · Sprachen · PHP · Referenz · ps_open_file

ps_open_file

Funktion

Öffnet eine Datei zur Ausgabe von PostScript-Daten innerhalb einer mit <code>ps_new()</code> erstellten PS-Ressource.

Kategorie: misc

Signatur

ps_open_file(resource $psdoc, string $filename): bool

Beschreibung

ps_open_file() ist Teil der PHP-PostScript-Erweiterung (ps) und leitet die PostScript-Ausgabe einer $psdoc-Ressource in die angegebene Datei um. Nach dem Aufruf können alle nachfolgenden PostScript-Zeichenoperationen in diese Datei geschrieben werden.

Typischerweise wird die Funktion unmittelbar nach ps_new() aufgerufen, um die Ausgabedatei zu setzen, bevor Seiten, Grafiken oder Text erzeugt werden. Alternativ kann auch ps_open_memory() verwendet werden, wenn die Ausgabe im Arbeitsspeicher gehalten werden soll.

Nach Abschluss der PostScript-Erzeugung sollte die Datei mit ps_close() geschlossen werden, um sicherzustellen, dass alle Puffer geleert und die PostScript-Strukturen korrekt abgeschlossen werden.

  • Ist die Datei nicht beschreibbar oder der Pfad ungültig, gibt die Funktion false zurück.
  • Die Erweiterung muss mit der libps-Bibliothek kompiliert worden sein.

Parameter

Name Typ Default Beschreibung
$psdoc Pflicht resource Eine gültige PostScript-Ressource, wie sie von ps_new() zurückgegeben wird.
$filename Pflicht string Pfad zur Datei, in die die PostScript-Daten geschrieben werden sollen. Der Pfad muss für den PHP-Prozess beschreibbar sein.

Rückgabewert

Typ
bool
Beschreibung
Gibt true zurück, wenn die Datei erfolgreich geöffnet wurde, andernfalls false (z. B. bei fehlenden Schreibrechten oder ungültigem Pfad).

Beispiele

Einfaches PostScript-Dokument in eine Datei schreiben

<?php
// Neue PS-Ressource erstellen
$psdoc = ps_new();

if (!$psdoc) {
    die('Fehler: PS-Ressource konnte nicht erstellt werden.');
}

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

// Dokumentinformationen setzen
ps_set_info($psdoc, 'Creator', 'PHP PostScript Beispiel');
ps_set_info($psdoc, 'Title', 'Testdokument');

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

// Einen Text auf der Seite ausgeben
ps_set_value($psdoc, 'textx', 100);
ps_set_value($psdoc, 'texty', 700);
ps_show($psdoc, 'Hallo PostScript!');

// Seite beenden
ps_end_page($psdoc);

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

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

Fehlerbehandlung beim Öffnen einer nicht beschreibbaren Datei

<?php
$psdoc = ps_new();

if (!$psdoc) {
    die('Fehler: PS-Ressource konnte nicht erstellt werden.');
}

// Versuch, in ein nicht existierendes Verzeichnis zu schreiben
$erfolg = ps_open_file($psdoc, '/nicht/vorhanden/ausgabe.ps');

if ($erfolg === false) {
    echo 'Fehler: Die Datei konnte nicht geöffnet werden. Bitte Pfad und Rechte prüfen.';
} else {
    ps_begin_page($psdoc, 595, 842);
    ps_end_page($psdoc);
    ps_close($psdoc);
}

ps_delete($psdoc);
?>
Fehler: Die Datei konnte nicht geöffnet werden. Bitte Pfad und Rechte prüfen.

// Wichtig · Fallstricke

Voraussetzung: Die PHP-PostScript-Erweiterung (ps) muss installiert und aktiviert sein. Sie basiert auf der externen libps-Bibliothek, die separat kompiliert werden muss. In vielen Standard-PHP-Installationen ist diese Erweiterung nicht standardmäßig enthalten.

Reihenfolge beachten: ps_open_file() muss vor allen Seiten- und Zeichenoperationen aufgerufen werden. Ein Aufruf nach ps_begin_page() führt zu fehlerhaften oder unvollständigen PostScript-Dokumenten.

Ressource freigeben: Nach dem Schließen mit ps_close() sollte die Ressource immer mit ps_delete() freigegeben werden, um Speicherlecks zu vermeiden.