Provided by: cups_2.1.3-4ubuntu0.11_amd64 bug

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 Kommandozeile 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 werden 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 ausgewählte
       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  spezifizieren  die  Vorgabewerte  für  den  ganzen  Druckauftrag,  die  auf  seitenweiser Basis
       überschrieben werden können.

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, enfernt 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 kompatibel mit System-V-Schnittstellenskripten  ist,  wird  sie  mit  dem
       System-V-Schnittstellenskript   nur   als   einziger   Filter   funktionieren.   Normalerweise  wird  das
       Schnittstellenskript über den lpadmin(8)-Befehl unter Benutzung der Option -i bereitgestellt.

HINWEISE

       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  OS  X)  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-2015 by Apple Inc.

28. August 2015                                       CUPS                                             filter(7)