在linux上通过USB发送原始数据

我在Zebra TLP-2844打印机上打印了一些标签,并且通过向共享的USB打印机发送EPL指令,在Windows上做得很好,如下所示:

键入Label.prn> \ my-pc \ zebra

它似乎与串口一起工作

键入Label.prn> COM1

现在我正试图在Linux上一样,但它变得非常困难! 我的第一个猜测是:

猫Label.prn | 的/ dev /总线/ USB / 005/002

因为我的打印机在总线005,设备002(使用lsusb命令检查),但它根本不工作,因为我得到一个坏

bash:/ dev / bus / usb / 005/002:权限被拒绝

任何猜测?

你做的命令

cat Label.prn | /dev/bus/usb/005/002 

将尝试运行/dev/bus/usb/005/002 ,这是不可执行的,因此“权限被拒绝”。 正确的命令将是,类似于Windows

 cat Label.prn > /dev/bus/usb/005/002 

但是,不知道你是否真的可以写任何东西到像Linux那样的打印机。 如果打印机设置正确,您也可以尝试:

 lpr Label.prn 

在其他人试图访问原始USB打印机端口的情况下, 通过将用户添加到组“lp”来避免“权限被拒绝”问题,如下所示:

 $ sudo usermod -aG lp USERNAME 

USERNAME是你的用户名。

对不起我的英语。

我在这里测试过,我的打印机TLP2844在USB上连接,在我的嵌入式arm9板上用linux。

我在命令提示符下键入:

printf“OD \ r \ nN \ r \ nD5 \ r \ nS2 \ r \ nZT \ r \ n \ 128,24 \ r \ nq400 \ r \ nA15,10,0,2,1,1,N,\”TESTE \ “\ r \ nP1 \ r \ nFE \ r \ n”> / dev / lp0

和…印刷的测试

  1. 您应该更改/ dev / usb / lp0设备的访问模式: sudo chmod a+w /dev/usb/lp0
  2. 然后您可以使用复制命令打印标签: cp test.zpl /dev/usb/lp0

您也可以在Sublime Text中创建自己的构建系统,例如:

 { "cmd": ["cp", "$file", "/dev/usb/lp0"], "encoding": "utf8" } 

并在完成编辑标签后立即按下Ctrl + B键将文件发送到打印机。

或者你可以尝试我的工具来通过TCP / IP发送zpl标签到打印机: https : //github.com/kashamalasha/AutoIt_ZebraTester

它是用AutoIt脚本语言编写的,所以你需要安装AutoIt来构建它。 不幸的是,没有关于英文的描述,只有俄文,但如果你需要的话,我可以很快写出来。