Signatur
Beschreibung
ps_setoverprintmode() gehört zur ps-Erweiterung (pslib) für PHP und steuert den sogenannten Überdruckmodus (Overprint Mode) eines PostScript-Dokuments. Der Überdruckmodus legt fest, ob beim Übereinanderdrucken von Farben die untere Farbe durchscheint oder vollständig überdeckt wird.
Im professionellen Druckbereich ist das Überdruck-Verhalten besonders relevant bei der Verarbeitung von CMYK-Farben. Wenn Überdruck aktiviert ist, wird die untere Farbe nicht entfernt, bevor die obere Farbe gedruckt wird – dies kann zu Farbmischeffekten führen, die im Offsetdruck erwünscht sein können. Ohne Überdruck (Standard) überdeckt jedes Element die darunterliegenden vollständig.
Der Parameter mode akzeptiert üblicherweise 0 (Überdruck deaktiviert) oder 1 (Überdruck aktiviert). Diese Einstellung entspricht dem PostScript-Parameter OPM (Overprint Mode) und wirkt sich auf die Farbausgabe im erzeugten PostScript-Dokument aus.
Die Funktion ist vor allem für Druckvorstufen-Anwendungen interessant, bei denen präzise Kontrolle über das Farbverhalten im PostScript-Ausgabestrom erforderlich ist, etwa bei der Erzeugung druckfertiger Dokumente für professionelle Druckereien.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $psdoc Pflicht | resource | Eine gültige PostScript-Dokument-Ressource, die zuvor mit ps_new() erstellt und mit ps_open_file() geöffnet wurde. |
|
| $mode Pflicht | int | Der Überdruckmodus: 0 deaktiviert den Überdruck (Standardverhalten, obere Farbe überdeckt untere vollständig), 1 aktiviert den Überdruck (Farben mischen sich). |
Rückgabewert
true bei Erfolg zurück, oder false bei einem Fehler, etwa wenn die übergebene Ressource ungültig ist.Beispiele
Überdruckmodus für ein PostScript-Dokument setzen
<?php
// Neue PostScript-Ressource anlegen
$ps = ps_new();
if (!ps_open_file($ps, '/tmp/ausgabe.ps')) {
die('Fehler beim Öffnen der PostScript-Datei');
}
ps_set_info($ps, 'Creator', 'Mein PHP-Script');
ps_begin_page($ps, 596, 842); // DIN A4
// Überdruckmodus aktivieren (1 = Farben überdrucken sich)
ps_setoverprintmode($ps, 1);
// Erste Farbe (Cyan) zeichnen
ps_setcolor($ps, 'fill', 'cmyk', 1.0, 0.0, 0.0, 0.0);
ps_rect($ps, 100, 400, 200, 200);
ps_fill($ps);
// Zweite Farbe (Magenta) überlappend zeichnen
ps_setcolor($ps, 'fill', 'cmyk', 0.0, 1.0, 0.0, 0.0);
ps_rect($ps, 200, 400, 200, 200);
ps_fill($ps);
ps_end_page($ps);
ps_close($ps);
ps_delete($ps);
echo 'PostScript-Datei mit Überdruckmodus erfolgreich erstellt.';
?>
Überdruckmodus deaktivieren (Standard)
<?php
$ps = ps_new();
if (!ps_open_file($ps, '/tmp/kein_ueberdruck.ps')) {
die('Fehler beim Öffnen der Datei');
}
ps_begin_page($ps, 596, 842);
// Überdruckmodus explizit deaktivieren (0 = kein Überdruck)
if (ps_setoverprintmode($ps, 0)) {
echo 'Überdruckmodus erfolgreich deaktiviert.' . PHP_EOL;
} else {
echo 'Fehler beim Setzen des Überdruckmodus.' . PHP_EOL;
}
ps_setcolor($ps, 'fill', 'cmyk', 0.0, 0.0, 1.0, 0.0); // Gelb
ps_rect($ps, 150, 300, 300, 300);
ps_fill($ps);
ps_end_page($ps);
ps_close($ps);
ps_delete($ps);
?>
// Wichtig · Fallstricke
Erweiterungsabhängigkeit: Diese Funktion ist nur verfügbar, wenn PHP mit der ps-Erweiterung (pslib) kompiliert wurde. Diese Erweiterung ist nicht standardmäßig in PHP enthalten und muss separat installiert werden (pecl install ps oder über das Paketmanagement des Betriebssystems).
Druckkontext: Der Überdruckmodus hat nur in Umgebungen eine sichtbare Wirkung, die PostScript oder PDF mit korrekter Überdruckverarbeitung rendern, z. B. professionelle RIP-Systeme (Raster Image Processors) oder Adobe Acrobat mit aktivierter Überdruckvorschau. In normalen Bildschirm-PDF-Viewern wird der Überdruck oft ignoriert.
Reihenfolge: Die Funktion sollte innerhalb einer geöffneten Seite (ps_begin_page()) aufgerufen werden, bevor die betreffenden Grafikelemente gezeichnet werden, da die Einstellung ab dem Zeitpunkt des Aufrufs gilt.