前言
在近期开发的收银台项目中,需要使用打印机进行小票打印,打印流程的时序图如下所示:
在客户的使用过程中,遇到一个问题,如果机器安装了打印机驱动,那么调用厂商提供的 sdk 进行打印的话,会导致出现小票只打印一半的情况,对此,需要绕过厂商 sdk 使用系统的打印才能够解决这一问题。
在 web 端打印中,需要调用浏览器打印 api 进行网页打印。这意味着,之前后端编写的esc/pos无法复用到,同时,前端还得花费精力来编写 html 以及css 来完成打印内容的排版,这无疑增加了复杂
小票打印就是向打印设备发送控制打印格式的指令集,而这些打印格式需要去查询对应打印机的API文档,这里我把常用的api给封装了一下
文字对齐方式
打印字体大小
字体是否加粗
打印二维码
打印条形码
切纸
打开钱箱
字符串转字节数组
字符拼接
PrintFormatUtils.Java
/**
* 打印格式
* Created by john on 17-3-23.
*/
public class PrintFormatUtils {
// 对齐方式