我正在使用 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
以下是一个如何突出显示点阵打印机上打印的代码的示例: