Włączanie pogrubienia i koloru w drukarce równoległej LPT

2

Wiem, jak wysłać tekst do mojej drukarki HP Deskjet 420 na lubuntu za pomocą bash:

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

Czy istnieje sposób na wydrukowanie pogrubionego lub kolorowego tekstu? Czy powinienem powtórzyć polecenie ucieczki do drukarki?

Dzięki.

Niebieski lód
źródło
Konwersja tekstu z ucieczką ANSI na format pdf (obecnie wykonywany przez aha + wkhtmltopdf) wydaje się być czymś, co powinno „umacniać” lub „papka”, co powinno być w stanie zrobić; spróbuj zgłosić błąd „listy życzeń” do jednego z nich.

Odpowiedzi:

1

Sposobem na wyświetlenie pogrubionego lub kolorowego tekstu w terminalu jest użycie kodów specjalnych ANSI . Na przykład spróbuj tego:

$ echo -e '\ 033 [01; 1m ten tekst będzie pogrubiony \ 033 [00; 0m to nie będzie'
ten tekst będzie pogrubiony to nie będzie

Sekwencja zmiany znaczenia \033[01;1mpowoduje pogrubienie poniższego tekstu i \033[00;0mwyłączenie wszystkich atrybutów, dzięki czemu wraca do normy.

Zobacz tutaj ładną listę różnych sekwencji ucieczki.

Niestety lpnie wie jak sobie z tym poradzić. Wie tylko, jak wydrukować pliki postscriptowe. Potrzebujemy zatem sposobu na przekształcenie znaków zmiany znaczenia ANSI w sformatowany postscript. Zaintrygowało mnie to pytanie, dlatego opublikowałem jedno z moich własnych pytań na temat U&L, pytając o sposoby interpretacji znaków ucieczki ANSI jako poleceń postscriptowych. Poniżej znajduje się odpowiedź, którą otrzymałem, proszę ją głosować!

Potrzebne będą następujące narzędzia:

  • aha : Ansi HTML Adapter, ten program może tłumaczyć kody specjalne ANSI na 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.
    

    Zainstalować:

    sudo apt-get install aha
  • wkhtmltopdf : Konwerter HTML na PDF.

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

    Zainstalować:

    sudo apt-get install wkhtmltopdf

Teraz złóż je wszystkie razem. Użyję tego polecenia, którego wynik pokazano na poniższym obrazku:

echo -e '\033[01;1mbold\033[00;0m,not bold, and \033[32;1mgreen'

wprowadź opis zdjęcia tutaj

Wydrukujmy to:

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

I to wszystko, aby wydrukować ładną, sformatowaną pogrubioną i kolorową linię tekstu.

terdon
źródło
To sprawia, że ​​czuję się bardzo stary, że ktoś nie wiedziałby o nich od razu. :)
Alan B
1
Myślę, że ma to więcej wspólnego z twoją ogólną maniactwem niż z twoim wiekiem :)
terdon
@terdon Jestem pewien, że to jakiś kod ucieczki. Zrobiłem szybki skrypt bash, aby zobaczyć, jakie znaki można wydrukować, a także dziwny zestaw 256 znaków, które nie są bash. Użyto \ x i hex (np. \ X9e) i bardzo różni się od znaków bash Lubuntu dla tych samych wartości.
Blue Ice
Na przykład \ x1 to uśmiechnięta buźka, a \ xc to podział strony. Nie widzę aż tyle w bash :)
Blue Ice
@BlueIce przepraszam, ale absolutnie nie mam pojęcia o czym mówisz :). Ale poczekaj, dowiedziałem się, jak to zrobić, wkrótce opublikuję zaktualizowaną odpowiedź.
terdon