Odoo POS打印58mm收银小票 - xiaohao0576/odoo-doc GitHub Wiki
小票收银机种类
在打印机点密度=203DPI情况下
80mm小票打印机,实际打印宽度有72mm,每行可打印576个像素点
58mm小票打印机,实际打印宽度有48mm,每行可打印384个像素点
Odoo收银小票默认宽度
Odoo的收银小票,默认图像宽度是512个像素点,打印到80mm的小票上,左右还可以有32个像素的边距。但58mm的小票就不能完全打印512像素,所以需要修改odoo的源码
如何修改
只需要重写pos模块中一个css文件的pos-receipt-print类定义
文件路径odoo\addons\point_of_sale\static\src\css\pos_receipts.css
相关js代码
async printReceipt(receipt) {
if (receipt) {
this.receiptQueue.push(receipt);
}
let image, printResult;
while (this.receiptQueue.length > 0) {
receipt = this.receiptQueue.shift();
image = this.processCanvas(
await htmlToCanvas(receipt, { addClass: "pos-receipt-print" })
);
具体步骤
准备一个css文件mypos/static/src/css/pos_receipts.css,内容如下:
.pos-receipt-print {
width: 384px !important; /* change to 512px for 80mm printers */
font-size: 22px;
color: #000000;
}
manifest.py文件中,需要把自定义css加入pos的assets
'assets': {
'point_of_sale._assets_pos': [
'mypos/static/src/css/pos_receipts.css',
],
},
参考下面的文档,把文件打包成一个可以导入的模块,这个模块能在odoo online版本使用
https://www.odoo.com/documentation/19.0/developer/tutorials/importable_modules.html#module-structure