網(wǎng)上有很多關(guān)于pos機(jī)憑條打印不出來,解決Qt免驅(qū)方式POS打印機(jī)打印中文亂碼問題的知識,也有很多人為大家解答關(guān)于pos機(jī)憑條打印不出來的問題,今天pos機(jī)之家(m.afbey.com)為大家整理了關(guān)于這方面的知識,讓我們一起來看下吧!
本文目錄一覽:
pos機(jī)憑條打印不出來
一.設(shè)備就是文件在Linux 中安裝打印機(jī)Linux驅(qū)動,實在是不容易,各種小票POS打印機(jī)差不多都只帶windows驅(qū)動,在Linux中測試過多種其他打印機(jī)驅(qū)動均不正常。
后來想到Linux系統(tǒng)中所有設(shè)備都以文件形式表示,于是發(fā)現(xiàn)直接免驅(qū)方式打印更方便。
因為串口打印機(jī)接在Linux系統(tǒng)后,對應(yīng)端口 /dev/ttyS0
usb打印機(jī)只要插入Linux電腦,就自動在/dev/usb 下顯示成文件名 /dev/usb/lp0,(也可能是 lp1或lp2,去/dev/usb下查看即可)
二.開啟設(shè)備權(quán)限使用串口打印,需要先開啟串口的訪問權(quán)限。命令如下:
sudo chmod a+rw /dev/ttyS0 執(zhí)行該命令,表示開放COM1的權(quán)限
USB 方式 相同,接上USB打印機(jī)。上電后,查看/dev/usb/lp0的設(shè)備是否存在。
然后開啟串口的訪問權(quán)限。命令如下:
sudo chmod a+rw /dev/usb/lp0 執(zhí)行該命令,表示開放usb打印機(jī)的權(quán)限
Ubuntu開機(jī)之后會執(zhí)行/etc/rc.local文件中的腳本,
所以我們可以直接在/etc/rc.local中添加啟動腳本。
當(dāng)然要添加到語句:exit 0 前面才行。
如:
sudo vi /etc/rc.local
然后在 exit 0 前面添加好兩行chmod命令。
三.測試打印可以直接 在終端 測試打印
echo "Test Print" > /dev/ttyS0
echo "Test Print" > /dev/usb/lp0
不過,這時候 測試中文 打印 卻打印出亂碼
echo "Test Print 測試打印 " > /dev/ttyS0
四.解決Qt中文打印亂碼花了不少時間查詢,開始以為是Linux系統(tǒng)編碼問題,按網(wǎng)上方法處理,沒有效果,幾經(jīng)辛苦終于找到解決方法,實在是太簡單
在頭文件處理
public:
下加入
QTextcodec *code= QTextCodec::codecForName("GB18030");
代碼部分:
Posix_QextSerialPort *SerialPort;
SerialPort = new Posix_QextSerialPort(_SerialPortName, QextSerialBase::Polling);
//使用第三方 Posix_QextSerialPort 類,設(shè)置部分在此略去...
QString PrintLine= "Print Data 測試 " ;
SerialPort->write(code->fromUnicode(PrintLine));
打印效果正常。
這第三方 Posix_QextSerialPort 類,實在是好用,僅需少少改動,直接同時適用于 串口與usb打印機(jī)(usb打印機(jī)免去串口波比率等設(shè)置即可)。并口打印機(jī)應(yīng)該直接適用,估計與usb方式的改動相似,我這沒有LPT打印機(jī),就沒測試了。
以上就是關(guān)于pos機(jī)憑條打印不出來,解決Qt免驅(qū)方式POS打印機(jī)打印中文亂碼問題的知識,后面我們會繼續(xù)為大家整理關(guān)于pos機(jī)憑條打印不出來的知識,希望能夠幫助到大家!