1.0.1 • Published 3 years ago

node-gp-printer v1.0.1

Weekly downloads
-
License
-
Repository
-
Last release
3 years ago

一些说明

打印机的连接

当前使用 GP-5860III 打印机,其他型号支持ESC/POS的话应该都是可用的,以下是驱动安装说明

  1. 下载驱动 Zadig

  2. 解压后执行程序,如图顺序操作:

npm.io

npm.io

等待几分钟提示成功即可

开发一种小票需要以下步骤

/**
   * 打印商品销售小票
   * @param {*} data 
   */
  printGoodsell (data) {
    //获取定义的模板
    const template = require("./tickets/goods-sell")
    //打印
    this.printTemplate(this.loadTemplate(template, data))
  }
  1. 调用
new PrintHandler()
  .printGoodsell({
          ShopName: "测试店",
          TableColums: ["商品名", "单价", "数量", "金额"],
          ItemRows: [["叮当", "1.00", "2", "2.00"], ["哆啦A梦", "1.00", "2", "2.00"]],
          Should: "4.00",
          Discount: "1.00",
          Paid: "3.00",
          PayType: "现金",
          Mobile: "13800138000",
          ReMark: "",
          OrderNO: "S2328744283621783627846283422113",
          Employee: "张三",
          CreateTime: "2021-08-26 11:22:33"
  })

模板说明

格式说明

模板为一个json数组,每项对应小票中的一个数据集(一行或多行)

每项中的配置如下:

{
  type: "当前行的类型",
  key:"对应数据集合的键",
  style: {
    size: "字体大小,0-7,0为默认值",
    blob: "是否加粗",
    center: "是否居中"
  },
  title:"使用键值对作为一行的话,此为标题,value为值",
  value: "模板字符串,目前支持1个占位:{{}}"
}

type 对应说明:

{
  text:"一行文本",
  keyvalue:"键值对形式,如  “金额:       1.00”",
  row:"value设置一个数组,根据内容会均分一行",
  rows:"value为二维数组,对应datatable的行"
  line:"输出以“-----”这样的分割线",
  empty:"输出空行,可以理解为换行,value不设置的话默认换两行(即空1行)",
  ercode:"value为二维码内容",
  barcode:"value为条形码内容"
}