Provided by: cups_2.4.12-0ubuntu1_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 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 © 2020-2024 by OpenPrinting.

2021-02-28                                            CUPS                                             filter(7)