Signatur
Beschreibung
ps_setfont() legt fest, welche Schriftart und welche Schriftgröße für alle folgenden Textoperationen in einem mit der PS-Extension erzeugten PostScript-Dokument verwendet werden sollen. Die Funktion muss aufgerufen werden, bevor Text auf einer Seite ausgegeben wird (z. B. mit ps_show() oder ps_show_xy()).
Der Parameter $font nimmt eine Schriftressource entgegen, die zuvor mit ps_findfont() geladen wurde. Ohne vorherigen Aufruf von ps_findfont() steht keine gültige Schriftressource zur Verfügung, und ps_setfont() kann nicht sinnvoll eingesetzt werden.
Die Schriftgröße wird in Punkt (pt) angegeben und bezieht sich auf das PostScript-Koordinatensystem des Dokuments. Typische Werte für Fließtext liegen zwischen 9 und 14 Punkt; für Überschriften können deutlich größere Werte gewählt werden.
Diese Funktion gehört zur ps-PECL-Extension, die die direkte Erzeugung von PostScript-Dateien erlaubt. Sie eignet sich vor allem für drucknahe Anwendungen, bei denen keine PDF-Bibliothek genutzt werden soll oder kann.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $psdoc Pflicht | resource | Eine PostScript-Dokumentressource, die zuvor mit ps_new() erstellt und mit ps_open_file() geöffnet wurde. |
|
| $font Pflicht | resource | Eine Schriftressource, die mit ps_findfont() geladen wurde und die zu verwendende Schriftart repräsentiert. |
|
| $size Pflicht | float | Die Schriftgröße in Punkt (pt). Positive Fließkommazahl; typische Werte liegen zwischen 8.0 und 72.0. |
Rückgabewert
true bei Erfolg zurück, false im Fehlerfall (z. B. bei ungültiger Dokumentressource oder ungültiger Schriftressource).Beispiele
Einfaches PostScript-Dokument mit Textausgabe
<?php
// PostScript-Dokument erstellen
$ps = ps_new();
if (!ps_open_file($ps, '/tmp/ausgabe.ps')) {
die('Datei konnte nicht geöffnet werden.');
}
ps_set_info($ps, 'Creator', 'Beispielskript');
ps_set_info($ps, 'Title', 'ps_setfont Demo');
ps_begin_page($ps, 595, 842); // DIN A4 in Punkt
// Schriftart laden
$font = ps_findfont($ps, 'Helvetica', '', 0);
// Schriftart und Größe setzen
ps_setfont($ps, $font, 14.0);
// Text ausgeben
ps_show_xy($ps, 'Hallo, PostScript!', 50, 750);
ps_end_page($ps);
ps_close($ps);
ps_delete($ps);
echo 'PostScript-Datei wurde erfolgreich erstellt.';
?>
Verschiedene Schriftgrößen auf einer Seite
<?php
$ps = ps_new();
ps_open_file($ps, '/tmp/mehrere_groessen.ps');
ps_set_info($ps, 'Title', 'Schriftgrößen Demo');
ps_begin_page($ps, 595, 842);
$font = ps_findfont($ps, 'Times-Roman', '', 0);
$texte = [
['text' => 'Überschrift (24pt)', 'y' => 780, 'size' => 24.0],
['text' => 'Unterüberschrift (16pt)', 'y' => 740, 'size' => 16.0],
['text' => 'Fließtext (11pt)', 'y' => 710, 'size' => 11.0],
['text' => 'Fußnote (8pt)', 'y' => 690, 'size' => 8.0],
];
foreach ($texte as $eintrag) {
ps_setfont($ps, $font, $eintrag['size']);
ps_show_xy($ps, $eintrag['text'], 50, $eintrag['y']);
}
ps_end_page($ps);
ps_close($ps);
ps_delete($ps);
echo 'Fertig.';
?>
// Wichtig · Fallstricke
Erweiterung: ps_setfont() ist Teil der ps-PECL-Extension (pecl/ps), die in den meisten Standardinstallationen von PHP nicht enthalten ist und separat installiert werden muss.
Reihenfolge beachten: ps_setfont() muss nach ps_begin_page() und nach ps_findfont() aufgerufen werden. Ein Aufruf außerhalb einer geöffneten Seite kann zu undefinierten Ergebnissen führen.
Schriftverfügbarkeit: Es können nur PostScript-Standardschriften (wie Helvetica, Times-Roman, Courier) oder explizit eingebettete Schriften verwendet werden. Die Verfügbarkeit hängt vom jeweiligen PostScript-Interpreter ab.