filter
Section: Apple Inc. (7)
Updated: CUPS
Index
Return to Main Contents
NAME
filter - CUPS-Datei-Umwandlungsfilter-Schnittstelle
SYNOPSIS
filter Auftrag Benutzer Titel Anz-Kopien Optionen [
Dateiname ]
#include <cups/cups.h>
ssize_t cupsBackChannelRead(char *buffer, size_t bytes,
double timeout);
cups_sc_status_t cupsSideChannelDoRequest(cups_sc_command_t command,
char *data, int *datalen,
double timeout);
#include <cups/ppd.h>
const char *cupsGetOption(const char *name, int num_options,
cups_option_t *options);
int cupsMarkOptions(ppd_file_t *ppd, int num_options,
cups_option_t *options);
int cupsParseOptions(const char *arg, int num_options,
cups_option_t **options);
ppd_choice_t *ppdFindMarkedChoice(ppd_file_t *ppd, const char *keyword);
void ppdMarkDefaults(ppd_file_t *ppd);
ppd_file_t *ppdOpenFile(const char *filename);
BESCHREIBUNG
Die CUPS-Filterschnittstelle stellt eine Standardmethode zum Hinzufügen von
Unterstützungen für neue Dokumententypen oder Drucker zu CUPS bereit. Jeder
Filter ist in der Lage, von einem oder mehreren Eingabeformaten in andere
Ausgabeformate zu konvertieren, die entweder direkt gedruckt oder an einen
weiteren Filter weitergeleitet werden können, der es dann in ein druckbares
Format wandelt.
Filter MÜSSEN in der Lage sein, aus einem Dateinamen auf der Befehlszeile
oder der Standardeingabe zu lesen und in letzterem Fall die Standardeingabe
in eine temporäre Datei zu kopieren, wie dies vom Dateiformat benötigt
wird. Die gesamte Ausgabe MUSS an die Standardausgabe gesandt
werden. Filter DÜRFEN NICHT versuchen, direkt mit dem Drucker, anderen
Prozessen oder Diensten zu kommunizieren.
Der Befehlsname (argv[0]) wird auf den Namen des Zieldruckers gesetzt. Er
ist aber auch über die Umgebungsvariable PRINTER verfügbar.
OPTIONEN
Optionen werden in argv[5] übergeben und aus den bei der Einreichung des
Auftrags entsprechenden IPP-Attributen kodiert. Verwenden Sie die Funktion
cupsParseOptions(), um die Optionen in ein Feld cups_option_t zu laden
und die Funktion cupsGetOption(), um den Wert eines bestimmten Attributes
zu ermitteln. Seien Sie vorsichtig, nach häufigen Alias von IPP-Attributen,
wie »landscape« für das IPP-Attribut »orientation-requested«, Ausblick zu
halten.
Auf der Befehlszeile übergebene Optionen enthalten typischerweise nicht die
Standardauswahl aus der PPD-Datei des Druckers. Verwenden Sie die Funktionen
ppdMarkDefaults() und cupsMarkOptions() in der CUPS-Bibliothek, um die
Optionen auf die PPD-Vorgaben anzuwenden und alle IPP-Attribute auf die
entsprechenden Optionen abzubilden. Verwenden Sie ppdFindMarkedChoice(),
um die vom Benutzer getroffene Auswahl für eine PPD-Option zu ermitteln. Ein
Filter kann beispielsweise den folgenden Code verwenden, um den aktuellen
Wert der PPD-Option Duplex zu ermitteln:
ppd_file_t *ppd = ppdOpenFile(getenv("PPD"));
cups_option_t *options = NULL;
int num_options = cupsParseOptions(argv[5], 0, &options);
ppdMarkDefaults(ppd);
cupsMarkOptions(ppd, num_options, options);
ppd_choice_t *choice = ppdFindMarkedChoice(ppd, "Duplex");
Rasterfilter sollten ausgewählte Optionen benutzen, die durch die
Rasterseitenkopfzeilen gesetzt wurden, da jene die tatsächlichen Optionen
für eine angegebene Seite wiedergeben. Auf der Befehlszeile angegebene
Optionen legen die Vorgabewerte für den ganzen Druckauftrag, die auf
seitenweiser Basis überschrieben werden können, fest.
PROTOKOLLNACHRICHTEN
Nachrichten, die an die Standard-Fehlerausgabe gesandt werden, werden im
Allgemeinen im Attribut »printer-state-message« des Druckers und der
aktuellen ErrorLog-Datei gespeichert. Jede Zeile beginnt mit einem
Standard-Präfix:
- ALERT: Nachricht
-
Setzt das Attribut »printer-state-message« und fügt die angegebene Nachricht
zum aktuellen ErrorLog unter Verwendung der Protokollstufe »alert« hinzu.
- ATTR: Attribut=Wert [ … Attribut=Wert]
-
Setzt das/die benannte(n) Auftrags- oder Drucker-Attribut(e). Die folgenden
Auftragsattribute können gesetzt werden: »job-media-progress«. Die folgenden
Druckerattribute können gesetzt werden: »auth-info-required«,
»marker-colors«, »marker-high-levels«, »marker-levels«, »marker-low-levels«,
»marker-message«, »marker-names«, »marker-types«, »printer-alert« und
»printer-alert-description«.
- CRIT: Nachricht
-
Setzt das Attribut »printer-state-message« und fügt die angegebene Nachricht
zum aktuellen ErrorLog unter Verwendung der Protokollstufe »critical«
hinzu.
- DEBUG: Nachricht
-
Fügt die angegebene Nachricht zu dem aktuellen ErrorLog mit der
Protokollstufe »debug« hinzu. DEBUG-Nachrichten werden nie im Attribut
»printer-state-message« gespeichert.
- DEBUG2: Nachricht
-
Fügt die angegebene Nachricht zu dem aktuellen ErrorLog mit der
Protokollstufe »debug2« hinzu. DEBUG2-Nachrichten werden nie im Attribut
»printer-state-message« gespeichert.
- EMERG: Nachricht
-
Setzt das Attribut »printer-state-message« und fügt die angegebene Nachricht
zum aktuellen ErrorLog unter Verwendung der Protokollstufe »emergency«
hinzu.
- ERROR: Nachricht
-
Setzt das Attribut »printer-state-message« und fügt die angegebene Nachricht
zum aktuellen ErrorLog unter Verwendung der Protokollstufe »error« hinzu.
- INFO: Nachricht
-
Setzt das Attribut »printer-state-message«. Wenn der aktuelle LogLevel
auf »debug2« gesetzt ist, wird die angegebene Nachricht außerdem dem
aktuellen ErrorLog unter Benutzung der »info«-Protokollstufe hinzugefügt.
- NOTICE: Nachricht
-
Setzt das Attribut »printer-state-message« und fügt die angegebene Nachricht
zum aktuellen ErrorLog unter Verwendung der Protokollstufe »notice«
hinzu.
- PAGE: Seitenzahl #-Kopien
-
- PAGE: Gesamt #-Seiten
-
Fügt einen Eintrag zum aktuellen PageLog hinzu. Die erste Form fügt
#-Kopien zum Attribut »job-media-sheets-completed« hinzu. Die zweite Form
setzt das Attribut »job-media-sheets-completed« auf #-Seiten.
- PPD: Schlüsselwort=Wert [ … SchlüsselwortN=Wert ]
-
Setzt die genannten Schlüsselworte in die PPD-Datei des Druckers. Dies wird
normalerweise benutzt, um Standardschlüsselwortoptionen, wie
DefaultPageSize und verschiedene installierbare Optionen in der
PPD-Datei, zu aktualisieren.
- STATE: Drucker-Zustand-Grund [ … Drucker-Zustand-Grund ]
-
- STATE: + Drucker-Zustand-Grund [ … Drucker-Zustand-Grund ]
-
- STATE: - Drucker-Zustand-Grund [ … Drucker-Zustand-Grund ]
-
Setzt, entfernt oder fügt »printer-state-reason«-Schlüsselwörter für die
aktuelle Druckwarteschlange hinzu. Typischerweise wird dies benutzt, um
Medien-, Tinten- und Toner-Bedingungen auf einem Drucker anzuzeigen.
- WARNING: Nachricht
-
Setzt das Attribut »printer-state-message« und fügt die angegebene Nachricht
zum aktuellen ErrorLog unter Verwendung der Protokollstufe »warning«
hinzu.
UMGEBUNGSVARIABLEN
Die folgenden Umgebungsvariablen sind vom CUPS-Server beim Ausführen von
Filtern gesetzt:
- CHARSET
-
Der Standard-Textzeichensatz, typischerweise »utf-8«.
- CLASS
-
Wenn ein Druckauftrag an eine Druckerklasse gesandt wird, enthält er den
Namen der Bestimmungsdruckerklasse. Ansonsten wird diese Umgebungsvariable
nicht gesetzt.
- CONTENT_TYPE
-
Der MIME-Typ, der der eingereichten Druckdatei zugeordnet ist
(z.B. »application/postscript«).
- CUPS_CACHEDIR
-
Das Verzeichnis, in dem halb-beständige Zwischenspeicherdateien gefunden und
gespeichert werden.
- CUPS_DATADIR
-
Das Verzeichnis, in dem Datendateien gefunden werden können.
- CUPS_FILETYPE
-
Der Typ der Datei, die gedruckt wird: »job-sheet« für ein Deckblatt und
»document« für eine reguläre Druckdatei.
- CUPS_MAX_MESSAGE
-
Die maximale Größe einer nach stderr gesandten Nachricht. Enthält alle
Präfixe und den abschließenden Zeilenumbruch.
- CUPS_SERVERROOT
-
Das Wurzelverzeichnis des Servers.
- FINAL_CONTENT_TYPE
-
Der MIME-Medientyp, der der dem Drucker bestimmten Ausgabe zugeordnet ist
(z.B. application/vnd.cups-postscript).
- LANG
-
Die Standardsprach-Standorteinstellung (normalerweise C oder en).
- PATH
-
Der Standard-Ausführungspfad für externe Programme, die vom Filter
ausgeführt werden dürfen.
- PPD
-
Der komplette Pfadname zu der PostScript-Printer-Description-(PPD)-Datei für
diesen Drucker.
- PRINTER
-
Der Name des Druckers.
- RIP_CACHE
-
Die empfohlene Speichermenge zum Einsatz für Raster Image Processors (RIPs).
- SOFTWARE
-
Der Name und die Versionsnummer des Servers (typischerweise
CUPS/Haupt.Neben).
- TZ
-
Die Zeitzone des Servers.
- USER
-
Der Benutzer, der den Filter ausführt, typischerweise »lp« oder »root«;
schauen Sie in die Datei cups-files.conf für die aktuellen Einstellungen.
KONFORMITÄT
Während die Filterschnittstelle mit den Schnittstellenskripten von System V
kompatibel ist, unterstützt CUPS nicht die System-V-Schnittstellenskripte.
HINWEISE
CUPS-Druckertreiber und -Backends sind veraltet und werden in einer
zukünftigen Funktionsveröffentlichung von CUPS nicht mehr
unterstützt. Drucker, die IPP nicht unterstützen, können mittels Anwendungen
wie ippeveprinter(1) unterstützt werden.
CUPS-Filter sind nicht für die direkte Ausführung durch Benutzer
gedacht. Abgesehen von Problemen der veralteten System-V-Schnittstelle
(argv[0] ist der Druckername) erwarten CUPS-Filter auch bestimmte
Umgebungsvariablen und Dateideskriptoren und laufen typischerweise auch in
einer Benutzersitzung, die (unter macOS) zusätzlichen Beschränkungen
unterliegt, die die Ausführung betreffen. Sofern Sie kein Entwickler sind
und nicht wissen, was Sie tun, führen Sie keine Filter direkt aus. Verwenden
Sie stattdessen das Programm cupsfilter(8), um die angemessenen Filter
für die von Ihnen benötigten Umwandlungen auszuführen.
SIEHE AUCH
backend(7), cups(1), cups-files.conf(5), cupsd(8),
cupsfilter(8),
CUPS-Online-Hilfe (http://localhost:631/help)
COPYRIGHT
Copyright © 2007-2019 by Apple Inc.
Index
- NAME
-
- SYNOPSIS
-
- BESCHREIBUNG
-
- OPTIONEN
-
- PROTOKOLLNACHRICHTEN
-
- UMGEBUNGSVARIABLEN
-
- KONFORMITÄT
-
- HINWEISE
-
- SIEHE AUCH
-
- COPYRIGHT
-
This document was created by
man2html,
using the manual pages.
Time: 00:04:58 GMT, March 31, 2021