使用 LPT 并行打印机启用粗体和彩色

使用 LPT 并行打印机启用粗体和彩色

我知道如何使用 bash 在 lubuntu 上将文本回显到我的 HP Deskjet 420 打印机:

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

有没有办法打印粗体或彩色文本?我是否应该向打印机回显某种转义命令?

谢谢。

答案1

在终端中回显粗体或彩色文本的方法是使用ANSI 转义代码。例如,试试这个:

$ echo -e '\033[01;1m此文本将为粗体\033[00;0m这不会'
此文本将以粗体显示这不会

转义序列\033[01;1m导致以下文本大胆的\033[00;0m关闭所有属性,使其恢复正常。

这里以获得各种转义序列的详细列表。

不幸的是,lp它不知道如何处理这个问题。它只知道如何打印 PostScript 文件。因此,我们需要一种将 ANSI 转义字符转换为格式化 PostScript 的方法。我对这个问题很感兴趣,所以我在 U&L 上发布了我自己的一个询问如何将 ANSI 转义解释为后记命令。以下内容来自回答我到了,请点赞吧!

您将需要以下工具:

  • aha:Ansi HTML 适配器,该程序可以将 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

就是这样,它将打印出一行漂亮的、格式化的、粗体和彩色的文本。

相关内容