打印
SDK升级说明
升级说明
为了方便开发人员调用一敏POS设备的内置打印机,也为了降低打印机开发的难度,简化app接口,我们重新构建了打印SDK。
新旧功能对比
SDK V2.0
连接方式:蓝牙(蓝牙设备名:InnerPrinter)、AIDL等。
第三方应用程序可以通过连接到内置打印机来打印。iMin打印机功能:58和80mm热敏打印机,两种打印规格,切刀(部分机器)
开发人员可以参考内置的打印机开发文档来了解打印机的工作原理以及如何调用接口
内置打印机文档:一敏内置打印机开发人员文档 v2.0
1. 接入SDK
打印SDK通过远程仓库获取,只需要在调用模块的build.gradle中添加依赖
1android {
2 ...
3}
4
5dependencies {
6 implementation 'com.github.iminsoftware:IminPrinterLibrary:V1.0.0.13'
7}
2. 参考Demo
您可以参考SDK使用Demo的源代码进行开发,点击下面的链接跳转下载上面相应的Demo
3. 网页打印
- Demo Case
Desktop POS https://mp.neostra.com/WebPrint/D.html
Moblie POS https://mp.neostra.com/WebPrint/M.html
备注
SDK V2.0不需要安装iMinprinterplugin插件,在设备浏览器中输入以下URL地址体验网页打印案例
4. JavaScript API
开发人员可以使用 JavaScript API 调用内置打印机
点击下载 JS Print SDK
- Demo案例
备注
SDK V2.0不需要安装iMinprinterplugin插件。
5. Flutter
您可以参考SDK使用Demo的源代码进行开发,点击下面的链接跳转下载上面相应的Demo
SDK V1.0
连接方法:蓝牙/USB。 第三方应用程序可以连接内置打印机打印。一敏打印机中包含的功能:两种印刷规格为58mm和80mm,切刀(部分设备),钱箱(部分设备)
打印机与ESC&POS命令兼容,但与标准ESC & POS命令略有不同。 开发人员可以参考内置打印机开发文档,以了解打印机的工作模式和接口调用方法,并了解一敏通过指令文档支持的ESC & POS指令集 内置打印机开发文档 v1.0
1. 接入SDK
一敏提供打印演示和源代码,并支持常见的打印功能,例如:打印QR Code,打印条形码,打印图片,以各种语言的打印文本,打印表单等。Demo支持蓝牙和USB连接方法。 开发在开发打印功能时,开发人员需要使用对应型号的SDK进行调整适配。
备注
说明:该演示仅支持一敏内置打印机,外接蓝牙/USB打印机不适用于此Demo。
2. 网页打印
一敏支持Web/JS方式调用本机内置进行打印。 用户可以通过应用商店搜索iMinprinterplugin,然后下载和安装它后,他们可以通过浏览器的打印功能打印网页内容。
打印案例
备注
在设备浏览器中输入以下URL地址以体验JS打印案例。
3. JavaScript API
点击下载 JS Print SDK
- Demo案例
-
备注
用户可以通过应用商店搜索iMinprinterplugin,然后下载和安装它后才能使用JavaScript API。
4. Flutter
您可以参考SDK使用Demo的源代码进行开发,点击下面的链接跳转下载上面相应的Demo
SDK版本说明
1. SDK V2.0
初始版本 1.0.0.13
2024年5月17日
首个版本
2. SDK V1.0
版本 1.3.1
2024年10月9日
打印图片默认添加灰度处理避免彩图无法打印的问题
解决事务打印API已知bug
适配自研打印机固件PC80,PC58
解决默认初始化jar包自动连接USB,避免首次快速获取打印机状态为-1的问题,
支持 Code128 A B C 类型打印长数据
文本打印图片处理算法优化,解决D4打印图片乱码问题
打印图片算法优化,解决D1设备打印Barcode19乱码问题
resetDevice()逻辑调整:1. 把打印机状态设置成-1逻辑删除,打印机状态设置-1只有在断开连接或者发送失败才执行,2.打印线程解锁
解决JS打印图片部分内容被消点
事务打印相关api添加支持机型判断,不支持事务打印的机型调用api无响应
(仅支持自研PC58/pc80打印机)二维码新增api printPDF417,printMaxiCode,printAztecCode,printDataMatrix
(仅支持自研PC58/pc80打印机)一维码适配GS1128 ,GS1DataBarOmnidirectional ,GS1DataBarTruncated,GS1DataBarLimited,GS1DataBarExpanded
新增判断是否是自研打印机固件api :mIminPrintUtils.isPC80();
新增打印彩图的方法printSingleColorChartBitmap(Bitmap bitmap,int isScale) // bitmap 目标图片,isScale == 1等比例放大,0 默认尺寸打印
版本 1.2.0
2024年5月21日
- 适配全平台机型需要参考demo进行调用
- 注意:
D1,Max的机器打印机固件建议更新至23-12-07 B1;
PC58目前仅支持M2 Max 最新的ROM以及更换新的打印版;
除了D1 ,M2 Max其他机型不做版本区分
事务打印切换无法打印问题解决
D1事务打印适配(23-12-07 B1的打印机固件开始适配,旧的固件不支持)
切换设备管家打印之后,打印数据重复bug
事务打印有时候返回值不回调问题解决
USB获取打印机状态 -1 USB读取线程崩溃bug解决
USB读取返回值超时问题解决
PC58打印双二维码适配 (当前仅支持 M2 Max 最新的ROM)
优化打印机在静置的状态下cpu占用率较高的问题
切换设备管家在切换回来打印重复问题
适配自研打印机固件(当前仅支持 M2 Max 最新的ROM)
打印图片设置对齐方式bug
新增事务打印功能
D4 点击初始化之后无法获取打印机状态,第一次无法打印问题
D4 点击事务打印,发送三笔之后打印乱码问题
蓝牙打印反复调用initPrinter之后反复导致断开重连
打印图片设置居中居左居右问题连续多次打印设置失效
事务打印的过程中调用initPrinter,打印中断问题
调用断开连接之后无法继续打印问题解决
SDK引用的第三方库rxjava,Observer 子线程数据切换主线程问题解决
打印图片设置对齐方式bug
适配自研打印机固件(PC58)(当前仅支持 M2 Max 最新的ROM)
resetDevice()调用之后会清除数据,在第一次初始化调用即可。后面打印过程中不调用。
新增disConnectDevices()//断开打印业务连接
调用: 退出应用的时候添加IminPrintUtils.getInstance(this).disConnectDevices();//断开打印有关的连接
新增日志开关setIsOpenLog//开启日志打印1开启 0关闭 ,SDK默认0
调用: IminPrintUtils.setIsOpenLog(1);
4. 获取打印机状态接口合并 int status = mIminPrintUtils.getPrinterStatus(IminPrintUtils.PrintConnectType.SPI); 或者 int status = mIminPrintUtils.getPrinterStatus(IminPrintUtils.PrintConnectType.USB);
版本 1.1.0
2024年5月21日
添加事务打印功能(目前仅支持M2 202,M2 203,M2 Pro)
使用外置打印机
一敏打印机主要包括⼀体机内置打印机和外置独⽴打印机两种类型,本⽂档主要介绍通过SDK快速使用外置打印机;
开发打印机程序之前,您需要对票据打印机的工作原理和ESC/POS指令集有一定的理解,才能理解票据排版所需的基本知识;
当前外置打印机包括:
HPRT Printer(普瑞特打印机)
点击下载 普瑞特TP808 SDK
SEIKO Printer(精工打印机)
打印服务常见问题解答
打印纸张规格
注意: 一敏打印机支持58mm和80mm的打印纸。 该文档使用58毫米打印纸作为示例来解释打印机的支持参数。 80mm打印纸的规格相似
一张58张印刷纸的宽度为58mm,有效的打印宽度为48mm。 有效的打印宽度为384像素点。
什么是打印机分辨率?
打印机分辨率为205DPI,计算公式如下
DPI=384dots/48mm=8dots/1mm=205dots/in=205