更新记录

1.0.1(2023-06-05)

免费使用

1.0.0(2023-05-05)

首版发布,支持58 usb接口


平台兼容性

Android Android CPU类型 iOS
适用版本区间:4.4 - 12.0 armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 ×

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios

注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择


芯烨打印机SDK原生插件使用文档

初始化对象

const ApiXprinter = uni.requireNativePlugin('jalee-xprinter')

获取usb列表,可以判断是否插入了usb打印机设备

ApiXprinter.getUsbList({},(res=>{
// 如果存在则进行连接
if(res.code=='success' && res.data.num >0){
    this.fnConnect()
}
}))

初始化并连接

ApiXprinter.init({},(res)=>{
    if(res.code=='success'){
        ApiXprinter.connect({},(res)=>{
            if(res.code=='success'){
               console.log("连接成功")
            }
        })
    }
})

断开连接

ApiXprinter.disConnect({},(res=>{
 console.log('断开连接',res)
}))

打印

var datalist = []
ApiXprinter.printData({"datalist":datalist},(res=>{
    console.log('打印成功')
}))

打印数据样例

    var datalist = [
                    {"method":"initializePrinter","params": []},//初始化
                    {"method":"selectAlignment","params": [1]},//居中
                    {"method":"selectCharacterSize","params": [1]},//字体大小 1高扩大一倍 16 宽扩大一倍 17 宽高扩大一倍
                    {"method":"text","params": ['西南医院康复楼餐厅']},
                    {"method":"printAndFeedLine","params": []},//打印并换行
                    {"method":"text","params": ['-----------------------']},
                    {"method":"printAndFeedLine","params": []},

                    {"method":"initializePrinter","params": []},//初始化
                    {"method":"selectCharacterSize","params": [1]},//字体大小 1高扩大一倍 16 宽扩大一倍 17 宽高扩大一倍
                    {"method":"setAbsolutePrintPosition","params": [40,0]},//m+n*256代表距离行首位置,范围0-255;
                    {"method":"text","params": ['菜品']},
                    {"method":"setAbsolutePrintPosition","params": [160,0]},
                    {"method":"text","params": ['数量']},
                    {"method":"setAbsolutePrintPosition","params": [30,1]},
                    {"method":"text","params": ['单价']},
                    {"method":"printAndFeedLine","params": []},
                    {"method":"setAbsolutePrintPosition","params": [40,0]},
                    {"method":"text","params": ['宫保鸡丁']},
                    {"method":"setAbsolutePrintPosition","params": [160,0]},
                    {"method":"text","params": ['1']},
                    {"method":"setAbsolutePrintPosition","params": [30,1]},
                    {"method":"text","params": ['2元']},
                    {"method":"printAndFeedLine","params": []},

                    {"method":"initializePrinter","params": []},//初始化
                    {"method":"selectAlignment","params": [1]},//居中
                    {"method":"selectCharacterSize","params": [1]},//字体大小 1高扩大一倍 16 宽扩大一倍 17 宽高扩大一倍
                    {"method":"text","params": ['-----------------------']},

                    {"method":"initializePrinter","params": []},//初始化
                    {"method":"selectCharacterSize","params": [1]},//字体大小 1高扩大一倍 16 宽扩大一倍 17 宽高扩大一倍
                    {"method":"printAndFeedLine","params": []},
                    {"method":"setAbsolutePrintPosition","params": [40,0]},
                    {"method":"text","params": ['打包费:1']},
                    {"method":"printAndFeedLine","params": []},
                    {"method":"setAbsolutePrintPosition","params": [40,0]},
                    {"method":"text","params": ['配送费:1']},
                    {"method":"printAndFeedLine","params": []},
                    {"method":"setAbsolutePrintPosition","params": [40,0]},
                    {"method":"text","params": ['合计:100']},
                    {"method":"printAndFeedLine","params": []},

                    {"method":"initializePrinter","params": []},//初始化
                    {"method":"selectAlignment","params": [1]},//居中
                    {"method":"selectCharacterSize","params": [1]},//字体大小 1高扩大一倍 16 宽扩大一倍 17 宽高扩大一倍
                    {"method":"text","params": ['-----------------------']},
                    {"method":"printAndFeedLine","params": []},

                    {"method":"initializePrinter","params": []},//初始化
                    {"method":"selectCharacterSize","params": [1]},//字体大小 1高扩大一倍 16 宽扩大一倍 17 宽高扩大一倍
                    {"method":"setAbsolutePrintPosition","params": [40,0]},
                    {"method":"text","params": ['*打印时间:2022-8-30']},
                    {"method":"setAbsolutePrintPosition","params": [40,0]},
                    {"method":"printAndFeedLine","params": []},
                    {"method":"setAbsolutePrintPosition","params": [40,0]},
                    {"method":"text","params": ['姓名:张三']},
                    {"method":"printAndFeedLine","params": []},
                    {"method":"setAbsolutePrintPosition","params": [40,0]},
                    {"method":"text","params": ['*电话:123123123132']},
                    {"method":"printAndFeedLine","params": []},
                    {"method":"printAndFeedLine","params": []},
                    {"method":"printAndFeedLine","params": []},
                    {"method":"printAndFeedLine","params": []},
    ]

打印机所有方法如下。用法是,{"method":"方法","params": [参数1,参数2]},

allowOrForbidPressButton(int n)
允许或禁止按键
ESC c 5 n
CancelChineseCharModel()
取消汉字模式
FS .
cancelUserDefinedCharacters(int n)
取消用户自定义字符
ESC ?
checkLableAndGap()
自检纸 此命令针对票据命令打印标签效果有效
creatCashboxContorlPulse(int m, int t1, int t2)
产生钱箱控制脉冲
ESC p m t1 t2
definedDownLoadBmp(Bitmap bitmap, BitmapToByteData.BmpType bmpType)
定义下载位图
GS x y [ d1...d(xy*8)]
单个bitmap需要满足:n=(width+7)/8;h=(height+7)/8;n*h<=912,1<=n<=255,1<=h<=48,否则返回的位图数据为new byte[0].
definedFlashBmp(java.util.List<Bitmap> list, int n, BitmapToByteData.BmpType bmpType)
定义FLASH位图
FS q n [xL xH yL yH d1...dk]...
definedUserDefinedChineseChar(int c2, byte[] b)
定义用户自定义汉字
FS 2 c1 c2 d1...dk
defineuserDefinedCharacters(int c1, int c2, byte[] b)
定义用户自定义字符
ESC $ Y c1 c2 [x1 d1...d(x1*y)]...
endOfLable()
标签结束 此命令针对票据命令打印标签效果有效
horizontalPositioning()
水平定位指令;
HT
initializePrinter()
初始化打印机
ESC @
openOrCloseLableModelInReceip(java.lang.Boolean open)
开启或关闭票据模式下的标签 针对新机型58IID(票据命令打标签效果)
printAndFeed(int n)
打印并走纸
ESC J n
printAndFeedForward(int n)
打印并向前走纸n行
ESC d n
printAndFeedLine()
打印并换行
LF
printBarcode(int m, int n, java.lang.String content)
打印条码
GS k m n d1...dn
printBarcode(int m, java.lang.String content)
打印条码
GS k m d1...dk NUL
printBmpInFLASH(int n, int m)
打印下载到FLASH中的位图
FS p n m
printcode128(java.lang.String content)
打印条码CODE128
GS k m n d1...dn
printDownLoadBmp(int m)
打印下载位图
GS / m
printRasterBmp(int m, Bitmap bitmap, BitmapToByteData.BmpType bmpType, BitmapToByteData.AlignType alignType, int pagewidth)
打印光栅位图
GS v 0 m
queryPrinterState()
查询打印机状态
ESC v
仅对串口和以太网接口有效
selectAlignment(int n)
选择对齐方式
ESC a n
selectBmpModel(int m, int nL, int nH, byte[] b)
选择位图模式
ESC * m nL nH d1 d2...dk
selectCharacterCodePage(int n)
选择字符代码表
ESC t n
selectCharacterSize(int n)
选择字符大小
GS !
selectChineseCharModel()
选择汉字模式
FS &
selectFont(int n)
选择字体
ESC M n
selectFontB()
切换字体到Font B
selectHRICharacterPrintPosition(int n)
选择HRI字符打印位置
GS H n
HRI是对条码内容注释的字符
GS H n
selectHRIFont(int n)
选择HRI使用字体
GS f n
selectInternationalCharacterSets(int n)
选择国际字符集
ESC R n
selectOrCancelBoldModel(int n)
选择或取消加粗模式
ESC E n
selectOrCancelChineseCharDoubleWH(int n)
选择或取消汉字倍高倍宽
FS W n
selectOrCancelChineseCharUnderLineModel(int n)
选择或取消汉字下划线模式
FS - n
selectOrCancelConvertPrintModel(int n)
选择或取消倒置打印模式
ESC { n
selectOrCancelCW90(int n)
选择或取消顺时针旋转90度
此命令只在页模式下有效
ESC V n
selectOrCancelDoubelPrintModel(int n)
选择或取消双重打印模式
ESC G n
selectOrCancelInvertPrintModel(int n)
选择或取消黑白反显打印模式
GS B n
selectOrCancelUnderlineModel(int n)
选择或者取消下划线模式
ESC-n
selectOrCancleCustomChar(int n)
选择或取消用户自定义字符
ESC % n
selectPrintModel(int n)
选择打印模式
ESC !
seletFontA()
切换字体到FontA
setAbsolutePrintPosition(int m, int n)
设置绝对打印位置
ESC $ nL nH
setBarcodeHeight(int n)
选择条码高度
GS h n
setBarcodeWidth(int n)
设置条码宽度
GS w n
setCharRightSpace(int n)
设置字符右间距
ESC SP n
static void setCharsetName(java.lang.String charset)
设置将打印内容传输给打印机所采用的字符编码,默认为中文编码“gbk”
setChineseCharacterModel(int n)
设置汉字字符模式
FS !
setChineseCharLeftAndRightSpace(int n1, int n2)
设置汉字字符左右间距
FS S n1 n2
setDefultLineSpacing()
设置默认行间距
ESC 2
大约3.75mm
setDormancyTime(int n)
设置休眠时间
setHorizontalAndVerticalMoveUnit(int x, int y)
设置横向和纵向移动单位
GS P x y
setHorizontalmovementPosition(byte[] b)
设置横线跳格位置
ESC D n1...nk NUL;
setLeftSpace(int nL, int nH)
设置左边距
GS L nL nH
setLineSpaceing(int n)
设置行间距
ESC 3 n
setOffTime(int n)
设置关机时间
setPrintAreaWidth(int nL, int nH)
设置打印区域宽度
GS W nL nH
setRelativeHorizontalPrintPosition(int nL, int nH)
设置相对横向打印位置
指令使用详情请参考编程手册
ESC \ nL nH
setSpeed(int n)
打印速度调整
setTheLableWidth(int width)
设置标签宽度 此命令针对票据命令打印标签效果有效

隐私、权限声明

1. 本插件需要申请的系统权限列表:

android.hardware.usb.UsbAccessory usb接口 联系方式 vx:sxtxxxx

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问