Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

com.power4j.kit:esc-pos-printing

Package Overview
Maintainers
1
Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

com.power4j.kit:esc-pos-printing

Java library for ESC/POS printing.

  • 1.0.2
  • Source
  • Maven

Version published
Maintainers
1
Source

Codacy Badge Build Status Maven Central

ESC/POS 凭条打印

已经实现的功能

  • ESC/POS 指令编码(支持文本、二维码、图片行打)

打印功能已经在串口热敏打印机上测试,蓝牙、局域网打印因为没有设备,打印效果未知,欢迎有条件的老哥测试。

使用场景

  • 模版开发
    1. 开发人员调试好文档格式,生成打印模版
    2. 打印模版保存到数据库或者打包为服务端资源
  • 指令下发
    1. 业务操作产生打印需求,后端将业务数据+打印模版进行处理,生成打印指令,下发给前端
    2. 前端负责打开打印机设备,然后将指令发送到打印机

备注

  • 一般情况下,打印模版并不会频繁改变,因此不需要开发可视化的模版制作功能,由技术人员完成模版调试即可

  • 如果需要用到的模版较多,可能需要开发模版管理功能,方便上传、更新打印模版。

使用方法

maven 坐标

<dependency>
  <groupId>com.power4j.kit</groupId>
  <artifactId>esc-pos</artifactId>
  <version>最新版本</version>
</dependency>
// json是事先定义好的打印模版
Doc doc = DocProcessor.parseFromJson(jsonStr);
// hexCmd 为打印指令,16进制格式,一般厂商会提供测试工具,粘贴进去就能打印
// 也可以通过网络或者蓝牙传输打印指令
String hexCmd = DocProcessor.getCmdEncoder().encodeHex(doc);

例子 : 见 DefaultCmdEncoderTest

模版文档结构

文档

一个模版文档Doc由若干行组成,格式如下

{
  "charsetName": "GB2312",
  "opt": {},
  "lines": []
}

charsetName 字符集

opt 默认文本格式

lines 数组类型,需要打印的行

文档以行的方式定义其打印内容,格式如下

{
  "type": "text",
  "data": "hello",
  "opt": {}
}

type 表示类型,有三种

  • text 文本
  • bmp 位图
  • qrc 二维码
  • feed 控制指令,走纸
  • cut 控制指令,切纸

data 需要打印的数据,不同的类型有不同的要求

  • 文本 、 二维码:传入需要打印的文本
  • 位图:图片数据(base64)
  • 走纸: 数字,表示走纸的行数
  • 切纸: 0 表示部分切纸,1表示全切

opt 打印选项,用于设置打印格式等,不同的类型,支持不同的选项,见后面打印格式说明。需要设置格式时传入,否则使用默认格式。

控制指令

  • 走纸(Feed): 控制打印机走纸
  • 切纸(Cut): 控制打印机切纸,支持全切和部分切纸

打印格式

通用

通用格式作用于任何的类型的行。

属性名称属性值备注
alignleft,center,right左、中、右

文本

属性名称属性值备注
fontHeight1,2,3,4,5,6,7,8字体高度,以倍数表示
fontWidth1,2,3,4,5,6,7,8字体宽度,以倍数表示
fontTypea,b,c打印机提供的三种字体
underlinenone,one-dot,two-dot下划线类型
lineSpacing数字行距
boldtrue,false加粗
colorwhite,black颜色模式,white表示白底黑字,black表示黑底白字

一个文本行的例子

{
  "type": "text",
  "data": "凭  条",
  "opt": {
    "fontHeight": "3",
    "fontWidth": "3",
    "bold": "true",
    "align": "center",
    "underline": "none"
  }
}

二维码

  • 二维码模型(QrModel): 可选择打印机内置二维码模型
  • 纠错等级(QrEccLevel): 4种纠错等级
  • 大小: 可设置二维码的大小
属性名称属性值备注
modelm1,m2类型
levell,m,q,h纠错等级
size数值二维码的大小

一个二维码行的例子

{
    "type": "qrc",
    "data": "12345678",
    "opt": {
        "size": "10",
        "align": "center"
    }
}

图片

  • 模式(BmpModel): 位图在打印机缓存中的存储模式
属性名称属性值备注
modelm0,m1,m32,m33分别表示:8点单密度、8点双密度、24点单密度、24点双密度

一个二维码行的例子

{
    "type": "bmp",
    "data": "此处填写base64图片数据",
    "opt": {
        "size": "10",
        "model": "m33"
    }
}

例子

print-img

print-img

模版文件

sample-biz.json

参考资料

Special Thanks

联系方式

weichat

FAQs

Package last updated on 13 Aug 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc