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
oulpr
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.