使用CUPS中的原始ascii打印到点阵式打印机

时间:2018-02-17 06:11:47

标签: printing terminal ascii cups dot-matrix

请原谅我的新闻 - 我还没有设法找到一个有效的答案。也许是因为我不了解语法,或者可能因为它不能与我的打印机配合使用。

我尝试使用数码杯将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,' [和其他一些事情。也许这很简单,有人可以直接指出我的语法吗?

非常感谢你的时间。

2 个答案:

答案 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