修改 escpos.py
sudo vim ~/odoo/addons/hw_escpos/escpos/escpos.py
依照此篇文章的介紹修改
https://github.com/fvdsn/py-xml-escpos/pull/6/files#diff-40c079194a34ca9b56a8d304d1eb20aeR832
重啟服務,就可以列印 Qr Code了
修改 escpos.py
sudo vim ~/odoo/addons/hw_escpos/escpos/escpos.py
依照此篇文章的介紹修改
https://github.com/fvdsn/py-xml-escpos/pull/6/files#diff-40c079194a34ca9b56a8d304d1eb20aeR832
重啟服務,就可以列印 Qr Code了
使用樹莓派安裝 POSBOX V13 後,本以為接上熱感式印表機即可直接列印
接上國外買的 EPSON TM-T88V 後,印出的中文全都是方框
查了之後才知道國外的 EPSON 印表機是沒有內建中文字碼的
所以又上了露天拍賣買了一台中古的 EPSON TM-T88IV,到手後也確認過確實有內建正體中文字碼表(CP950 = BIG5)
哪知道中文字列印中來全部都變成了”控控控”
上網查了一些資料,才知道原來 py-xml-escpos 的作者因為查不到東南亞語系的相關資料
也無法測試(畢竟要購買當地的印表機才能測試),所以這部分並沒有完整支援
所幸對岸的同胞們早在一年前就遇到了相同的問題,也找到了解決方案:加入相對應的編碼即可
遠端登入 POSBOX
ssh pi@posbox.ip
預設密碼為 admin
首先修改 constants.py
sudo vim /home/pi/odoo/addons/hw_escpos/escpos/constants.py
@ Line 78 加入下面兩行
TXT_ENC_PC936 = '\x1C\x21\x00' # PC936 GBK(Guobiao Kuozhan) TXT_ENC_PC950 = '\x1C\x21\x00' # PC950 BIG5
然後修改 escpos.py
sudo vim /home/pi/odoo/addons/hw_escpos/escpos/escpos.py
@ Line 751 加入下面兩行
'cp936': TXT_ENC_PC936, 'cp950': TXT_ENC_PC950,
@ Line 766,正體中文選 CP950,簡體中文選 CP936
將 encoding = 'cp437' 修改為 encoding = 'cp950'
重開 POSBOX,就可以正常列印正體中文了
以下是修改時遇到的問題,在這邊寫出來,有遇到這個問題的人就不會一直鬼打牆了
安裝HW_ESCPOS 模組時出現以下錯誤
Error Unable to install module "hw_escpos" because an external dependency is not met: No module named usb.core
sudo -H pip install pyserial
(Version = 3.0.1)
sudo -H pip install –pre pyusb
(Version = 1.0.0rc1)
sudo -H pip install qrcode
(Version = 5.2.2)
選擇安裝 hw_escpos 之後會卡在
XmlHttpRequestError
因為使用虛擬機安裝ODOO時並沒有安裝 USB Controller
需要先新增 USB Controller (2.0 即可),重開機後即可正常安裝
參考資料
https://github.com/odoo/odoo/issues/2781