更新记录
1.0.1(2023-08-09)
- 更新iOS cpcl指令问题
1.0.0(2023-05-04)
佳博打印机,支持ESC小票、TSC标签、CPCL面单打印,支持蓝牙、USB、wifi、串口等多种连接方式
平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:4.4 - 12.0 | armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 | 适用版本区间:9 - 16 |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
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原生插件配置”->”云端插件“列表中删除该插件重新选择
前言
佳博打印机,支持ESC小票、TSC标签、CPCL面单打印,支持蓝牙、USB、wifi、串口等多种连接方式
请试用没问题后再采购,插件市场没有退款机制
var gainschaPrint = uni.requireNativePlugin("wrs-gainschaPrint");
支持定制,联系方式 QQ:252797991
打印机连接方式
Android支持蓝牙、USB、串口、wifi,iOS支持蓝牙、Wi-Fi连接
Android 串口连接
先通过getSerialPorts接口获取设备上所有的串口,然后选择连接打印机的那个串口进行连接connect
// 获取设备的所有串口
this.$gainschaPrint.getSerialPorts((resp) => {
// 选择打印机的串口
var entryValues = resp.entryValues;
this.showActionSheet(entryValues, (index) => {
// 打印机串口
var serialPort = entryValues[index];
// 选择打印命令类型
this.selectCommand((commandResp) => {
var params = {};
params.connMethod = 3; // 连接方式,3:串口连接
params.command = commandResp; // 打印命令类型
params.serialPort = serialPort; // 串口路径
params.baudRate = this.baudRate; // 串口波特率
this.$gainschaPrint.connect(params, (conResp) => {
// 连接状态变更回调
this.connectCallbak(conResp);
});
});
});
});
Android USB连接
先通过getUSBDevices获取所有的USB,然后选择连接打印机的那个usb进行连接
// 获取设备的所有USB
this.$gainschaPrint.getUSBDevices((resp) => {
// 选择打印机的USB
var devices = resp.devices;
var deviceNameArray = [];
for (var i = 0; i < devices.length; i++) {
deviceNameArray.push(devices[i].deviceName);
}
this.showActionSheet(deviceNameArray, (index) => {
// USB名称
var deviceName = deviceNameArray[index];
// 选择打印命令类型
this.selectCommand((commandResp) => {
var params = {};
params.connMethod = 1; // 连接方式,1:USB连接
params.command = commandResp; // 打印命令类型
params.deviceName = deviceName; // USB名称
this.$gainschaPrint.connect(params, (conResp) => {
// 连接状态变更回调
this.connectCallbak(conResp);
});
});
});
});
Android wifi连接
// 选择打印命令类型
this.selectCommand((commandResp) => {
var params = {};
params.connMethod = 2; // 连接方式,2:wifi连接
params.command = commandResp; // 打印命令类型
params.ip = this.ip; // 打印机IP
params.port = 9100; // 打印唯一端口9100
this.$gainschaPrint.connect(params, (conResp) => {
// 连接状态变更回调
this.connectCallbak(conResp);
});
});
Android 蓝牙连接
蓝牙权限
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-feature
android:name="android.hardware.bluetooth_le"
android:required="true" />
// android蓝牙连接需要用到mac地址作为参数,佳博自带的蓝牙模块不适配Android 12,uniapp官网提供蓝牙API暂时没找到有mac地址参数
// 插件市场蓝牙插件有获取mac地址插件,只需调用插件的扫描接口获取到mac即可,无需连接,https://ext.dcloud.net.cn/plugin?id=9710
// 选择打印命令类型
this.selectCommand((commandResp) => {
var params = {};
params.connMethod = 0; // 连接方式,2: bluetooth连接
params.command = commandResp; // 打印命令类型
params.macAddress = "xxx"; // 蓝牙mac地址
this.$gainschaPrint.connect(params, (conResp) => {
// 连接状态变更回调
this.connectCallbak(conResp);
});
});
ios 蓝牙连接
蓝牙权限:
<key>NSBluetoothAlwaysUsageDescription</key>
<string>访问蓝牙需要您的授权</string>
先设置蓝牙的回调setBluetoothCallback,再初始化蓝牙模块initBluetooth,初始化蓝牙模块后,会有蓝牙状态变更的的回到,当蓝牙状态为5(CBManagerStatePoweredOn)状态时,这时可以调用扫描蓝牙接口startScanBle开始扫描,扫描到的蓝牙设备会不断回调onScanBluetooth
// ios设置蓝牙回调
this.$gainschaPrint.setBluetoothCallback((resp) => {
var opt = resp.opt;
switch (opt) {
// 蓝牙状态变更时回调
case "onBluetoothUpdateState":
this.showMsg(JSON.stringify(resp));
var state = resp.state;
switch (state) {
// CBManagerStateUnknown
case 0:
break;
// CBManagerStateResetting
case 1:
break;
// CBManagerStateUnsupported
case 2:
break;
// CBManagerStateUnauthorized
case 3:
break;
// CBManagerStatePoweredOff
case 4:
break;
// CBManagerStatePoweredOn
case 5:
this.showMsg("蓝牙已开启,可以开始扫描蓝牙");
break;
}
break;
// 每次扫描到一个蓝牙设备都会回调
case "onScanBluetooth":
var device = resp.device;
var deviceId = device.deviceId;
break;
default:
break;
}
});
// iOS初始化蓝牙模块
this.$gainschaPrint.initBluetooth();
// 开始扫描蓝牙
this.$gainschaPrint.startScanBle({});
// 停止扫描
this.$gainschaPrint.stopScan({});
// 蓝牙连接打印机
var params = {};
params.connMethod = 0; // 连接方式,0:蓝牙连接
params.deviceId = "xxxx"; // 蓝牙设备ID
params.timeout = 5; // 超时时间
this.$gainschaPrint.connect(params, (conResp) => {
// 连接状态变更回调
this.connectCallbak(conResp);
});
ios wifi连接
var params = {};
params.connMethod = 2; // 连接方式,2:wifi连接
params.ip = this.ip; // 打印机IP
params.port = 9100; // 打印唯一端口9100
this.$gainschaPrint.connect(params, (conResp) => {
// 连接状态变更回调
this.connectCallbak(conResp);
});
- 获取设备所有的串口
this.$gainschaPrint.getSerialPorts((resp) => {})
- 获取设备所有的USB
this.$gainschaPrint.getUSBDevices((resp) => {})
- 连接打印机
var params = {};
params.connMethod = 2; // 连接方式,0: 蓝牙连接 1: USB连接 2:wifi连接 3: 串口连接
if(this.isAndroid()) { // android连接需要command参数
params.command = "esc"; // 打印命令类型,取值为:esc、tsc、cpcl
}
params.macAddress = "xxx"; // android蓝牙连接时需要传蓝牙mac地址
params.deviceId = "";// ios蓝牙连接时需要传蓝牙设备ID
params.deviceName = "xxx"; // Android USB连接时需要传USB名称
params.ip = this.ip; // wifi连接时,打印机的IP
params.port = 9100; // wifi连接时,打印唯一端口9100
params.serialPort = ""; // android串口连接时需要传串口的路径
params.baudRate = 115200; // android串口连接时需要传串口的波特率
this.$gainschaPrint.connect(params, (conResp) => {
// 连接状态变更回调
var opt = conResp.opt;
switch (opt) {
case "onConnecting":
break;
case "onCheckCommand":
break;
case "onSuccess":
this.connectSuc();
break;
case "onReceive":
break;
case "onFailure":
break;
case "onDisconnect":
break;
default:
break;
}
});
- 断开连接
// 先关闭上次连接
this.$gainschaPrint.close();
打印
按照官网的demo,所有的打印指令发送之前需要先判断当前打印机连接状态,当状态正常时再发送打印指令
// 判断状态是否正常
this.$gainschaPrint.getPrinterState((resp) => {
var code = resp.code;
if (code == 0) {
var status = resp.status;
if (status == 0) { // 0 为正常状态,其他不正常,打印机处于不正常状态,则不发送打印任务
// 状态正常,可以发送打印指令
}
}
});
ESC小票打印(如需更多接口请联系作者)
var data = [];
//初始化打印机
data.push({
type: "addInitializePrinter"
});
// 设置打印居中
data.push({
type: "addSelectJustification",
value: 1
});
// 根据业务继续拼装data,详细的data里的对象取之见下面
........
var params = {};
params.data = data; // data为打印指令逻辑
this.$gainschaPrint.printEsc(params, (resp) => {
var code = resp.code;
if (code == 0) {
var suc = resp.suc;
if (suc) { // 指令发送成功
} else { // 指令发送失败
}
} else {
var msg = resp.msg;
}
});
- 打印机初始化
{
type: "addInitializePrinter"
}
- 打印并且走纸多少行
{
type: "addPrintAndFeedLines",
value: 1
}
- 设置字符放大
android:
{
type: "addSetCharcterSize",
width: 0, // 取之范围:[0, 16, 32, 48, 64, 80, 96, 112]
height: 1 // 取之范围:[0, 1, 2, 3, 4, 5, 6, 7]
}
ios:
设置字符放大,限制为不放大和放大2倍,n=0x11
{
type: "addSetCharcterSize",
n: 0, // n= width | height 宽度放大倍数,0 ≤n ≤255 (1 ≤ 纵向放大倍数 ≤8,1 ≤ 横向放达倍数 ≤8)[描述] 用0 到2 位选择字符高度,4 到7 位选择字符宽度
}
- 设置对齐方式
{
type: "addSelectJustification",
value: 0, // 取之范围:0:left 1: center 2: right
}
- 设置打印模式
android:
{
type: "addSelectPrintModes",
font: "fonta", // 取之范围:fonta、fontb
emphasized: true,
doublewidth: true,
doubleheight: true,
underline: true
}
ios:
/**
* 方法说明:设置打印模式,0x1B 0x21 n(0-255),根据n的值设置字符打印模式
* @param font 选择FONTA or FONTB
* @param emphasized 是否加粗
* @param doubleheight 是否倍高,当倍宽和倍高模式同时选择时,字符同时在横向和纵向放大两倍。
* @param doublewidth 是否倍宽
* @param underline 是否下划线
*参数n二进制默认为00000000(0X0),10001000(0X88)表示下划线和加粗,00001000(0X08)表示加粗,10000000(0X80)表示下划线
*/
{
type: "addSelectPrintModes",
n: 0
}
- 插入文字
{
type: "addText",
value: "xxx",
charsetName: "xx" // 可选值,只支持Android
}
- 进纸一行,即换行
{
type: "addPrintAndLineFeed"
}
- 打印光栅位图
{
type: "addRastBitImage",
image: {
type: "url",
value: "/xxxx/xxx/aa.png" // 本地文件绝对路径,路径以/开头,不能以file://开头
},
width: 384,// 打印在标签上图片的宽度 传入参数为点数, 200dpi打印机 1mm=8dot 若打印图片在200dpi打印机上,需要打印的宽度为20mm 即传入该参数为20*8=160 58打印机最大可以传入参数为 384dot 80打印机为576dot
mode: 0 // 图片模式,只支持Android
}
- 设置条码可识别字符
{
type: "addSelectPrintingPositionForHRICharacters",
value: 0 // 0:NO_PRINT 1: ABOVE 2: BELOW 3: ABOVE_AND_BELOW
}
- 设置条码高度
{
type: "addSetBarcodeHeight",
value: 0 // 字节类型
}
- 设置条码单元宽度
{
type: "addSetBarcodeWidth",
value: 0 // 字节类型
}
- 打印CODE128码
{
type: "addCODE128",
value: “codevalue”,
code: "b", // android(b: CodeB c: CodeC 128: Code128) ios(b: CodeB c: CodeC a: A)
}
- 设置QRCode纠错级别
android:
{
type: "addSelectErrorCorrectionLevelForQRCode",
value: 0x31 // 字节类型
}
ios:
/*
2、设定纠错等级;(一般无需设定,忽略)
[格式] ASCII码 GS ( K pL pH cn fn m d1...dk
十六进制码 1D 28 6B 03 00 31 45 n
[范围] (pL+pH×256)=3 (pL=3,pH=0)
cn=49
fn=69
48≤n≤51
[默认值] n=48
*/
{
type: "addSelectErrorCorrectionLevelForQRCode",
pL: 0,
withpH: 0,
withcn: 0,
withyfn: 0,
withn:0
}
- 设置QRCode单元模块大小
android:
{
type: "addSelectSizeOfModuleForQRCode",
value: 0x04 // 字节类型
}
ios:
/*
正确的ESC指令下QRCode打印流程为四步:
1、设定QRCode大小;(可以省略)
2、设定纠错等级;(一般无需设定,忽略)
3、将QRCode对应的文字信息存入打印机缓存中;(必须要有)
4、发送打印QRCode命令。
一共有四个命令对应上述四步。
*/
/*
1、设定QRCode大小;(可以省略)
[格式] ASCII码 GS ( K pL pH cn fn n
十六进制码 1D 28 6B 03 00 31 43 n
[范围] (pL+pH×256)=3 (pL=3,pH=0)
cn=49
fn=67
1 ≤n≤16
[默认值] n=3
*/
{
type: "addSelectSizeOfModuleForQRCode",
pL: 0,
withpH: 0,
withcn: 0,
withyfn: 0,
withn: 0
}
- 存入QRCode数据在打印机
android:
{
type: "addStoreQRCodeData",
value: "xxx"
}
ios:
/*
3、将QRCode对应的文字信息存入打印机缓存中;(必须要有)
[格式] ASCII码 GS ( K pL pH cn fn m d1...dk
十六进制码 1D 28 6B pL pH 31 50 30 d1...dk
[范围] 4≤(pL+pH×256)≤7092 (0≤pL≤255,0≤pH≤27)
cn=49
fn=80
m=48
k=(pL+pH×256)-3
[描述] 存储QR CODE数据(d1...dk)到符号存储区
[注释] • 将QRCode的数据存储到打印机中
• 执行esc @或打印机掉电后,恢复默认值
*/
{
type: "addStoreQRCodeData",
pL: 0,
withpH: 0,
withcn: 0,
withyfn: 0,
withm: 0,
}
- 打印存储的QRCode
android:
{
type: "addPrintQRCode"
}
ios:
/*
4、发送打印QRCode命令。
[格式] ASCII码 GS ( K pL pH cn fn m
十六进制码 1D 28 6B 03 00 31 51 m
[范围] (pL+pH×256)=3 (pL=3,pH=0)
cn=49
fn=81
m=48
[描述] 打印QRCode条码,在发送此命令之前,需通过( K< Function 180)命令将QRCode数据存储在打印机中。
*/
{
type: "addPrintQRCode",
pL: 0,
withpH: 0,
withcn: 0,
withyfn: 0,
withm: 0
}
- 设置字符类型,仅支持Android
{
type: "addSelectCharacterFont",
font: "fonta" // fonta、fontb
}
- 开钱箱
{
type: "addGeneratePlus",
foot: 0,// 钱箱引脚号, 0: F2 1: F5
t1: 255, // 高电平时间
t2: 255 // 低电平时间
}
- 切纸(带切刀打印机才可用)
{
type: "addCutPaper",
m: 0 // 0全切纸,1是半切,仅支持iOS
}
- 添加用户自定义指令
{
type: "addUserCommand",
value: "FFAABB"
}
- 打印图片
{
type: "drawImage",
image: {
type: "url",
value: "/xxx/aa.png"
},
width: 30
}
- 设置加粗模式
{
type: "addTurnEmphasizedModeOnOrOff",
value: "on" // on、off
}
TSC标签打印(如需更多接口请联系作者)
var data = [];
if (!this.isAndroid()) {
// ios 需要以startZpl开始
data.push({
type: "startZpl"
});
}
if (this.isAndroid()) {
data.push({
type: "addUserCommand",
value: "\r\n"
});
}
// 根据业务继续拼装data,详细的data里的对象取之见下面
........
if (!this.isAndroid()) {
// ios 需要以endZpl结束
data.push({
type: "endZpl"
});
}
var params = {};
params.data = data; // data为打印指令逻辑
this.$gainschaPrint.printTsc(params, (resp) => {
var code = resp.code;
if (code == 0) {
var suc = resp.suc;
if (suc) { // 指令发送成功
} else { // 指令发送失败
}
} else {
var msg = resp.msg;
}
});
- 设标签起始,起始命令必须以这个开始,仅支持iOS
{
type: "startZpl"
}
- 标签结束,最后命令必须以这个结束,仅支持iOS
{
type: "endZpl"
}
- 设置标签尺寸的宽和高 单位 mm
{
type: "addSize",
width: 10,
height: 10
}
- 增加用户自定义指令,仅支持Android
{
type: "addUserCommand",
value: "FFAABB"
}
- 清除命令缓冲区,仅支持Android
{
type: "clrCommand"
}
- 设置标签间隙尺寸 单位mm,仅支持Android
{
type: "addGap",
value: 10
}
- 设置打印方向
{
type: "addDirection",
direction: "forward" // forward、backward
mirror: "mirror" // normal、mirror
}
- 查询打印机实时状态,仅支持Android
{
type: "addQueryPrinterStatus",
value: "on" // 可选值,on、off、batch
}
- 设置标签原点坐标
{
type: "addReference",
x: 0,
y: 0
}
- 设置打印浓度
{
type: "addDensity",
value: 0 // 取之范围,android:0~15 ios:0~30
}
- 设置打印机撕离模式,仅支持Android
{
type: "addTear",
value: "on" // on、off、batch
}
- 清除打印缓冲区/清除上张标签内容
{
type: "addCls",
isCls: true // 仅支持iOS
}
- 在标签上绘制文字
android:
{
type: "addText",
value: "xxx",
x: 0,
y: 0,
font: "TSS16.BF2", // 参数见下面
rotation: 0, // 0、90、180、270
Xscal: 1, // 1~10
Yscal: 1 // 1~10
}
ios:
{
type: "addText",
value: "xxx",
x: 0,
y: 0,
font: 0, // 默认值:0 其他值:A-Z,0-9(打印机的任何字体,包括下载字体,EPROM 中储存的,当然这些字体必须用^CW 来定义为 A-Z,0-9)
rotation: "N", // 字符串类型,旋转角度 N = 正常 (Normal) R = 顺时针旋转 90 度(Roated) I = 顺时针旋转 180 度(Inverted) B = 顺时针旋转 270 度 (Bottom)
width: 1, //
height: 1 //
}
android font: 0.TTF: FONT_0 1.TTF: Bold 2.TTF: SongTi 4.TTF: Thai 1: FONT_1 2: FONT_2 3: FONT_3 4: FONT_4 5: FONT_5 6: FONT_6 7: FONT_7 8: FONT_8 9: FONT_9 10: FONT_10 TSS16.BF2: SIMPLIFIED_16_CHINESE TSS20.BF2: SIMPLIFIED_20_CHINESE TSS24.BF2: SIMPLIFIED_24_CHINESE TSS32.BF2: SIMPLIFIED__32_CHINESE TST24.BF2: TRADITIONAL_CHINESE K: KOREAN
- 打印其他编码语言,仅支持Android
{
type: "addUnicodeText",
textType: "BIG5", // BIG5: 繁体 EUC_KR: 韩文
value: "BIG5碼繁體中文",
x: 0,
y: 0,
font: "TSS16.BF2", // 参数见addText的font
rotation: 0, // 0、90、180、270
Xscal: 1, // 1~10
Yscal: 1 // 1~10
}
- 在标签上绘制图片
{
type: "addBitmap",
x: 0,
y: 0,
width: 50,
mode: 0 // 可选值,仅支持Android,0: OVERWRITE 1: OR 2: XOR
}
- 打印二维码
android:
{
type: "addQRCode",
value: "xxx",
x: 0,
y: 0,
cellWidth: 50,
level: "l", // l: LEVEL_L m: LEVEL_M q: LEVEL_Q h: LEVEL_H
rotation: 0 // 0、90、180、270
}
ios:
{
type: "addQRCode",
value: "xxx",
x: 0,
y: 0
}
- 标签上绘制一维条码, 仅支持Android
{
type: "add1DBarcode",
value: "xxx",
x: 0,
y: 0,
height: 50,
barType: "128", // 128、128M、EAN128、25、25C、39、39C、39S、93、EAN13、EAN13+2、EAN13+5、EAN8、EAN8+2、EAN8+5、CODA、POST、UPCA、UPCA+2、UPCA+5、UPCE13、UPCE13+2、UPCE13+5、CPOST、MSI、MSIC、PLESSEY、ITF14、EAN14
readable: 0, // 0:DISABLE 1:EANBEL
rotation: 0, // 0、90、180、270
narrow: 0, // 非必填
width: 50 // 非必填
}
- 执行打印
android:
{
type: "addPrint",
m: 1, // 份数
n: 0 // 非必填,每张拷贝数 默认值:0(不复制) 每张标签需重复打印的张数 1≤n≤99999999
}
ios:
{
type: "addPrint",
m: 1, // 份数
n: 0, // 每张拷贝数 默认值:0(不复制) 每张标签需重复打印的张数 1≤n≤99999999
pauseCut: 0, // 多少张后暂停,默认0(不暂停
isPause: false // 如果参数设定为 YES,打印机打印不会有暂停操作,如果设定为 NO,打印机每打印一组标签就会暂停,直到用户按下 FEED
}
- 矩阵二维码,仅支持Android
{
type: "addDMATRIX",
x: 1,
y: 0,
width: 50,
height: 50,
value: "xxx",
rotation: 0, // 0、90、180、270
}
- 设置蜂鸣器,仅支持Android
{
type: "addSound",
level: 1, // 频率
interval: 0 // 时间
}
- 打开钱箱命令,仅支持Android
{
type: "addCashdrwer",
foot: 0, // 钱箱号 0: F2 1:F5
t1: 0, // 高电平时间
t2: 0// 低电平时间
}
- 已分割压缩图片算法,打印挽联可用 (部分机器可用)不支持,打印空白或不打印,仅支持Android
{
type: "addZLibNoTrembleBitmapheight",
x: 0, //
y: 0, //
width: 0,
image: {
type: "url",
value: "/xxxx/sss.png"
}
}
- 设置标签黑标尺寸 单位mm,仅支持Android
{
type: "addBline",
value: 0, //
}
- 打印图片
{
type: "drawImage",
x: 0, //
y: 0, //
width: 100,
image: {
type: "url",
value: "/xxxx/sss.png"
}
}
- 打印图片,仅支持Android
{
type: "drawJPGImage",
x: 0, //
y: 0, //
width: 100,
image: {
type: "url",
value: "/xxxx/sss.png"
}
}
CPCL面单打印(如需更多接口请联系作者)
var data = [];
if(this.isAndroid()) {
data.push({
type: "addUserCommand",
value: "\r\n"
});
data.push({
type: "addInitializePrinter",
height: 900,
qty: 1
});
} else {
data.push({
type: "addInitializePrinter",
height: 900,
qty: 1,
offset: 0
});
}
// 根据业务继续拼装data,详细的data里的对象取之见下面
........
data.push({
type: "addPrint"
});
var params = {};
params.data = data;
this.$gainschaPrint.printCpcl(params, (resp) => {
var code = resp.code;
if (code == 0) {
var suc = resp.suc;
if (suc) { // 指令发送成功
} else { // 指令发送失败
}
} else {
var msg = resp.msg;
}
});
- 标签初始化指令
android:
{
type: "addInitializePrinter",
height: 10, // 非必填
qty: 1,// 非必填
offset: 0 // 非必填
}
ios:
{
type: "addInitializePrinter",
height: 10,
qty: 1,
offset: 0
}
- 增加用户指令,仅支持Android
{
type: "addUserCommand",
value: "FFBB"
}
- 控制字段对齐方式
{
type: "addJustification",
value: "center", // center、left、right
end: 0 // 非必填,仅支持Android
}
- 放大字体指令
{
type: "addSetmag",
w: 1, // 字体宽度放大倍数 1-16
h: 1 // 字体高度放大倍数 1-16
}
- 在打印缓冲器添加文字指令
android:
{
type: "addText",
value: "xxx",
x: 1,
y: 1,
font: "1" // 0、1、2、3、4、5、6、7、8、10、11、13、20、24、41、42、43、44、45、46、47、48、49、50
}
ios:
{
type: "addText",
value: "xxx",
x: 1,
y: 1,
textCommand: 0, // 0: 横向打印文本 1:逆时针旋转 90 度,纵向打印文本。 2:同上 3: 逆时针旋转 180 度,反转打印文本。 4: 逆时针旋转 270 度,纵向打印文本。
font: "1" // 0、1、2、3、4、5、6、7、8、10、11、13、20、24、41、42、43、44、45、46、47、48、55、58
}
- 打印位映射图像
{
type: "addEGraphics",
x: 1,
y: 1,
width: 20,
image: {
type: "url",
value: "/xxxx/aa/aa.png"
}
}
- 注释条码,仅支持Android
{
type: "addBarcodeText",
font: 1, // 注释条码使用的字体号
offset: 1 // 文本距离条码的偏移量
}
- 横向打印条形码 ,选择理想宽窄比和理想窄点宽
android:
{
type: "addBarcode",
value: "xx",
command: "barcode", // barcode、vbarcode
code: "128",// 128、UPCA、UPCE、EAN13、EAN8、39、93、CODABAR
height: 10,
x: 1,
y: 1
}
ios:
{
type: "addBarcode",
value: "xx",
command: 0, // 0: barcode、1: vbarcode
code: 1,// 1:128、2:UPCA、3:UPCE、4:EAN13、5:EAN8、6:39、7:93、8:CODABAR
width: 50,
height: 10,
ratio: 0, // 见下面ratio说明
x: 1,
y: 1
}
ratio: // 宽窄比枚举 typedef enum { Point0 = 0,//1.5:1 Point1 = 1,//2.0:1 Point2 = 2,//2.5:1 Point3 = 3,//3.0:1 Point4 = 4,//3.5:1 Point20 = 20,//2.0:1 Point21 = 21,//2.1:1 Point22 = 22,//2.2:1 Point23 = 23,//2.3:1 Point24 = 24,//2.4:1 Point25 = 25,//2.5:1 Point26 = 26,//2.6:1 Point27 = 27,//2.7:1 Point28 = 28,//2.8:1 Point29 = 29,//2.9:1 Point30 = 30,//3.0:1 }BARCODERATIO;//宽窄比
- 打印二维码
android:
{
type: "addBQrcode",
value: "xx",
x: 1,
y: 1,
n: 2, // 非必填,QRcode规范编码,1或2,推荐为2
u: 6 // 非必填,模块的单位宽/单位高度 1-32 默认为6
}
ios:
{
type: "addBQrcode",
value: "xx",
command: 0, // 0: barcode、1: vbarcode
x: 1,
y: 1,
n: 2, // QRcode规范编码,1或2,推荐为2
u: 6 // 模块的单位宽/单位高度 1-32 默认为6
}
- 打印标签指令
{
type: "addPrint"
}
- 设置标签内存宽度
{
type: "addPagewidth,
value: 20
}
- 设置打印速度
{
type: "addSpeed,
value: 1 // 0~5
}
- 行模式 文本加粗
{
type: "addSetbold,
isBold: true
}