limitações da impressão de linha de comando do CUPS de arquivos de imagem

2

Eu tenho meu conjunto de impressoras padrão: lpoptions -d HP_ENVY_5530_series . Eu posso imprimir algum texto:

echo HELLO > h.txt
lp h.txt

CUPS understands many different types of files directly, including text, PostScript, PDF, and image files.

Eu posso imprimir um Portable Network Graphics: lp Gnome2.26-printing-dialogue.png .

Gráficos vetoriais escalonáveis: lp Cups_simple.svg - imprime como conteúdo de texto interno, o que não é muito útil.

Um JPEG digitalizado: lp 022.jpg - é interrompido "Não é possível abrir o arquivo de imagem para impressão!". Se eu convertê-lo em um PNG com o ImageMagick - convert 022.jpg 022.png , eu posso imprimir lp 022.png .

Eu gostaria de uma explicação para essas limitações do comando CUPS lp .

    
por JosephHarriott 26.12.2015 / 22:11

1 resposta

1

O CUPS tem um mecanismo de filtro para detectar o formato de sua entrada e convertê-lo em um formato interno (PostScript ou para uma imagem rasterizada).

O CUPS tem um banco de dados de nomes de arquivos e números mágicos (distinto daquele usado pelo file comando, mas servindo a um propósito semelhante e operando em princípios semelhantes). Ele usa esse banco de dados para construir uma cadeia de transformação entre a entrada e um formato interno.

O banco de dados está localizado em /usr/share/cups/mime/ no Arch Linux e Ubuntu; outras distribuições podem usar um caminho diferente.

Se o CUPS não reconhecer o formato de entrada, dependendo de como os filtros estão configurados, ele poderá assumir o texto ou recusar a impressão. Procure por uma linha contendo apenas application/octet-stream (com mais nada depois) nos seus filtros; se estiver presente, a entrada não reconhecida é passada para a impressora, caso contrário, ela será rejeitada como não imprimível.

Observe que a entrada com aspecto de texto, por exemplo, SVG, será impressa como texto em qualquer configuração sã. Se a sua instalação não tiver nada que defina o formato SVG, o SVG será reconhecido sob alguma regra de texto genérico e impresso como está.

Há uma boa documentação sobre como escrever filtros no Wiki SuSE .

Você deve instalar pelo menos o pacote cups-filters (anteriormente da Apple e incluído no CUPS em si, agora mantido pela OpenPrinting). Há um pacote no Arch. Isso inclui um filtro para JPEG, mas não para SVG.

    
por 27.12.2015 / 00:48