com.szsicod.print.escpos

## 类 PrinterAPI

- java.lang.Object
- - com.szsicod.print.escpos.PrinterAPI

-     public class PrinterAPI
      extends java.lang.Object

  Printer API

- - ### 嵌套类概要

    嵌套类
    限定符和类型 | 类和说明
    --- | ---
    `static interface` | `PrinterAPI.FirmwareListener`

  - ### 字段概要

    字段
    限定符和类型 | 字段和说明
    --- | ---
    `static int` | `BOXOPEN`
    `static int` | `CORRECTINGERROR`
    `static int` | `ERR_PARAM`
    `static int` | `FAIL`
    `static int` | `FEEDING`
    `static int` | `FEEDING_10`
    `static int` | `HAPPENERROR`
    `static int` | `IMPACT_PRINTER`
    `static int` | `MACHINEERROR`
    `static int` | `NOSUPPROT`
    `static int` | `NOTCORRECTERROR`
    `static int` | `OFF_LINE`
    `static int` | `OUTOFPAPER`
    `static int` | `OUTOFPAPER_8`
    `static int` | `PAPERFEW`
    `static java.lang.String` | `PRINTERNAME`
    `static int` | `STRINGLONG`
    `static int` | `SUCCESS`
    `static int` | `THERMAL_PRINTER`

  - ### 方法概要

    所有方法 静态方法 实例方法 具体方法
    限定符和类型 | 方法和说明
    --- | ---
    `int` | `changeBd(int bd)` 通过指令去修改波特率,有dip 的不管用
    `int` | `chineseFontSet(int n)` 汉字模式 1C 21 N
    `void` | `clear()` 清除串口废弃的数据;
    `int` | `closeMark()`
    `int` | `comeInHex()` 进入十六进制
    `int` | `connect(com.szsicod.print.io.InterfaceAPI io)` 连接设备io
    `int` | `cutMark()`
    `int` | `cutPaper(int m, int n)` 选择裁纸模式并裁纸 1D 56 29 86
    `int` | `disconnect()` 关闭连接和释放资源
    `int` | `doTestPrint(int n, int m)` 执行测试打印 1D 28 41 29 40 65
    `int` | `downLoadNvBitmap(android.graphics.Bitmap[] bitmaps)` 下载nv 位图
    `int` | `feedToStartPos()` 将标记打印纸进纸到打印起始位置 1D 0C 29 12
    `int` | `fontSizeSet(int n)` 设置汉字打印方式 1C 21 N
    `int` | `fullCut()` 全切
    `static PrinterAPI` | `getInstance()`
    `com.szsicod.print.io.InterfaceAPI` | `getIO()`
    `int` | `getPrinterCutStatus()` 是否卡纸
    `int` | `getPrinterStatus(int n)` 传送状态(串口) 1D 72 29 114
    `java.lang.String` | `getPrinterVersion()` 获取当前版本号(需要固件支持)
    `int` | `getStatus()` 实时状态传送 16 4 10 4
    `int` | `getStatusForPrinting(int timeOut)` 判断是否是打印过程中还是打印完成 1 是打印完成 0 打印中 -1 数据传送失败
    `int` | `getStatusWithASC()` 自动上报 ASC 命令
    `int` | `getStatusWithASC(boolean clear)` 自动上报 ASC 命令
    `int` | `getSwitch1Value()` 关用1,0为开;
    `int` | `getSwitch2Value()` 关用1,0为开;
    `int` | `halfCut()` 半切
    `int` | `hexMsg(java.lang.String msg, boolean isHex)` 可以会抛出类型转换异常
    `int` | `init()` 初始化 27 64 这个指令 用于清空缓冲区和恢复默认值 一般在打印图片前或者后调用,避免打不全对后面数据的影响 可以跟 initAllPrinter方法一起用
    `int` | `initAllPrinter(int n)` 完全初始化 27 64 16 5 n
    `boolean` | `isBlackMark()`
    `boolean` | `isConnect()`
    `boolean` | `isOpenCash()`
    `boolean` | `isYKPrinter()` 是否是研科的机器 暂时只支持u口
    `int` | `lx()` 跟是否能接到数据来判定 波特率
    `int` | `markDefalut()` 初始化 1D 0C
    `int` | `markLengthSet(int printerType, int ticketType, int Q0, int L0, int mPrintLen, int mTicketLen, int mCutLen)` 设定黑标偏移量 0x1d 0x28 0x46 pl ph a m nl nh 功能：设置黑标偏移 参数：P - 发票长度
    `int` | `openCashDrawer(int n, int t1, int t2)`
    `int` | `openMark()`
    `int` | `pageMode()` 选择页模式 1B 4C 27 76
    `int` | `pageModeArea(int x, int y, int width, int height)` 设置页模式打印区域 单位:mm
    `int` | `pagePrint()` 页模式下打印缓冲数据 1B 0C 27 12
    `int` | `pagePrintAndBack2Standard()` 页模式打印并返回标准模式 18 12
    `int` | `pageRemoveAllData()` 页模式下取消打印数据 18 24
    `int` | `pageSelectDirection(int n)` 在页模式下选择打印方向 1B 54 27 84
    `int` | `parseStatus(byte[] mCmd)` 解析打印机状态.
    `int` | `pointTest()` 送黑标纸至打印起始位置 1D 0C
    `int` | `printAndBackToStd()` 页模式下回标准模式 0C 12
    `int` | `printAndFeedLine(int n)` 打印并进纸 n 行 1B 64 27 100
    `int` | `printAndFeedPaper(int n)` 打印并进纸 1B 4A 27 74
    `int` | `printBackFlow(int n)` 打印并退纸 n/144英寸 1B 4B n
    `int` | `printBarCode(int m, int n, java.lang.String barcode)` 打印条形码?
    `int` | `printCode128(java.lang.String a)`
    `int` | `printerRequestsRealTime(int type)` 实时打印机请求 10 5 16 5
    `int` | `printFeed()` 打印并换行 0A 10
    `int` | `printImageForPin(android.graphics.Bitmap bitmap)` 针式打印
    `int` | `printKanjiQRCode(java.lang.String text, boolean isCut)`
    `int` | `printPDFCode(java.lang.String text, int errorSize, int hSize, int vSize)` PDF条码打印
    `int` | `printQRCode(java.lang.String text, int modeSize, boolean isCut)` 打印二维码 1D 28 6B 29 40 107
    `int` | `printQRCode2(java.lang.String text)` 打印二维码 1D 28 6B 29 40 107
    `int` | `printRasterBitmap(android.graphics.Bitmap bitmap)` 打印光栅位图 1D 76 30 29 118 48
    `int` | `printRasterBitmap(android.graphics.Bitmap bitmap, boolean toGray)` 打印光栅位图 1D 76 30 29 118 48
    `int` | `printRasterBitmap(android.graphics.Bitmap bitmap, boolean toGray, int timeOut)` 打印光栅位图 1D 76 30 29 118 48
    `int` | `printRasterBitmap(android.graphics.Bitmap bitmap, boolean toGray, int timeOut, boolean check)` 打印光栅位图 1D 76 30 29 118 48
    `int` | `printRasterBitmap(android.graphics.Bitmap bitmap, boolean toGray, int timeOut, boolean isJini, boolean check)` 打印光栅位图 1D 76 30 29 118 48
    `int` | `printString(java.lang.String text)`
    `int` | `printString(java.lang.String text, java.lang.String charsetName, boolean isFeed)`
    `int` | `printTab()` 水平制表 0x09
    `int` | `readIO(byte[] readBuffer, int offsetSize, int readSize, int waitTime)` 读取指令
    `int` | `readPrinterFlash()`
    `int` | `resetPrinter()` 恢复默认设置 建议少用
    `int` | `selfTestPage()` 打印自检
    `int` | `sendOrder(byte[] cmd)` 写入指令 发送自定义指令
    `int` | `sendOrder(byte[] cmd, int timeOut)` 写入指令 发送自定义指令
    `int` | `set2400()` 设置波特率
    `int` | `set58mm()`
    `int` | `set80mm()`
    `int` | `setAbsolutePosition(int nl, int nh)` 设置绝对(当前行打印的第一个位置)打印位置(nl+nh*256)*0.125;
    `int` | `setAlignMode(int type)` 选择对齐方式 1B 61 27 97
    `int` | `setBarCodeHeight(int n)` 设置条形码高度 1D 68 29 104
    `int` | `setBarCodeWidth(int n)` 设置条形码宽度 1D 77 29 119
    `int` | `setCharCodeTable(int n)` 选择字符代码表 1B 74 27 116
    `int` | `setCharRightSpace(int n)` 设置字符右间距 1B 20 27 32
    `int` | `setCharSize(int hsize, int vsize)` 这个是用来设置字体倍宽倍高的 设定字符大小 1D 21 n 29 33 n 参数0-7就行
    `int` | `setDefaultLineSpace()` 选择缺省行间距 1B 32 27 50
    `int` | `setEmphasizedMode(int n)` 设定/解除粗体打印 1B 45 27 69
    `int` | `setEnablePanelButton(int n)` 激活/禁止面板按键 1B 63 35 27 99 53
    `int` | `setEnableSmoothPrn(int n)` 设置 解除平滑模式 1D 62 29 98
    `int` | `setEnableUnderLine(int enable)` 设定 / 解除下划线 1B 2D 27 45
    `int` | `setFontStyle(int type)` 选择打印模式 1B 21 27 33
    `int` | `setHorizontalTab(int[] k, boolean isSetDefault)` 水平制表点设置 1B 44
    `int` | `setInterCharSet(int n)` 选择国际字符集 1B 52 27 82
    `int` | `setLeftMargin(int nL, int nH)` 设定左侧空白量 1D 4C 29 76 空白量了(nl +nh*256)*0.125毫米
    `int` | `setLineSpace(int n)` 设置行间距 1B 33 27 51
    `void` | `setmFirmwareListener(PrinterAPI.FirmwareListener mFirmwareListener)`
    `int` | `setNullPointer()` 空命令
    `void` | `setOutput(boolean output)` 设置日志输出文件标志
    `int` | `setOverlapMode(int n)` 设定/解除重叠打印 1B 47 27 71
    `int` | `setPageAbsolutePosition(int nl, int nh)` 在页模式设置绝对打印位置(nl+nh*256)*0.125;
    `int` | `setPageRelativePosition(int nl, int nh)` 在页模式 设置相对当前打印位置(nl+nh*256)*0.125;
    `int` | `setPaperSensor(int n)` 选择打印纸传感器以输出缺纸信号 1B 63 33 27 99 51
    `int` | `setPrintColorSize(int n)` 设置浓度 仅支持1-4浓度 一般字体加重的浓度
    `int` | `setPrintColorSize2(int n)`
    `int` | `setPrintQRCodeErrCL(int level)` QR Code: Selects the error correction level 1D 28 6B 29 40 107
    `int` | `setPrintQRCodeSize(int size)` QR Code: Sets the size of module 1D 28 6B 29 40 107
    `int` | `setPrintQRCodeType(int type)` QR Code: Selects the model 1D 28 6B 29 40 107
    `int` | `setPrnAreaWidth(int nL, int nH)` 设置打印区域宽度 1D 57 29 87 宽度为 (nl +nh*256)*0.125毫米 82.5毫米纸宽型号 缺省值 nl=128,nh=2 79.5毫米纸宽型号 缺省值 nl=64,nh=2 60毫米纸宽型号缺省值 nl=192,nh=1 58毫米纸宽型号 缺省值 nl=176,nh=1
    `int` | `setRelativePosition(int nl, int nh)` 设置相对当前打印位置(nl+nh*256)*0.125;
    `int` | `setReverse(boolean reverse)` 设置颠倒
    `int` | `setRotate(int n)` 设置 / 解除顺时针 90 ° 旋转 1B 56 27 86
    `int` | `setSensorToStopPrint(int n)` 选择打印纸传感器以停止打印 1B 63 34 27 99 52
    `int` | `smallFontSizeSet()` 小字体 1c 2e 1b 74 00 1c 26 1b 21 01 0a
    `int` | `standardMode()` 选择标准模式 1B 53 27 83
    `int` | `updateFirmware(java.io.File file)` 用于固件升级
    `int` | `writeIO(byte[] writeBuffer, int offsetSize, int writeSize, int waitTime)` 写入指令

    - ### 从类继承的方法 java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### 字段详细资料

    - #### OFF_LINE

          public static final int OFF_LINE

      另请参阅:
        常量字段值

    - #### FEEDING

          public static final int FEEDING

      另请参阅:
        常量字段值

    - #### FEEDING_10

          public static final int FEEDING_10

      另请参阅:
        常量字段值

    - #### HAPPENERROR

          public static final int HAPPENERROR

      另请参阅:
        常量字段值

    - #### OUTOFPAPER_8

          public static final int OUTOFPAPER_8

      另请参阅:
        常量字段值

    - #### BOXOPEN

          public static final int BOXOPEN

      另请参阅:
        常量字段值

    - #### CORRECTINGERROR

          public static final int CORRECTINGERROR

      另请参阅:
        常量字段值

    - #### NOTCORRECTERROR

          public static final int NOTCORRECTERROR

      另请参阅:
        常量字段值

    - #### MACHINEERROR

          public static final int MACHINEERROR

      另请参阅:
        常量字段值

    - #### PAPERFEW

          public static final int PAPERFEW

      另请参阅:
        常量字段值

    - #### OUTOFPAPER

          public static final int OUTOFPAPER

      另请参阅:
        常量字段值

    - #### SUCCESS

          public static final int SUCCESS

      另请参阅:
        常量字段值

    - #### FAIL

          public static final int FAIL

      另请参阅:
        常量字段值

    - #### ERR_PARAM

          public static final int ERR_PARAM

      另请参阅:
        常量字段值

    - #### IMPACT_PRINTER

          public static final int IMPACT_PRINTER

      另请参阅:
        常量字段值

    - #### STRINGLONG

          public static final int STRINGLONG

      另请参阅:
        常量字段值

    - #### NOSUPPROT

          public static final int NOSUPPROT

      另请参阅:
        常量字段值

    - #### THERMAL_PRINTER

          public static final int THERMAL_PRINTER

      另请参阅:
        常量字段值

    - #### PRINTERNAME

          public static final java.lang.String PRINTERNAME

      另请参阅:
        常量字段值

  - ### 方法详细资料

    - #### getIO

          public com.szsicod.print.io.InterfaceAPI getIO()

    - #### getInstance

          public static PrinterAPI getInstance()

    - #### setOutput

          public void setOutput(boolean output)

      设置日志输出文件标志
      参数:
        `output` -

    - #### updateFirmware

          public int updateFirmware(java.io.File file)

      用于固件升级
      参数:
        `file` - 固件的路径
      返回:

    - #### connect

          public int connect(com.szsicod.print.io.InterfaceAPI io)

      连接设备io
      参数:
        `io` - InterfaceAPI 连接的类型
      返回:

    - #### disconnect

          public int disconnect()

      关闭连接和释放资源
      返回:

    - #### sendOrder

          public int sendOrder(byte[] cmd)

      写入指令 发送自定义指令
      参数:
        `cmd` - 指令数组
      返回:

    - #### sendOrder

          public int sendOrder(byte[] cmd,
                               int timeOut)

      写入指令 发送自定义指令
      参数:
        `cmd` - 指令数组
        `timeOut` - 超时时间 单位ms
      返回:

    - #### printImageForPin

          public int printImageForPin(android.graphics.Bitmap bitmap)

      针式打印
      参数:
        `bitmap` -
      返回:

    - #### writeIO

          public int writeIO(byte[] writeBuffer,
                             int offsetSize,
                             int writeSize,
                             int waitTime)

      写入指令
      参数:
        `writeBuffer` - 指令字节数组
        `offsetSize` - 偏移量，一般为0
        `writeSize` - 数组大小
        `waitTime` - 等待时间
      返回:

    - #### readIO

          public int readIO(byte[] readBuffer,
                            int offsetSize,
                            int readSize,
                            int waitTime)

      读取指令
      参数:
        `readBuffer` - 指令字节数组
        `offsetSize` - 偏移量
        `readSize` - 读取大小
        `waitTime` - 等待时间
      返回:

    - #### getPrinterCutStatus

          public int getPrinterCutStatus()

      是否卡纸
      返回:
        -1 数据传输错误;0 正常;1卡纸;

    - #### getPrinterVersion

          public java.lang.String getPrinterVersion()

      获取当前版本号(需要固件支持)
      返回:
        返回版本号 -1 为失败

    - #### init

          public int init()

      初始化
      27 64
      这个指令 用于清空缓冲区和恢复默认值 一般在打印图片前或者后调用,避免打不全对后面数据的影响 可以跟 initAllPrinter方法一起用
      返回:

    - #### initAllPrinter

          public int initAllPrinter(int n)

      完全初始化 27 64 16 5 n
      参数:
        `n` - 1 错误恢复从错误行开始打印 2 错误恢复和清除缓冲内容
      返回:

    - #### getStatus

          public int getStatus()

      实时状态传送
      16 4
      10 4

    - #### printString

          public int printString(java.lang.String text,
                                 java.lang.String charsetName,
                                 boolean isFeed)
                          throws java.io.UnsupportedEncodingException

      参数:
        `text` - 打印的字符串
        `charsetName` - 字符集
        `isFeed` - 是否 换行
      返回:
      抛出:
        `java.io.UnsupportedEncodingException`

    - #### printString

          public int printString(java.lang.String text)
                          throws java.io.UnsupportedEncodingException

      参数:
        `text` - 打印的字符串
      返回:
      抛出:
        `java.io.UnsupportedEncodingException`

    - #### printRasterBitmap

          public int printRasterBitmap(android.graphics.Bitmap bitmap)
                                throws java.io.IOException

      打印光栅位图
      1D 76 30
      29 118 48
      参数:
        `bitmap` - 位图
      返回:
      抛出:
        `java.io.IOException`

    - #### printRasterBitmap

          public int printRasterBitmap(android.graphics.Bitmap bitmap,
                                       boolean toGray)
                                throws java.io.IOException

      打印光栅位图
      1D 76 30
      29 118 48
      参数:
        `bitmap` - 位图
        `toGray` - true 变灰
      返回:
      抛出:
        `java.io.IOException`

    - #### printRasterBitmap

          public int printRasterBitmap(android.graphics.Bitmap bitmap,
                                       boolean toGray,
                                       int timeOut)
                                throws java.io.IOException

      打印光栅位图
      1D 76 30
      29 118 48
      参数:
        `bitmap` - 位图
        `toGray` - true 变灰
        `timeOut` - 超时时间
      返回:
      抛出:
        `java.io.IOException`

    - #### printRasterBitmap

          public int printRasterBitmap(android.graphics.Bitmap bitmap,
                                       boolean toGray,
                                       int timeOut,
                                       boolean isJini,
                                       boolean check)
                                throws java.io.IOException

      打印光栅位图
      1D 76 30
      29 118 48
      参数:
        `bitmap` - 位图
        `toGray` - true 变灰
        `timeOut` - 超时时间 单位毫秒
        `isJini` - 是否使用本地方法
        `check` - 是否需要检测 数据是否已经全部下发到打印机.解决第一张打印正常第二张乱码的问题.
      返回:
      抛出:
        `java.io.IOException`

    - #### printRasterBitmap

          public int printRasterBitmap(android.graphics.Bitmap bitmap,
                                       boolean toGray,
                                       int timeOut,
                                       boolean check)
                                throws java.io.IOException

      打印光栅位图
      1D 76 30
      29 118 48
      参数:
        `bitmap` - 位图
        `toGray` - true 变灰
        `timeOut` - 超时时间
        `check` - 是否需要检测 数据是否已经全部下发到打印机.解决第一张打印正常第二张乱码的问题.
      返回:
      抛出:
        `java.io.IOException`

    - #### printQRCode2

          public int printQRCode2(java.lang.String text)

      打印二维码
      1D 28 6B
      29 40 107
      参数:
        `text` - String 为二维码内容，Boolean为打印二维码后是否切纸
      返回:

    - #### printQRCode

          public int printQRCode(java.lang.String text,
                                 int modeSize,
                                 boolean isCut)

      打印二维码
      1D 28 6B
      29 40 107
      参数:
        `text` - String 为二维码内容，Boolean为打印二维码后是否切纸
        `modeSize` - 设置条码大小（1FAIL6） 默认为6
      返回:

    - #### printKanjiQRCode

          public int printKanjiQRCode(java.lang.String text,
                                      boolean isCut)

    - #### printPDFCode

          public int printPDFCode(java.lang.String text,
                                  int errorSize,
                                  int hSize,
                                  int vSize)

      PDF条码打印
      参数:
        `errorSize` - ：纠错等级，可控制条码大小
        建议4-8
        `hSize` - ：宽度 0-30（建议0）
        `vSize` - ： 高度3-90（建议0）
      返回:

    - #### setPrintQRCodeType

          public int setPrintQRCodeType(int type)

      QR Code: Selects the model
      1D 28 6B
      29 40 107
      参数:
        `type` -
      返回:

    - #### setPrintQRCodeSize

          public int setPrintQRCodeSize(int size)

      QR Code: Sets the size of module
      1D 28 6B
      29 40 107
      参数:
        `size` - 1-16
      返回:

    - #### setPrintQRCodeErrCL

          public int setPrintQRCodeErrCL(int level)

      QR Code: Selects the error correction level
      1D 28 6B
      29 40 107
      参数:
        `level` - 纠错级别 48-51
      返回:

    - #### printFeed

          public int printFeed()

      打印并换行
      0A
      10
      返回:

    - #### printBackFlow

          public int printBackFlow(int n)

      打印并退纸 n/144英寸
      1B 4B n
      返回:

    - #### printAndBackToStd

          public int printAndBackToStd()

      页模式下回标准模式
      0C
      12
      返回:

    - #### printerRequestsRealTime

          public int printerRequestsRealTime(int type)

      实时打印机请求
      10 5
      16 5
      参数:
        `type` -
      返回:

    - #### setFontStyle

          public int setFontStyle(int type)

      选择打印模式
      1B 21
      27 33
      参数:
        `type` -
      返回:

    - #### setCharRightSpace

          public int setCharRightSpace(int n)

      设置字符右间距
      1B 20
      27 32
      参数:
        `n` - n*0.125毫米
      返回:

    - #### setEnableUnderLine

          public int setEnableUnderLine(int enable)

      设定 / 解除下划线
      1B 2D
      27 45
      参数:
        `enable` - 最低位有效:1为设定 0位解除
      返回:

    - #### setNullPointer

          public int setNullPointer()

      空命令

    - #### setDefaultLineSpace

          public int setDefaultLineSpace()

      选择缺省行间距
      1B 32
      27 50
      返回:

    - #### setLineSpace

          public int setLineSpace(int n)

      设置行间距
      1B 33
      27 51
      参数:
        `n` - n*0.125毫米 缺省值为30
      返回:

    - #### setEmphasizedMode

          public int setEmphasizedMode(int n)

      设定/解除粗体打印
      1B 45
      27 69
      参数:
        `n` - 最低位有效:1为设定 0位解除
      返回:

    - #### setPrintColorSize

          public int setPrintColorSize(int n)

      设置浓度
      仅支持1-4浓度 一般字体加重的浓度
      参数:
        `n` -
      返回:

    - #### setPrintColorSize2

          public int setPrintColorSize2(int n)

    - #### setOverlapMode

          public int setOverlapMode(int n)

      设定/解除重叠打印
      1B 47
      27 71
      参数:
        `n` - 最低位有效:1为设定 0位解除
      返回:

    - #### printAndFeedPaper

          public int printAndFeedPaper(int n)

      打印并进纸
      1B 4A
      27 74
      参数:
        `n` - n*0.125毫米
      返回:

    - #### setInterCharSet

          public int setInterCharSet(int n)

      选择国际字符集
      1B 52
      27 82
      参数:
        `n` -
      返回:

    - #### setRelativePosition

          public int setRelativePosition(int nl,
                                         int nh)

      设置相对当前打印位置(nl+nh*256)*0.125;
      参数:
        `nl` - 0-255
        `nh` - 0-255
      返回:

    - #### setPageRelativePosition

          public int setPageRelativePosition(int nl,
                                             int nh)

      在页模式 设置相对当前打印位置(nl+nh*256)*0.125;
      参数:
        `nl` - 0-255
        `nh` - 0-255
      返回:

    - #### setAbsolutePosition

          public int setAbsolutePosition(int nl,
                                         int nh)

      设置绝对(当前行打印的第一个位置)打印位置(nl+nh*256)*0.125;
      参数:
        `nl` - 0-255
        `nh` - 0-255
      返回:

    - #### setPageAbsolutePosition

          public int setPageAbsolutePosition(int nl,
                                             int nh)

      在页模式设置绝对打印位置(nl+nh*256)*0.125;
      参数:
        `nl` - 0-255
        `nh` - 0-255
      返回:

    - #### fullCut

          public int fullCut()

      全切
      返回:

    - #### halfCut

          public int halfCut()

      半切
      返回:

    - #### setAlignMode

          public int setAlignMode(int type)

      选择对齐方式
      1B 61
      27 97
      参数:
        `type` - 0为左对齐 ,1 为居中对齐,2 为右对齐
      返回:

    - #### setPaperSensor

          public int setPaperSensor(int n)

      选择打印纸传感器以输出缺纸信号
      1B 63 33
      27 99 51
      参数:
        `n` - 8传输缺纸状态,2传输纸将尽状态
      返回:

    - #### setSensorToStopPrint

          public int setSensorToStopPrint(int n)

      选择打印纸传感器以停止打印
      1B 63 34
      27 99 52
      参数:
        `n` - 2传送纸将尽
      返回:

    - #### setEnablePanelButton

          public int setEnablePanelButton(int n)

      激活/禁止面板按键
      1B 63 35
      27 99 53
      参数:
        `n` - 最低位有效:1禁止 0位激活
      返回:

    - #### printAndFeedLine

          public int printAndFeedLine(int n)

      打印并进纸 n 行
      1B 64
      27 100
      参数:
        `n` - n *设定的行间距
      返回:

    - #### setCharCodeTable

          public int setCharCodeTable(int n)

      选择字符代码表
      1B 74
      27 116
      参数:
        `n` -
      返回:

    - #### feedToStartPos

          public int feedToStartPos()

      将标记打印纸进纸到打印起始位置
      1D 0C
      29 12
      返回:

    - #### setCharSize

          public int setCharSize(int hsize,
                                 int vsize)

      这个是用来设置字体倍宽倍高的 设定字符大小
      1D 21 n
      29 33 n

      参数0-7就行

      参数:
        `hsize` -
        `vsize` -
      返回:

    - #### doTestPrint

          public int doTestPrint(int n,
                                 int m)

      执行测试打印
      1D 28 41
      29 40 65
      参数:
        `n` - 0 为 basic sheet; 1 2 为卷纸
        `m` - 1 让打印机进入十六进制;2 打印机状态打印;3 卷纸模式打印
      返回:

    - #### setLeftMargin

          public int setLeftMargin(int nL,
                                   int nH)

      设定左侧空白量
      1D 4C
      29 76 空白量了(nl +nh*256)*0.125毫米
      参数:
        `nL` -
        `nH` -
      返回:

    - #### cutPaper

          public int cutPaper(int m,
                              int n)

      选择裁纸模式并裁纸
      1D 56
      29 86
      参数:
        `m` - 66 保留一点不切
        `n` - 0
      返回:

    - #### setPrnAreaWidth

          public int setPrnAreaWidth(int nL,
                                     int nH)

      设置打印区域宽度
      1D 57
      29 87
      1. 宽度为 (nl +nh*256)*0.125毫米
      2. 82.5毫米纸宽型号 缺省值 nl=128,nh=2
      3. 79.5毫米纸宽型号 缺省值 nl=64,nh=2
      4. 60毫米纸宽型号缺省值 nl=192,nh=1
      5. 58毫米纸宽型号 缺省值 nl=176,nh=1
      参数:
        `nL` -
        `nH` -
      返回:

    - #### setEnableSmoothPrn

          public int setEnableSmoothPrn(int n)

      设置 解除平滑模式
      1D 62
      29 98
      参数:
        `n` - 最低位有效:1为设定 0位解除
      返回:

    - #### setBarCodeHeight

          public int setBarCodeHeight(int n)

      设置条形码高度
      1D 68
      29 104
      参数:
        `n` - 0
      返回:

    - #### printBarCode

          public int printBarCode(int m,
                                  int n,
                                  java.lang.String barcode)
                           throws java.io.UnsupportedEncodingException

      打印条形码?
      1D 6B
      29 107
      参数:
        `m` - 使用条码系统类型
        `n` - 字符个数
        `barcode` - 字符串
      返回:
      抛出:
        `java.io.UnsupportedEncodingException`

    - #### getPrinterStatus

          public int getPrinterStatus(int n)

      传送状态(串口)
      1D 72
      29 114
      参数:
        `n` - n = 1, 49
      返回:
        12 为缺纸状态 3为纸将尽状态

    - #### setBarCodeWidth

          public int setBarCodeWidth(int n)

      设置条形码宽度
      1D 77
      29 119
      参数:
        `n` - 2-16 我方打印机范围为2-6 通用的打印机 2-16 所以有些值不管用
      返回:

    - #### pagePrintAndBack2Standard

          public int pagePrintAndBack2Standard()

      页模式打印并返回标准模式
      18
      12
      返回:

    - #### pageRemoveAllData

          public int pageRemoveAllData()

      页模式下取消打印数据
      18
      24
      返回:

    - #### pagePrint

          public int pagePrint()

      页模式下打印缓冲数据
      1B 0C
      27 12
      返回:

    - #### pageMode

          public int pageMode()

      选择页模式
      1B 4C
      27 76
      返回:

    - #### setReverse

          public int setReverse(boolean reverse)

      设置颠倒
      参数:
        `reverse` - true 设置颠倒 false 取消颠倒
      返回:

    - #### standardMode

          public int standardMode()

      选择标准模式
      1B 53
      27 83
      返回:

    - #### pageModeArea

          public int pageModeArea(int x,
                                  int y,
                                  int width,
                                  int height)

      设置页模式打印区域 单位:mm
      参数:
        `x` - 打印水平起始位置
        `y` - 打印垂直起始位置
        `width` - 打印区域宽度
        `height` - 打印区域高度
      返回:

    - #### pageSelectDirection

          public int pageSelectDirection(int n)

      在页模式下选择打印方向
      1B 54
      27 84
      参数:
        `n` - 0 从左到右 1从底到上 2 从右到左 3 从上到下
      返回:

    - #### setRotate

          public int setRotate(int n)

      设置 / 解除顺时针 90 ° 旋转
      1B 56
      27 86
      参数:
        `n` - 0,48 解除 1,49设置
      返回:

    - #### resetPrinter

          public int resetPrinter()

      恢复默认设置 建议少用
      返回:

    - #### set58mm

          public int set58mm()

    - #### set80mm

          public int set80mm()

    - #### readPrinterFlash

          public int readPrinterFlash()

    - #### hexMsg

          public int hexMsg(java.lang.String msg,
                            boolean isHex)

      可以会抛出类型转换异常
      参数:
        `msg` - 格式是##0a 23 0d##
        `isHex` - true 数据是十六进制 false 是十进制
      返回:

    - #### markLengthSet

          public int markLengthSet(int printerType,
                                   int ticketType,
                                   int Q0,
                                   int L0,
                                   int mPrintLen,
                                   int mTicketLen,
                                   int mCutLen)

      设定黑标偏移量
      0x1d 0x28 0x46 pl ph a m nl nh

      功能：设置黑标偏移 参数：P - 发票长度

      参数:
        `printerType` - 0 针式打印机 是乘0.175 ;其他是0.125
        `ticketType` - 0 是打印首行在黑标之前;其他在黑标之后
        `L0` - - 黑标传感器位置到撕纸线位置的距离
        `Q0` - - 打印针头到黑标传感器位置的距离
        `mTicketLen` - 票长
        `mPrintLen` - 黑标到首行打印位置距离
        `mCutLen` - 黑标到切纸位置的距离
      返回:
        0 - 命令执行完成

    - #### pointTest

          public int pointTest()

      送黑标纸至打印起始位置
      1D 0C
      返回:

    - #### fontSizeSet

          public int fontSizeSet(int n)

      设置汉字打印方式
      1C 21 N
      返回:

    - #### chineseFontSet

          public int chineseFontSet(int n)

      汉字模式
      1C 21 N
      参数:
        `n` - 0为禁止 4 允许倍宽 8 允许倍高 128 允许下划线
      返回:

    - #### smallFontSizeSet

          public int smallFontSizeSet()

      小字体
      1c 2e 1b 74 00 1c 26 1b 21 01 0a
      返回:

    - #### markDefalut

          public int markDefalut()

      初始化
      1D 0C
      返回:

    - #### openMark

          public int openMark()

    - #### closeMark

          public int closeMark()

    - #### cutMark

          public int cutMark()

    - #### selfTestPage

          public int selfTestPage()

      打印自检
      返回:

    - #### comeInHex

          public int comeInHex()

      进入十六进制
      返回:

    - #### setHorizontalTab

          public int setHorizontalTab(int[] k,
                                      boolean isSetDefault)

      水平制表点设置
      1B 44
      参数:
        `k` - 推进点设置 十进制
        `isSetDefault` - 取消制表点
      返回:

    - #### printTab

          public int printTab()

      水平制表
      0x09
      返回:

    - #### set2400

          public int set2400()

      设置波特率
      返回:

    - #### lx

          public int lx()

      跟是否能接到数据来判定 波特率
      返回:

    - #### openCashDrawer

          public int openCashDrawer(int n,
                                    int t1,
                                    int t2)

      参数:
        `n` - 0 pin2 上输出 1 pin5 上输出
        `t1` - 开启时间 t1*2
        `t2` - 关闭时间 t2*2
      返回:

    - #### printCode128

          public int printCode128(java.lang.String a)

    - #### changeBd

          public int changeBd(int bd)

      通过指令去修改波特率,有dip 的不管用
      参数:
        `bd` - 波特率
      返回:

    - #### isConnect

          public boolean isConnect()

      返回:
        true 已连接 false 未连接

    - #### parseStatus

          public int parseStatus(byte[] mCmd)
                          throws java.lang.Exception

      解析打印机状态.
      参数:
        `mCmd` - 打印机状态数据
      返回:
      抛出:
        `java.lang.Exception`

    - #### downLoadNvBitmap

          public int downLoadNvBitmap(android.graphics.Bitmap[] bitmaps)

      下载nv 位图
      参数:
        `bitmaps` - 图片类型.bmp 的数组
      返回:

    - #### getStatusWithASC

          public int getStatusWithASC()

      自动上报 ASC 命令
      返回:
        返回状态码 用StatusDescribe解析即可

    - #### getStatusWithASC

          public int getStatusWithASC(boolean clear)

      自动上报 ASC 命令
      参数:
        `clear` - 是否要清除 自动上报影响
      返回:
        返回状态码

    - #### getStatusForPrinting

          public int getStatusForPrinting(int timeOut)

      判断是否是打印过程中还是打印完成

      1 是打印完成 0 打印中 -1 数据传送失败

      参数:
        `timeOut` - 时间越短越精确
      返回:
        2 缺纸 1 是打印完成 0 打印中 -1 数据传送失败

    - #### setmFirmwareListener

          public void setmFirmwareListener(PrinterAPI.FirmwareListener mFirmwareListener)

    - #### isBlackMark

          public boolean isBlackMark()

      返回:
        true 当前是黑标状态

    - #### getSwitch1Value

          public int getSwitch1Value()

      关用1,0为开;
      返回:
        返回switch-1拨码开关的value;-1时表示错误

    - #### getSwitch2Value

          public int getSwitch2Value()

      关用1,0为开;
      返回:
        返回switch-2拨码开关的value;-1时表示错误

    - #### isYKPrinter

          public boolean isYKPrinter()

      是否是研科的机器 暂时只支持u口
      返回:
        true 是

    - #### clear

          public void clear()

      清除串口废弃的数据;

    - #### isOpenCash

          public boolean isOpenCash()