Provided by: cups_2.4.10-1ubuntu2_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.