更新记录

1.0.0(2025-05-30)

可以通过sdk连接到内置打印机来打印,支持58和80mm热敏打印机,两种打印规格,切刀


平台兼容性

uni-app

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
- - - - 5.0 ×
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 快应用-华为 快应用-联盟
× × × × × × - × × × ×

uni-app x

Chrome Safari Android iOS 鸿蒙 微信小程序
- - 5.0 × ×

概述

emin-printer封装一敏打印模块,支持一敏旗下的所有商用硬件的打印服务,设备应用于包括外卖接单,打印小票,扫描,收款,团购核销,点餐预约等一系列商业场景。

功能说明

  1. 一敏打印服务介绍 一敏打印服务是系统预置的功能,用于管理一敏打印机设置和外接打印机的添加。开发者可以通过本服务配置内置打印机,以及添加外接打印机无需额外适配。该插件完整实现了Android原生库PrinterSDK(com.sunmi:printerx)的所有功能,方便开发者直接通过Uniapp和UniappX平台调用打印服务,实现跨平台需求。

    一敏官网打印服务介绍

  2. 一敏新emin-printer打印说明

    为了更方便开发者调用一敏品牌的打印机,也为了简化开发者打印相关开发难度,一敏官方于2024年3月底对一敏打印SDK做了重构,通过本次升级,扩展了SDK功能,提高了SDK使用的上手速度,统一并简化了所有设备打印业务的SDK封装

  3. 新旧功能对比示

    对比项 旧版SDK 新版SDK
    支持打印类型 仅支持热敏小票打印机按行打印 支持热敏小票、热敏标签、文件打印等多种方式
    适配范围 仅针对一敏内置打印机 支持所有一敏设备
    指令支持 仅支持ESC标准指令 支持ESC、TSPL以及将来扩展更多指令
    友好度 构建复杂样式内容困难 构建复杂样式简单易上手
  4. 注意事项

    从应用市场下载插件导入自己项目后,要先制作自定义插件后,才可以运行使用(示例程序已经打好基座,可以直接运行)

    emin-printer插件需在 Android 5.0 版本及以上方可正常使用

    尽量使用 HBuilderX 4.0+ 以上版本,以便更好在uni-app和uni-app x中使用uts插件

    使用前要先调用initPrinter()方法初始化打印机,才可以正常打印,打印结束要及时调用closePrinter关闭打印服务

  5. 打印机状态说明

    getPrinterStatus()

    返回值说明:当前打印机状态

    -1 -> 未连接服务 3 -> 开盖 4 -> 打印头温度过高 7 -> 缺纸 0 -> 打印机正常

完整代码示例

<template>
    <view>
        <button @click="printTest()">打印测试</button>
        <view>打印机状态:{{printerStatus}}</view>
    </view>
</template>

<script>
    import {initPrinter,deInitPrinter,getPrinterStatus,setPageFormat,setPrinterDensity,printAndLineFeed,partialCut,fullCut,setFontMultiple,setFontBold,setFontItalic,
    setFontUnderline,setFontLineSpacing,setFontChineseSpace,printText,printTextWithAli,setCodeAlignment,printBitmapColorChartWithAlign,printBitmapColorChart,
    printBarCodeWithFull,printQRCodeWithFull}from "@/uni_modules/emin-printer";
    export default {
        data() {
            return {
                printerStatus:'',
            }
        },
        methods: {
            printTest(){
                //初始化打印服务
                initPrinter()
                //获取打印机实时状态 返回值说明:当前打印机状态  -1 ->未连接服务   3 -> 开盖   4 -> 打印头温度过高   7 -> 缺纸  0 -> 打印机正常
                this.printerStatus = getPrinterStatus()

                //设定纸张规格 format 纸张规格 取值(80/58)
                setPageFormat(58)

                //设置打印浓度 density 要设置的浓度值 取值(70,80,90,100,110,120,130,140,150)
                setPrinterDensity(150)

                //走纸  0<value<1016 如果 value 取值大于 1016 则选择 1016
                printAndLineFeed(80)

                //切纸(半切)
                partialCut()

                /**
                 * 设置字符倍数
                 * wide 取值范围 0<= wide<=8
                 * high 倍高 取值范围 0<= wide<=8
                 */
                setFontMultiple(1,1)

                /**
                 * 设置字符是否加粗
                 * bold true 字符加粗 false 字符取消加粗
                 */
                setFontBold(true)

                /**
                 * 设置字符斜体
                 * italic true 字符斜体 ,false 字符取消斜体
                 */
                setFontItalic(true)

                /**
                 * 设置字符下划线
                 *  underline 0 取消下划线  1 轻下划线  2 重下划线
                 */
                setFontUnderline(1)

                /**
                 * 设置字符间距
                 * space 设置字符间距位 anint 个锤子点距,(1mm = 8dots) 范围(0<= anint <= 255)
                 */
                setFontLineSpacing(4)

                /**
                 * 设置中文字符间距
                 * chsLeftSpace  距离小票左边距 范围(0<chsLeftSpace<255)
                 * chsRightSpace 距离小票右边距 范围(0<chsRightSpace<255)
                 */
                setFontChineseSpace(2,2)

                /**
                 * 设置打印全局对齐方式
                 * alignmentMode 0 居左 1 居中 2 居右
                 */
                setCodeAlignment(1)

                //打印文字
                printText('=====小票打印测试=====')

                /**
                 * 文字打印添加对齐方式
                 * text  待打印的文本
                 * anInt 0 左对齐 1 居中 2 右对齐
                 */
                printTextWithAli('文字打印添加对齐方式',2)

                /**
                 * 图片单色打印添加对齐方式
                 * base64String  图片
                 * alignmentMode 打印文本的对齐方式 0=居左 1=居中 2=居右
                 */
                let base64String = "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"
                printBitmapColorChartWithAlign(base64String,2)

                /**
                 * 图片单色打印
                 * base64String 图片
                 */
                printBitmapColorChart(base64String)

                /**
                 * 一维码打印传全参数
                 * data          一维码的内容
                 * barCodeType   一维码类型
                 * width         一维码宽度取值范围 2<= width <= 6
                 * height        一维码的高度,取值范围 24<= height<= 250
                 * textposition  HRI 字符的位置,取值范围 0<= height<= 3
                 * alignmentMode 一维码对齐方式 0=居左 1=居中 2=居右
                 */
                printBarCodeWithFull('123456789',0,4,100,2,1)

                /**
                 * 二维码打印传全参数
                 *
                 * data       二维码的内容
                 * size       二维码的大小 取值范围 1<= size <= 11
                 * errorlevel 二维码的纠错级别 取值范围 0<= level<= 3
                 * alignments 一维码对齐方式 0=居左 1=居中 2=居右
                 */
                printQRCodeWithFull('987654321',8,2,1)

                //全切
                fullCut()

                //注销打印服务
                deInitPrinter()
            }
        },
    }
</script>

长期维护,持续更新,提供终身免费技术支持

本插件已稳定运行3年,请您放心使用

隐私、权限声明

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

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

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

暂无用户评论。

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