Чтобы отобразить жирный или цветной текст в терминале, используйте 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 в PDFDescription 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
И это все, что напечатает красивую, отформатированную жирную и цветную строку текста.