1.设备是文件
在Linux上安装打印机Linux驱动程序并不容易。所有类型的小票POS打印机几乎只有windows驱动程序,在Linux上测试各种不同的打印机驱动程序是不正常的。
后来想到Linux系统中所有设备都以文件形式表示,于是发现直接免驱方式打印更方便。
因为串口打印机接在Linux系统后,对应端口 /dev/ttyS0
usb打印机只要插入Linux电脑,就自动在/dev/usb 下显示成文件名 /dev/usb/lp0,(也可能是 lp1或lp2,去/dev/usb下查看即可)
二.开启设备权限
使用串口打印,需要先开启串口的访问权限。命令如下:
sudo chmod a+rw /dev/ttyS0 执行该命令,表示开放COM1的权限
USB 方式 相同,接上USB打印机。上电后,查看/dev/usb/lp0的设备是否存在。
然后开启串口的访问权限。命令如下:
sudo chmod a+rw /dev/usb/lp0 执行该命令,表示开放usb打印机的权限
Ubuntu开机之后会执行/etc文件中的脚本,
所以我们可以直接在/etc中添加启动脚本。
当然要添加到语句:exit 0 前面才行。
如:
sudo vi /etc
然后在 exit 0 前面添加好两行chmod命令。
三.测试打印
可以直接 在终端 测试打印
echo "Test Print" > /dev/ttyS0
echo "Test Print" > /dev/usb/lp0
不过,这时候 测试中文 打印 却打印出乱码
echo "Test Print 测试打印 " > /dev/ttyS0
四.解决Qt中文打印乱码
花了不少时间查询,开始以为是Linux系统编码问题,按网上方法处理,没有效果,几经辛苦终于找到解决方法,实在是太简单
在头文件处理
public:
下加入
QTextcodec *code= QTextCodec::codecForName("GB18030");
代码部分:
Posix_QextSerialPort *SerialPort;
SerialPort = new Posix_QextSerialPort(_SerialPortName, QextSerialBase::Polling);
//使用第三方 Posix_QextSerialPort 类,设置部分在此略去...
QString PrintLine= "Print Data 测试 " ;
SerialPort->write(code->fromUnicode(PrintLine));
打印效果正常。
这第三方 Posix_QextSerialPort 类,实在是好用,仅需少少改动,直接同时适用于 串口与usb打印机(usb打印机免去串口波比率等设置即可)。并口打印机应该直接适用,估计与usb方式的改动相似,我这没有LPT打印机,就没测试了。
1.《打印机怎么打中文看这里!非常简单,解决Qt免驱方式POS打印机打印中文乱码问题》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《打印机怎么打中文看这里!非常简单,解决Qt免驱方式POS打印机打印中文乱码问题》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/why/3053241.html