linux - 如何打印包含 ANSI 转义文本的文件

标签 linux bash shell command-line

我想打印一个包含带 ANSI 转义文本的文件。

这是文件内容(用 bash 脚本生成):

\033[1m bold message example \033[0m
normal font message
  • 在终端中将文件打印到屏幕时,效果很好:

      cat example.txt
    

    显示:

    bold message example

    normal font message

  • 但是当我尝试将它发送到打印机时遇到的问题:

      lp example.txt
    

    打印:

    1mbold message example2m

    normal font message

有没有办法正确打印这个文件?也许使用 groff(可用于打印样式化的手册页),但我没有设法用它获得任何有效的东西......

最佳答案

也许 a2ps也许能够处理(但我不确定,你应该试试)。

我宁愿建议您使用 ANSI escapes 更改获取此类文件的方式。 (也就是说,还提供了一些替代的输出格式)。 我的意思是生成这样一个文件(或这样的输出)的程序可以生成更可打印的输出(可能通过生成一些中间形式,例如 LaTeX、Lout、groff 或 HTML 格式,然后派生适当的命令来打印它. 该程序还可以通过 libharupoppler 等直接生成 PDF……)

此外,这可能取决于您的打印机和驱动程序。

关于linux - 如何打印包含 ANSI 转义文本的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15094758/

相关文章:

linux - 需要有关 Linux Shell 脚本的帮助以查找字符串模式

linux - 使用shell脚本在终端中顺序执行多个命令

linux - 用于获取 iostat 详细信息的 Shell 脚本

c - ‘=’ token 之前出现错误 : expected ‘,’ , ‘;’ 、 ‘asm’ 、 ‘__attribute__’ 或 ‘{’

linux - 使用 find -exec {} + 跟踪参数

html - 无法使用 wget 命令获取登录页面

java - widgetSelected() 和不同的操作系统平台行为

python - 即使安装了 conda,也无法执行 conda 命令

linux - 在 Bash 中使用 mget 下载文件

linux - 为什么我的 Linux 文本文件(使用 echo 创建)以换行符结尾?我怎样才能删除它?