Provided by: cups_2.4.7-1.2ubuntu7_amd64 bug

NOME

       filter - interface de filtros de conversão de ficheiros do cups

RESUMO

       filter job user title num-copies options [ filename ]

       #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);

DESCRIÇÃO

       A  interface  de  filtros  do  CUPS fornece um método standard para adicionar suporte para
       novos tipos de documentos ou impressoras ao CUPS.  Cada filtro é capaz de converter de  um
       ou  mais  formatos  de entrada para outro formato que pode ser ou imprimido diretamente ou
       canalizado para outro filtro para o tornar num formato imprimível.

       Filtros DEVEM ser capazes de ler a partir de um nome de ficheiro na linha de comandos ou a
       partir  da  entrada standard, copiando a entrada standard para um ficheiro temporário como
       requerido pelo formato do ficheiro. Todas as  saídas  DEVEM  ser  enviadas  para  a  saída
       standard.  Filters  NÃO  DEVEM  tentar  comunicar  diretamente  com  a  impressora, outros
       processos, ou outros serviços.

       O nome de comando (argv[0]) é definido para o nome  da  impressora  de  destino  mas  está
       também disponível na variável de ambiente PRINTER.

OPÇÕES

       As  opções  são  passadas  em  argv[5]  e  são  codificadas  a  partir  dos  atributos IPP
       correspondentes usados quando o trabalho foi submetido. Use  a  função  cupsParseOptions()
       para carregar as opções numa matriz cups_option_t e a função cupsGetOption()  para obter o
       valor de um atributo específico. Tenha atenção aos nomes alternativos comuns de  atributos
       IPP tais como "landscape" para o atributo IPP "orientation-requested".

       As  opções  passadas na linha de comandos tipicamente não incluem as escolhas predefinidas
       do ficheiro PPD da impressora. Use as funções ppdMarkDefaults()  e  cupsMarkOptions()   da
       biblioteca  do  CUPS  para  aplicar  as  opções às predefinições do PPD e mapear quaisquer
       atributos IPP às opções PPD  correspondentes.  Use  ppdFindMarkedChoice()   para  obter  a
       escolha  de  selecção-de-utilizador para uma opção PPD. Por exemplo, um filtro pode usar o
       seguinte código para determinar o valor actual da opção PPD Duplex.

           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");

       Os filtros raster devem usar um conjunto de escolhas de  opção  através  do  cabeçalho  de
       página  raster,  pois  esses  refletem as opções em efeito para uma determinada página. As
       opções especificadas na linha de  comandos  determinam  os  valores  predefinidos  para  o
       trabalho inteiro, as quais podem ser sobrepostas numa base de por-cada-página.

MENSAGENS DE RELATÓRIO

       As  mensagens  enviadas  para  o  erro  standard  são  geralmente  armazenadas no atributo
       "printer-state-message" da impressora e no ficheiro ErrorLog  actual.  Cada  linha  começa
       com, um prefixo standard:

       ALERT: message
            Define  o  atributo  "printer-state-message"  e  adiciona  a mensagem especificada ao
            ErrorLog actual usando o nível de log "alert".

       ATTR: attribute=value [ ... attribute=value]
            Define o atributo(s) de trabalho ou impressora nomeada.  Os  seguintes  atributos  de
            trabalho  podem  ser  definidos:  "job-media-progress".  Os  seguintes  atributos  de
            impressora    podem    ser    definidos:    "auth-info-required",    "marker-colors",
            "marker-high-levels",    "marker-levels",    "marker-low-levels",   "marker-message",
            "marker-names", "marker-types", "printer-alert", e "printer-alert-description".

       CRIT: message
            Define o atributo "printer-state-message"  e  adiciona  a  mensagem  especificada  ao
            ErrorLog actual usando o nível de log "critical".

       DEBUG: message
            Adiciona a mensagem especificada ao ErrorLog actual usando o nível de log "debug". As
            mensagens DEBUG nunca são armazenadas no atributo "printer-state-message".

       DEBUG2: message
            Adiciona a mensagem especificada ao ErrorLog actual usando o nível de  log  "debug2".
            As mensagens DEBUG2 nunca são armazenadas no atributo "printer-state-message".

       EMERG: message
            Define  o  atributo  "printer-state-message"  e  adiciona  a mensagem especificada ao
            ErrorLog actual usando o nível de log "emergency".

       ERROR: message
            Define o atributo "printer-state-message"  e  adiciona  a  mensagem  especificada  ao
            ErrorLog actual usando o nível de log "error".

       INFO: message
            Define o atributo "printer-state-message". Se o LogLevel actual estiver definido para
            "debug2", também adiciona a mensagem especificada ao ErrorLog usando o nível  de  log
            "info".

       NOTICE: message
            Define  o  atributo  "printer-state-message"  e  adiciona  a mensagem especificada ao
            ErrorLog actual usando o nível de log "notice".

       PAGE: page-number #-copies

       PAGE: total #-pages
            Adiciona a entrada ao PageLog actual. A primeira forma adiciona #-copies ao  atributo
            "job-media-sheets-completed".     A     segunda     forma     define    o    atributo
            "job-media-sheets-completed" para #-pages.

       PPD: Keyword=Value [ ... KeywordN=Value ]
            Define a  palavra  chave  nomeada  no  ficheiro  PPD  da  impressora.  Isto  é  usado
            tipicamente pare atualizar palavras chave de opção predefinida como a DefaultPageSize
            e as várias opções instaláveis no ficheiro PPD.

       STATE: printer-state-reason [ ... printer-state-reason ]

       STATE: + printer-state-reason [ ... printer-state-reason ]

       STATE: - printer-state-reason [ ... printer-state-reason ]
            Define, adiciona, ou remove palavras chave "printer-state-reason" para a fila actual.
            Tipicamente  isto  é  usado  para  indicar  condições  de  média,  tinta e toner numa
            impressora.

       WARNING: message
            Define o atributo "printer-state-message"  e  adiciona  a  mensagem  especificada  ao
            ErrorLog actual usando o nível de log "warning".

VARIÁVEIS DE AMBIENTE

       As  seguintes  variáveis  de ambiente são definidas pelo servidor CUPS quando se executa o
       filtro:

       CHARSET
            O conjunto de caracteres de texto predefinido, tipicamente "utf-8".

       CLASS
            Quando um trabalho é submetido para uma classe de impressora, contém o nome da classe
            de impressora de destino. Caso contrário esta variável de ambiente não será definida.

       CONTENT_TYPE
            O  tipo  de  média  MIME  associado com o ficheiro de trabalho submetido, por exemplo
            "application/postscript".

       CUPS_CACHEDIR
            O directório onde ficheiros  de  cache  semi-persistentes  podem  ser  encontrados  e
            armazenados.

       CUPS_DATADIR
            O directório onde podem ser encontrados ficheiros de dados.

       CUPS_FILETYPE
            O  tipo  de ficheiro a ser imprimido: "job-sheet" para uma página banner e "document"
            para um ficheiro de impressão regular.

       CUPS_MAX_MESSAGE
            O tamanho máximo de uma mensagem enviada  para  stderr,  incluindo  qualquer  prefixo
            inicial e o indício de nova linha final.

       CUPS_SERVERROOT
            O directório raiz do servidor.

       FINAL_CONTENT_TYPE
            O  tipo  de  média  MIME  associado  com  a saída destinada à impressora, por exemplo
            "application/vnd.cups-postscript".

       LANG O locale de idioma predefinido (tipicamente C ou en).

       PATH O caminho de execução standard para programas externos que podem  ser  corridos  pelo
            filtro.

       PPD  O nome de caminho completo do ficheiro PostScript Printer Description (PPD) para esta
            impressora.

       PRINTER
            O nome da impressora.

       RIP_CACHE
            A quantidade de memória recomendada a usar para Raster Image Processors (RIPs).

       SOFTWARE
            O nome e número de versão do servidor (tipicamente CUPS/maior.menor).

       TZ   A zona horária do servidor.

       USER O utilizador que executa o filtro, tipicamente "lp" ou "root";  consulte  o  ficheiro
            cups-files.conf para a definição actual.

DE ACORDO COM

       Apesar  da interface do filtro ser compatível com scripts de interface do System V, o CUPS
       não suporta scripts de interface System V.

NOTAS

       Drivers de impressoras e backends do  CUPS  estão  descontinuados  e  não  irão  ser  mais
       suportados  num  futuro  lançamento  do  CUPS.  Impressoras que não suportem IPP podem ser
       suportadas usando aplicações como a ippeveprinter(1).

       Os filtros do CUPS não se destinam a ser corridos diretamente pelo  utilizador.  Além  dos
       problemas  com a interface antiga do System V (argv[0] é o nome da impressora), os filtros
       do CUPS também esperam variáveis de ambiente específicas  e  descritores  de  ficheiro,  e
       tipicamente  correm numa sessão de utilizador que (no macOS) tem restrições adicionais que
       afectam como eles correm. A menos que você seja um desenvolvedor e  saiba  o  que  está  a
       fazer,  por  favor  não  corra  os  filtros  diretamente.  Em  vez  disso,  use o programa
       cupsfilter(8) para usar os filtros apropriados para as conversões que você precisa.

VEJA TAMBÉM

       backend(7), cups(1), cups-files.conf(5), cupsd(8), cupsfilter(8),
       Ajuda Online do CUPS (http://localhost:631/help)

COPYRIGHT

       Copyright © 2021-2023 by OpenPrinting.