Start · Sprachen · PHP · Referenz · ps_setfont

ps_setfont

Funktion

Setzt die aktive Schriftart und -größe für alle nachfolgenden Textausgaben in einem PostScript-Dokument.

Kategorie: misc

Signatur

ps_setfont(resource $psdoc, resource $font, float $size): bool

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

Typ
bool
Beschreibung
Gibt 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.';
?>
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.';
?>
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.