2

Я знаю, как выводить текст на мой принтер HP Deskjet 420 в lubuntu с помощью bash:

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

Есть ли способ печати текста, который выделен жирным шрифтом или цветом? Должен ли я выводить какую-то команду escape на принтер?

Благодарю.

1 ответ1

1

Чтобы отобразить жирный или цветной текст в терминале, используйте escape-коды ANSI. Например, попробуйте это:

$ echo -e '\033 [01; 1m этот текст будет выделен жирным шрифтом \033 [00; 0m это не будет'
этот текст будет жирным, это не будет

Экранирующая последовательность \033[01;1m приводит к тому, что следующий текст выделен жирным шрифтом, а \033[00;0m отключает все атрибуты, поэтому он возвращается к обычному состоянию.

Смотрите здесь хороший список различных escape-последовательностей.

К сожалению, lp не знает, как с этим бороться. Он умеет печатать только постскриптумные файлы. Поэтому нам нужен способ превращения управляющих символов ANSI в форматированный постскриптум. Я был заинтригован этим вопросом, поэтому я опубликовал один из своих собственных на U & L, спрашивая о способах интерпретации экранирования ANSI как команд PostScript. Ниже приводится ответ, который я получил, пожалуйста, проголосуйте!

Вам понадобятся следующие инструменты:

  • aha : Ansi HTML Adapter, эта программа может переводить управляющие коды ANSI в 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.
    

    Установка:

    sudo apt-get install aha
    
  • wkhtmltopdf : конвертер HTML в PDF.

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

    Установка:

    sudo apt-get install wkhtmltopdf
    

Теперь соберите их все вместе. Я буду использовать эту команду, вывод которой показан на рисунке ниже:

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

Итак, давайте распечатаем это:

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

И это все, что напечатает красивую, отформатированную жирную и цветную строку текста.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .