请原谅我的新手 - 我尚未设法找到功能的答案。也许是因为我不了解语法,也许是因为它与我的打印机不完全合作。
我正在尝试使用杯子将ASCII文件从Mac打印到Panasonic KX-P1150。在终端I类型中:
lp -o raw filename.txt
它有效。但是,我想选择一个更高的音高(较小的点大小(,这显然可以通过将打印机告诉ESC-G来完成。
微米螺距设置打印为每英寸15个字符(每行最多120个字符(。
Name: ESC g
Dec.: 27 103
Hex.: 1B 67
我想做的只是将ESC-G嵌入文本文件的顶部,大概是十六进制,但是无论我使用哪种语法,打印机都不会在不更改其设置的情况下打印命令。
我已经尝试了 x1b,'[以及其他一些事情。也许这真的很简单,有人可以将我直接放在语法上?
非常感谢您的时间。
我相信这是您正在寻找的(ESC/P(代码:
printf "x1b@x1bMx1b2x1bIx01x1bQ`" | nc lp1 9100
这是在安装了NC(NetCat(的CentOS盒上测试的。代码说明:
x1b@ - Init Printer
x1bM - CPI=12 (option x1bP CPI=10)
x1bIx01 - set left margin to column 1
x1bQ` - set right margin to column 96
假设LP1(LP1.Example.NET(是JetDirect(或兼容(打印队列的网络打印机,带有端口9100 Open(以及主机文件中的条目(。我尚未尝试通过端口21打印或在没有杯子的情况下打印的515个队列。
如果它不在网络上,则可以尝试通过并行(LP0(,序列(/dev/ttys x (直接将其管道位置[1-9](或USB0
printf "x1b@x1bMx1b2x1bIx01x1bQ`" | usb0
更新。
linuxquestions.org的一个" keefaz"提出了解决此问题的建议:
echo $'eg' > code.txt
cat code.txt filename.txt > print.txt
lp -o raw print.txt