请原谅我的新闻 - 我还没有设法找到一个有效的答案。也许是因为我不了解语法,或者可能因为它不能与我的打印机配合使用。
我尝试使用数码杯将mac文件从mac打印到Panasonic KX-P1150。在终端I输入:
lp -o raw filename.txt
它有效。但是,我想选择更高的音高(更小的点大小),这显然可以通过告诉打印机ESC-g来完成。
MICRON PITCH 将打印设置为每英寸15个字符(每行最多120个字符)。
Name: ESC g
Dec.: 27 103
Hex.: 1B 67
我喜欢做的只是将ESC-g嵌入到我的文本文件的顶部,可能是Hex,但无论我使用什么语法,打印机都会打印命令而不更改其设置。
我已经尝试了\ x1b,' [和其他一些事情。也许这很简单,有人可以直接指出我的语法吗?
非常感谢你的时间。
答案 0 :(得分:0)
更新。
来自linuxquestions.org的一个'keefaz'提出了修复此问题的建议:
echo $'\eg' > code.txt
cat code.txt filename.txt > print.txt
lp -o raw print.txt
答案 1 :(得分:0)
我相信这是您正在寻找的(ESC / P)代码:
printf "\x1b@\x1bM\x1b2\x1bI\x01\x1bQ`" | nc lp1 9100
这是在装有nc(netcat)的CentOS机器上进行的测试。代码说明:
\x1b@ - Init Printer
\x1bM - CPI=12 (option \x1bP CPI=10)
\x1bI\x01 - set left margin to column 1
\x1bQ` - set right margin to column 96
假定lp1(lp1.example.net)是JetDirect(或兼容)打印队列中的网络打印机,并且端口9100已打开(并且在hosts文件中有一个条目)。我没有尝试通过端口21或JetDirect上的515队列进行打印而无需通过杯子。
如果它不在网络上,则可以尝试通过并行(lp0),串行(/ dev / ttyS x 其中 x 是串行设备位置[1-9])或usb0
printf "\x1b@\x1bM\x1b2\x1bI\x01\x1bQ`" | usb0