点阵打印机源代码语法高亮

点阵打印机源代码语法高亮

我正在使用 OKI Microline 3390 从我的 Linux 机器上打印东西。我把它当作纯文本打印机使用。没有图形、没有 PDF、没有 ghostscript ... 比如说,一个文本文件作为字符代码流发送到打印机。打印机“看到”ISO-8859-1(拉丁文 1)代码 65,然后打印出一个“A”字符... 似乎有必要详细讲一下,因为这类设备似乎已经从某些人的脑海中消失了(或者从未出现过)。

所以...我不仅想向打印机发送文本文件,还想发送 c 源代码文件。我的问题如下:

我如何才能使打印出语法突出显示的外观?

答案1

一种方法是使用GNU 源代码突出显示文档):

创建输出语言定义(例如“epsonlq.outlang”):

# file epsonlq.outlang
extension "txt"

bold "\x1bE$text\x1bF"
underline "\x1b-1$text\x1b-0"
italics "\x1b4$text\x1b5"

创建输出样式定义(例如,epsonlq.style)

keyword black b ;
type, classname black ;
string black ;
regexp black ;
specialchar black ;
comment black i ;
number black ;
preproc black b ;
symbol black ;
function b;
cbracket black;
variable black ;

// line numbers
linenum black;

// other elements for ChangeLog and Log files
date black ;
time black ;
ip black ;
file black ;
name black ;

// Internet related
url black u;

// for diffs
oldfile black;
newfile black;
difflines black; 

// for css
selector black;
property black;
value black i;

// for feature (Cucumber) files
cuketag black ;
gherken black ;
given black ;
when black ;
then black ;
and_but black ;
table black ;

创建要发送到打印机的文件,其中包含打印机“语言”中突出显示的代码:

source-highlight -s c --outlang-def epsonlq.outlang \
    --style-file epsonlq.style <source.c >epsonlq.out

打印文件

lp -d <print-queue> -o raw epsonlq.out

以下是一个如何突出显示点阵打印机上打印的代码的示例:

一个如何突出显示点阵打印机上打印的代码的示例。

相关内容