【Uniapp 原生插件】商米内置打印机插件

762次阅读
没有评论

文章目录
商米内置打印机插件
插件需求
插件介绍
使用案例
获取插件
连接服务
断开服务
测试打印
接口列表
商米内置打印机插件
插件地址:https://ext.dcloud.net.cn/plugin?id=8291

插件需求
使用插件前,请先使用试用版本,在本地调试好,看插件是否满足,再进行购买。如果插件不满足你的需求,可以联系我(微信:18386474459),尝试修改插件或者增加功能的方式,来帮助实现你的业务逻辑。

插件介绍
商米内置打印机插件,支持商米所有的一体机打印,采用的是商米一体机打印文档的标准 SDK 封装。初始化连接成功之后,直接从 Uniapp 端即可组装参数、纸张格式,直接传递到插件即可打印。下面有所有的接口文档,看不懂的可以打开商米官网查看一体机打印文档
模块的文档。

一体机打印文档适用于所有内置打印机的商米设备

连接方式:远程依赖库、蓝牙(蓝牙设备名:InnerPrinter)、AIDL 等

第三方 APP 可以通过连接内置打印机进行打印业务。商米打印机包含的功能:58 和 80mm 两种打印规格的热敏打印机,切刀(部分机器),钱箱(部分机器),客显(部分机器)

商米打印机一体机打印文档

使用案例
获取插件
// 商米内置打印机插件
let sunmiPrinterPlugin = uni.requireNativePlugin(‘Tellsea-SunmiPrinterPlugin’);
console.log(‘商米内置打印机插件:’ + JSON.stringify(sunmiPrinterPlugin));

连接服务
// 连接服务
connect() {
sunmiPrinterPlugin.connect((e) => {
let res = JSON.parse(e);
console.log(res);
if (res.code == 200) {
that.$msg(res.msg);
} else {
that.$msg(res.msg);
}
});
},

断开服务
// 断开服务
disconnect() {
sunmiPrinterPlugin.disconnect((e) => {
let res = JSON.parse(e);
console.log(res);
if (res.code == 200) {
that.$msg(res.msg);
} else {
that.$msg(res.msg);
}
});
},

测试打印
// 测试打印
testPrinter() {
sunmiPrinterPlugin.printerInit();
sunmiPrinterPlugin.getPrinterPaper((paper) => {
sunmiPrinterPlugin.setAlignment(1);
sunmiPrinterPlugin.printTextWithFont(“结账单 #100\n”, null, 48);
sunmiPrinterPlugin.printTextWithFont(“Tellsea 专卖店\n”, null, 40);
that.setInterval(paper);
sunmiPrinterPlugin.setAlignment(0);
sunmiPrinterPlugin.setPrinterStyle(2003, 0);
sunmiPrinterPlugin.printTextWithFont(“桌台号:华山007\n”, null, 28);
sunmiPrinterPlugin.printTextWithFont(“就餐人数:1人\n”, null, 28);
sunmiPrinterPlugin.printTextWithFont(“配送类型:骑手配送\n”, null, 28);
sunmiPrinterPlugin.printTextWithFont(“订单号:131561658165116\n”, null, 28);
that.setInterval(paper);
sunmiPrinterPlugin.setPrinterStyle(1002, 1);
let txts = [“商品”, “数量”, “单价”];
let width = [4, 1, 1];
let align = [0, 1, 2];
sunmiPrinterPlugin.printColumnsString(txts, width, align);
sunmiPrinterPlugin.setPrinterStyle(1002, 2);
// 多属性格式
txts[0] = “杨枝甘露”;
txts[1] = “”;
txts[2] = “”;
sunmiPrinterPlugin.printColumnsString(txts, width, align);
txts[0] = “大份、加冰、微辣”;
txts[1] = 1;
txts[2] = 18;
sunmiPrinterPlugin.printColumnsString(txts, width, align);
// 单属性格式
txts[0] = “小馒头”;
txts[1] = 1;
txts[2] = 18;
sunmiPrinterPlugin.printColumnsString(txts, width, align);
// 单个菜设置备注
txts[0] = “备注少放盐”;
txts[1] = “”;
txts[2] = “”;
sunmiPrinterPlugin.printColumnsString(txts, width, align);
that.setInterval(paper);
sunmiPrinterPlugin.printTextWithFont(“订单原价:999\n”, null, 28);
sunmiPrinterPlugin.printTextWithFont(“优惠金额:1\n”, null, 28);
sunmiPrinterPlugin.printTextWithFont(“抹零金额:0.99\n”, null, 28);
sunmiPrinterPlugin.printTextWithFont(“整单打折:8折\n”, null, 28);
sunmiPrinterPlugin.printTextWithFont(“打折金额:200\n”, null, 28);
sunmiPrinterPlugin.printTextWithFont(“订单备注:麻烦快一点,客人忙着出去\n”, null, 28);
that.setInterval(paper);
sunmiPrinterPlugin.printTextWithFont(“实付金额:888\n”, null, 40);
that.setInterval(paper);
sunmiPrinterPlugin.printText(” \n”);
sunmiPrinterPlugin.printText(” \n”);
sunmiPrinterPlugin.printText(” \n”);
sunmiPrinterPlugin.printText(” \n”);
sunmiPrinterPlugin.cutPaper();
});
},
setInterval(paper) {
if (paper == 1) {
sunmiPrinterPlugin.printText(“——————————–\n”);
} else {
sunmiPrinterPlugin.printText(“————————————————\n”);
}
}

接口列表
内置打印机开发文档全系列接口。接口的使用,对照着官方在线文档:内置打印机开发文档,查看接口的作用就行了,直接翻译接口名也能知道是啥作用。

void updateFirmware();

    int getFirmwareStatus();

    String getServiceVersion();

    void printerInit();

    void printerSelfChecking();

    String getPrinterSerialNo();

    String getPrinterVersion();

    String getPrinterModal();

    void getPrintedLength();

    void lineWrap(int var1);

    void sendRAWData(byte[] var1);

    void setAlignment(int var1);

    void setFontName(String var1);

    void setFontSize(float var1);

    void printText(String var1);

    void printTextWithFont(String var1, String var2, float var3);

    void printColumnsText(String[] var1, int[] var2, int[] var3);

    void printBitmap(Bitmap var1);

    void printBarCode(String var1, int var2, int var3, int var4, int var5);

    void printQRCode(String var1, int var2, int var3);

    void printOriginalText(String var1);

    void commitPrint(TransBean[] var1);

    void commitPrinterBuffer();

    void cutPaper();

    int getCutPaperTimes();

    void openDrawer();

    int getOpenDrawerTimes();

    void enterPrinterBuffer(boolean var1);

    void exitPrinterBuffer(boolean var1);

    void tax(byte[] var1, InnerTaxCallback var2);

    void getPrinterFactory();

    void clearBuffer();

    void commitPrinterBufferWithCallback();

    void exitPrinterBufferWithCallback(boolean var1);

    void printColumnsString(String[] var1, int[] var2, int[] var3);

    int updatePrinterState();

    void sendLCDCommand(int var1);

    void sendLCDString(String var1);

    void sendLCDBitmap(Bitmap var1);

    int getPrinterMode();

    int getPrinterBBMDistance();

    void printBitmapCustom(Bitmap var1, int var2);

    int getForcedDouble();

    boolean isForcedAntiWhite();

    boolean isForcedBold();

    boolean isForcedUnderline();

    int getForcedRowHeight();

    int getFontName();

    void sendLCDDoubleString(String var1, String var2);

    int getPrinterPaper();

    boolean getDrawerStatus();

    void sendLCDFillString(String var1, int var2, boolean var3);

    void sendLCDMultiString(String[] var1, int[] var2);

    int getPrinterDensity();

    void print2DCode(String var1, int var2, int var3, int var4);

    void autoOutPaper();

    void setPrinterStyle(int var1, int var2);

    void labelLocate();

    void labelOutput();
正文完
可以使用微信扫码关注公众号(ID:xzluomor)
post-qrcode
 
评论(没有评论)