类 Printer


  • public class Printer
    extends java.lang.Object
    • 构造器概要

      构造器 
      构造器 说明
      Printer()  
      Printer​(java.lang.String printerId)  
    • 方法概要

      所有方法 静态方法 实例方法 具体方法 
      修饰符和类型 方法 说明
      static void addConnectionListener​(ConnectionListener connectionListener)
      添加打印机连接状态广播接收者
      void connectByBlueTooth​(android.bluetooth.BluetoothDevice bluetoothDevice)
      连接到蓝牙打印机
      void connectByBlueTooth​(java.lang.String bluetoothDeviceAddress)
      连接到蓝牙打印机
      void connectBySerial​(java.lang.String serialPath, int boundRate)
      连接到串口打印机
      void connectByTcp​(java.lang.String ip, int port)
      连接到WIFI打印机
      void connectByUsb​(android.hardware.usb.UsbDevice device)
      连接到USB打印机
      void connectByUsbAccessory​(android.hardware.usb.UsbAccessory device)
      连接到USB配件打印机
      void disconnect()
      断开与打印机的连接
      static void disconnect​(java.lang.String printerId)
      断开打印机连接
      static java.util.Map<java.lang.String,​Printer> getConnectedPrinters()
      获取已连接的打印机列表
      ConnectType getConnectType()
      获取打印机连接方式
      static Printer getPrinter​(java.lang.String printerId)
      获取已连接的打印机实例
      java.lang.String getPrinterId()
      获取打印机ID
      void getPrinterModel​(Instruction instruction, PrinterResponse<java.lang.String> callback)
      获取打印机型号 指定指令类型,效率高
      void getPrinterModel​(PrinterResponse<java.lang.String> callback)
      获取打印机型号,只有TSC和ESC指令有效 通过发送两种指令请求来获取响应,效率较差
      void getPrinterStatus​(Instruction instruction, PrinterResponse<PrinterState> callback)
      获取打印机状态,只有TSC,ESC,CPCL指令有效
      boolean isConnected()
      是否已经连接到打印机
      static boolean isConnected​(java.lang.String printerId)
      判断打印机是否已连接
      void print​(byte[] data)
      发送数据到打印机
      void print​(byte[] data, int responseTimeOut, boolean responseReadUntilTimeout, PrinterResponse<byte[]> onResponse)
      发送数据到打印机,等待返回内容(超时时间内接收到的全部数据)
      void print​(byte[] data, int responseTimeOut, PrinterResponse<byte[]> onResponse)
      发送数据到打印机,等待返回内容(超时时间内首次接收到的数据)
      void print​(byte[] data, PrinterResponse<byte[]> onResponse)
      发送数据到打印机
      byte[] print​(android.graphics.Bitmap bitmap, int count, PrinterConfig config)
      打印图片
      void printSelfTestPage​(Instruction instruction)
      打印自检页
      static void removeConnectionListener​(ConnectionListener connectionListener)
      解除打印机连接状态广播接收者
      void setAutoReConnect​(boolean autoReConnect, int autoReConnectCount)
      设置自动重连打印机,连接被动断开时执行重连 使用TCP或蓝牙连接时才会自动重连,其它方式连接自动重连也没有意义
      static void setLogEnable​(boolean enable, java.io.File outputFile)
      设置是否打印日志,日志保存文件,需确保应用具有文件读写权限
      void setPrinterId​(java.lang.String printerId)
      设置打印机ID
      void udpChangePrinterDHCP​(java.lang.String mac, boolean enableDHCP, int DHCPTimeOut)
      UDP修改打印机的DHCP开关,超时时间。
      void udpChangePrinterParameter​(java.lang.String mac, java.lang.String ip, java.lang.String gateway, java.lang.String netmask)
      UDP修改打印机的IP、网关、掩码。
      • 从类继承的方法 java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 构造器详细资料

      • Printer

        public Printer()
      • Printer

        public Printer​(java.lang.String printerId)
    • 方法详细资料

      • setLogEnable

        public static void setLogEnable​(boolean enable,
                                        java.io.File outputFile)
        设置是否打印日志,日志保存文件,需确保应用具有文件读写权限
        参数:
        enable - 是否打印日志
        outputFile - 日志输出文件, 值为null时不保存到文件
      • getConnectedPrinters

        public static java.util.Map<java.lang.String,​Printer> getConnectedPrinters()
        获取已连接的打印机列表
      • getPrinterId

        public java.lang.String getPrinterId()
        获取打印机ID
        返回:
        ID
      • setPrinterId

        public void setPrinterId​(java.lang.String printerId)
                          throws java.lang.IllegalStateException
        设置打印机ID
        参数:
        printerId - ID
        抛出:
        java.lang.IllegalStateException - 已连接时设置id抛出异常
      • getPrinter

        public static Printer getPrinter​(java.lang.String printerId)
        获取已连接的打印机实例
      • isConnected

        public static boolean isConnected​(java.lang.String printerId)
        判断打印机是否已连接
        参数:
        printerId - 打印机ID
        返回:
        是否已连接
      • disconnect

        public static void disconnect​(java.lang.String printerId)
        断开打印机连接
      • setAutoReConnect

        public void setAutoReConnect​(boolean autoReConnect,
                                     int autoReConnectCount)
        设置自动重连打印机,连接被动断开时执行重连 使用TCP或蓝牙连接时才会自动重连,其它方式连接自动重连也没有意义
        参数:
        autoReConnect - 是否自动重连
        autoReConnectCount - 自动重连次数
      • addConnectionListener

        public static void addConnectionListener​(ConnectionListener connectionListener)
        添加打印机连接状态广播接收者
        参数:
        connectionListener - 广播接收者
      • removeConnectionListener

        public static void removeConnectionListener​(ConnectionListener connectionListener)
        解除打印机连接状态广播接收者
        参数:
        connectionListener - 移除打印机连接状态回调
      • isConnected

        public boolean isConnected()
        是否已经连接到打印机
      • disconnect

        public void disconnect()
        断开与打印机的连接
      • getConnectType

        public ConnectType getConnectType()
        获取打印机连接方式
      • print

        public void print​(byte[] data)
                   throws java.io.IOException
        发送数据到打印机
        参数:
        data - 发送的数据
        抛出:
        java.io.IOException
      • print

        public void print​(byte[] data,
                          PrinterResponse<byte[]> onResponse)
                   throws java.io.IOException
        发送数据到打印机
        参数:
        data - 发送的数据
        onResponse - 打印机响应回调
        抛出:
        java.io.IOException
      • print

        public void print​(byte[] data,
                          int responseTimeOut,
                          PrinterResponse<byte[]> onResponse)
                   throws java.io.IOException
        发送数据到打印机,等待返回内容(超时时间内首次接收到的数据)
        参数:
        data - 发送的数据
        responseTimeOut - 打印机响应超时时间(毫秒)
        onResponse - 打印机响应回调
        抛出:
        java.io.IOException
      • print

        public void print​(byte[] data,
                          int responseTimeOut,
                          boolean responseReadUntilTimeout,
                          PrinterResponse<byte[]> onResponse)
                   throws java.io.IOException
        发送数据到打印机,等待返回内容(超时时间内接收到的全部数据)
        参数:
        data - 发送的数据
        responseTimeOut - 打印机响应超时时间(毫秒)
        responseReadUntilTimeout - 是否读取数据直到超时
        onResponse - 打印机响应回调
        抛出:
        java.io.IOException
      • print

        public byte[] print​(android.graphics.Bitmap bitmap,
                            int count,
                            PrinterConfig config)
                     throws java.io.IOException
        打印图片
        参数:
        bitmap - 需要打印的图片
        count - 打印的份数
        抛出:
        java.io.IOException
      • printSelfTestPage

        public void printSelfTestPage​(Instruction instruction)
        打印自检页
      • getPrinterStatus

        public void getPrinterStatus​(Instruction instruction,
                                     PrinterResponse<PrinterState> callback)
        获取打印机状态,只有TSC,ESC,CPCL指令有效
        参数:
        callback - 回调
      • getPrinterModel

        public void getPrinterModel​(Instruction instruction,
                                    PrinterResponse<java.lang.String> callback)
        获取打印机型号 指定指令类型,效率高
        参数:
        instruction - 指令类型
        callback - 回调
      • getPrinterModel

        public void getPrinterModel​(PrinterResponse<java.lang.String> callback)
        获取打印机型号,只有TSC和ESC指令有效 通过发送两种指令请求来获取响应,效率较差
        参数:
        callback - 回调
      • connectByUsb

        public void connectByUsb​(android.hardware.usb.UsbDevice device)
        连接到USB打印机
        参数:
        device - USB设备
      • connectByUsbAccessory

        public void connectByUsbAccessory​(android.hardware.usb.UsbAccessory device)
        连接到USB配件打印机
        参数:
        device - USB配件
      • connectByTcp

        public void connectByTcp​(java.lang.String ip,
                                 int port)
        连接到WIFI打印机
        参数:
        ip - 打印机IP地址
        port - 打印机端口,一般为9100
      • connectBySerial

        public void connectBySerial​(java.lang.String serialPath,
                                    int boundRate)
        连接到串口打印机
        参数:
        serialPath - 串口设备文件路径
      • connectByBlueTooth

        public void connectByBlueTooth​(android.bluetooth.BluetoothDevice bluetoothDevice)
        连接到蓝牙打印机
        参数:
        bluetoothDevice - 蓝牙设备
      • connectByBlueTooth

        public void connectByBlueTooth​(java.lang.String bluetoothDeviceAddress)
        连接到蓝牙打印机
        参数:
        bluetoothDeviceAddress - 蓝牙地址
      • udpChangePrinterParameter

        public void udpChangePrinterParameter​(java.lang.String mac,
                                              java.lang.String ip,
                                              java.lang.String gateway,
                                              java.lang.String netmask)
        UDP修改打印机的IP、网关、掩码。发送指令后打印机会重启,请延迟一段时间后再连接
        参数:
        mac - 打印机的MAC地址
        ip - IP地址
        gateway - 网关
        netmask - 掩码
      • udpChangePrinterDHCP

        public void udpChangePrinterDHCP​(java.lang.String mac,
                                         boolean enableDHCP,
                                         int DHCPTimeOut)
        UDP修改打印机的DHCP开关,超时时间。发送指令后打印机会重启,请延迟一段时间后再连接
        参数:
        enableDHCP - 是否启用DHCP
        DHCPTimeOut - DHCP超时时间(秒)