Ativando negrito e cor com impressora paralela LPT

2

Eu sei ecoar texto para minha impressora HP Deskjet 420 em lubuntu com bash:

echo -e "line of text" > /dev/lp0

Existe uma maneira de imprimir texto em negrito ou colorido? Devo fazer algum tipo de comando de escape para a impressora?

Obrigado.

    
por Blue Ice 28.03.2013 / 13:54

1 resposta

1

A maneira de ecoar texto em negrito ou colorido em um terminal é usar códigos de escape ANSI . Por exemplo, tente isto:

$ echo -e '3[01;1mthis text will be bold3[00;0m this will not'
this text will be bold this will not

A sequência de escape 3[01;1m faz com que o texto a seguir seja em negrito e 3[00;0m desative todos os atributos, para que volte ao normal.

Veja aqui para uma boa lista das várias seqüências de escape.

Infelizmente, lp não sabe como lidar com isso. Só sabe imprimir arquivos postscript. Portanto, precisamos de uma maneira de transformar os caracteres de escape ANSI em postscript formatado. Fiquei intrigado com essa pergunta, então eu publiquei um dos meus no U & L perguntando sobre formas de interpretar o ANSI Escapa como comandos postscript. O seguinte é da resposta Eu cheguei lá, por favor, suba!

Você precisará das seguintes ferramentas:

  • aha : Adaptador HTML Ansi, este programa pode traduzir códigos de escape ANSI para HTML.

    DESCRIPTION
           aha takes SGR-colored Input and prints W3C conform HTML-Code.
           aha  reads the Input from a file or stdin and writes HTML-Code
           to stdout.
    

    Instalar:

    sudo apt-get install aha
    
  • wkhtmltopdf : um conversor de HTML para PDF.

    Description
           Converts one or more HTML pages into a PDF document, not using
           wkhtmltopdf patched qt.
    

    Instalar:

    sudo apt-get install wkhtmltopdf
    

Agora, coloque todos juntos. Vou usar esse comando cuja saída é mostrada na imagem abaixo:

echo -e '3[01;1mbold3[00;0m,not bold, and 3[32;1mgreen'

Então, vamos imprimir:

echo -e '3[01;1mbold3[00;0m,not bold, and 3[32;1mgreen' | 
      aha | wkhtmltopdf  - - | lpr

E é isso, que imprimirá uma linha de texto em negrito e colorida, formatada e agradável.

    
por 28.03.2013 / 15:11