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

商米内置打印机插件

插件需求

使用插件前,请先使用试用版本,在本地调试好,看插件是否满足,再进行购买。如果插件不满足你的需求,可以联系我(微信: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();
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tellsea

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值