Java實現POS打印機自定義無驅打印
熱敏打印機使用越來越廣泛,而安裝驅動相當復雜,萬幸的是,幾乎所有的熱敏打印機都支持ESC/P指令,參考網絡上一些資料后,在此整理了一份自定義打印的方案
• 打印模板
為了增強打印效果的通用性,因此需要提供多元化的模板對齊支持,而且不同大小的打印機所需的版式也不盡相同
模板采用Json格式存儲,分為header、goods、bill、footer四個部分,對模板的解析采用號稱史上最快的阿里出品的fastjson
模板示例
{
"header": [ { "text": "{$shopname}", "size": 2, "bold": true, "format": 1, "line": 2, "underline": true, "type": 0 }, { "text": "{$barCode}", "format": 1, "line": 2, "type": 1 }, { "path": "{$logo}", "format": 1, "line": 2, "type": 3 }, { "text": "{$qrCode}", "format": 1, "line": 2, "type": 2 } ], "goods": [ { "name": "商品名", "width": 24, "format": 0, "variable": "name" }, { "name": "數量", "width": 8, "format": 1, "variable": "num" }, { "name": "單價", "width": 8, "format": 1, "variable": "price" }, { "name": "金額", "width": 8, "format": 2, "variable": "pay" } ], "bill": [ { "text": "實收現金", "size": 3, "bold": true, "format": 1, "line": 2, "underline": false, "type": 0 }, { "text": "{$cash}", "size": 3, "bold": true, "format": 1, "line": 2, "underline": false, "type": 0 } ], "footer": [ { "text": "詳情請訪問官網", "size": 2,