Impressão no Linux: CUPS, PPD, caixas de diálogo de impressão e opções de impressão

2

OK. Então eu entendo que o CUPS funciona como um Spooler de Impressão, gerenciando trabalhos de impressão e enviando-os para impressoras. Também entendo que os arquivos PPD descrevem o conjunto de recursos de uma impressora e que o CUPS usa esses e filtros para fazer interface com a impressora, gerando uma saída que a impressora pode usar para imprimir o documento (em PostScript, PCL ou qualquer formato proprietário). impressora requer). Mas estou confuso quanto a alguns aspectos disso. Principalmente:

  • Como os aplicativos enviam trabalhos de impressão para o CUPS?
  • Como os aplicativos obtêm opções de impressão para qualquer impressora selecionada? Isso vem do arquivo PPD ou filtro que o CUPS usa para a impressora?
  • Como isso funciona quando a impressora é compartilhada pelo CUPS sobre o IPP? O dispositivo que está enviando um trabalho de impressão para o CUPS faz o processamento localmente ou o servidor CUPS faz isso? Se o CUPS fizer isso, isso significa que o dispositivo local precisa do arquivo PPD para obter as opções de impressão ou o CUPS envia isso para o dispositivo local?
  • Até onde sei, qualquer computador Linux provavelmente usará o CUPS localmente também para impressão, então como isso funciona em relação às opções de impressão e processamento do trabalho de impressão em PostScript / PCL, etc.

Obrigado por ajudar a esclarecer minha confusão.

    
por Aaron 13.11.2016 / 02:32

1 resposta

1

Existem várias maneiras de obter um trabalho de impressão no CUPS:

  • um processo local pode apenas canalizar texto ASCII ou PostScript para a implementação do CUPS do comando lp ou lpr para impressão, se o processo for um programa Unix tradicional.
  • ou pode usar o protocolo de impressão LPD na porta 515 / TCP em localhost , se o CUPS tiver compatibilidade com LPD ativada
  • ou pode falar IPP sobre localhost port 631
  • ou pode usar a biblioteca cliente do CUPS ( libcups.so ) para suporte nativo completo ao CUPS.

Se o comando lp ou lpr for usado, quaisquer opções de trabalho deverão ser especificadas usando as opções de linha de comando e não haverá uma maneira tradicional de descobrir as opções suportadas automaticamente; quaisquer programas que usem essa interface herdada do Unix geralmente permitem que o usuário edite a linha de comando de impressão para definir quaisquer opções necessárias. O CUPS também inclui uma autodetecção de formato de arquivo (semelhante ao comando file ), para que você possa, em teoria, por exemplo, basta dizer lp something.png e obter a imagem impressa de alguma forma razoável se o CUPS tiver um conversor de formato PNG disponível.

A implementação do IPP no CUPS inclui algumas extensões de protocolo que permitem ao cliente consultar e definir impressoras e opções de trabalho e até mesmo solicitar o conteúdo do PPD.

O próprio protocolo IPP inclui negociação de conteúdo, semelhante ao HTTP: o servidor especifica os formatos de trabalho de impressão que pode aceitar como tipos MIME e o cliente declara o formato dos dados que está prestes a enviar. Se o servidor não suportar um formato de trabalho específico, o trabalho poderá ser rejeitado. Também é possível especificar "application / vnd.cups-raw" como o formato do trabalho para indicar que o trabalho deve ser passado para a impressora exatamente como está, sem nenhuma conversão: o administrador do CUPS pode optar por permitir isso ou não. / p>

Geralmente, um servidor CUPS tem uma variedade de conversores de formato de trabalho disponíveis para converter vários tipos de arquivos em algum formato de trabalho enfileirado padrão e daí para qualquer coisa que a impressora esteja aceitando (por exemplo, PCL, PostScript ou um dos mais proprietários formatos). O "formato de trabalho na fila" costumava ser PostScript, mas agora é PDF nas versões modernas do CUPS.

    
por 07.04.2018 / 22:42