|
@@ -0,0 +1,669 @@
|
|
|
+/*
|
|
|
+ * ********************************************************************************************************************
|
|
|
+ *
|
|
|
+ * iFHS7.
|
|
|
+ * ;BBMBMBMc rZMBMBR BMB
|
|
|
+ * MBEr:;PBM, 7MBMMEOBB: BBB RBW
|
|
|
+ * XK: BO SB. :SZ MBM. c;; ir BBM :FFr :SSF: ;xBMB:r iuGXv. i:. iF2;
|
|
|
+ * DBBM0r. :D S7 ;XMBMB GMBMu. MBM: BMB MBMBBBMBMS WMBMBMBBK MBMBMBM BMBRBMBW .MBMBMBMBB
|
|
|
+ * :JMRMMD .. , 1MMRM1; ;MBMBBR: MBM ;MB: BMB: MBM. RMBr sBMH BM0 UMB, BMB. KMBv
|
|
|
+ * ;. XOW B1; :uM: 1RE, i .2BMBs rMB. MBO MBO JMB; MBB MBM BBS 7MBMBOBM: MBW :BMc
|
|
|
+ * OBRJ.SEE MRDOWOR, 3DE:7OBM . ;BMB RMR7BM BMB MBB. BMB ,BMR .BBZ MMB rMB, BMM rMB7
|
|
|
+ * :FBRO0D0 RKXSXPR. JOKOOMPi BMBSSWBMB; BMBB: MBMB0ZMBMS .BMBOXRBMB MBMDE RBM2;SMBM; MBB xBM2
|
|
|
+ * iZGE O0SHSPO. uGZ7. sBMBMBDL :BMO OZu:BMBK, rRBMB0; ,EBMB xBMBr:ER. RDU :OO;
|
|
|
+ * ,BZ, 1D0 RPSFHXR. xWZ .SMr . .BBB
|
|
|
+ * :0BMRDG RESSSKR. 2WOMBW; BMBMR
|
|
|
+ * i0BM: SWKHKGO MBDv
|
|
|
+ * .UB OOGDM. MK, Copyright (c) 2015-2019. 斯伯坦机器人
|
|
|
+ * , XMW ..
|
|
|
+ * r All rights reserved.
|
|
|
+ *
|
|
|
+ * ********************************************************************************************************************
|
|
|
+ */
|
|
|
+
|
|
|
+package com.sybotan.android.devices.printer
|
|
|
+
|
|
|
+import android.util.Log
|
|
|
+import android.webkit.JavascriptInterface
|
|
|
+import com.dothantech.lpapi.LPAPI
|
|
|
+
|
|
|
+/**
|
|
|
+ * 标签打印机接口
|
|
|
+ *
|
|
|
+ * @author 庞利祥(sybotan@126.com)
|
|
|
+ */
|
|
|
+class SLPrinter {
|
|
|
+ /**
|
|
|
+ * 类对象
|
|
|
+ */
|
|
|
+ companion object {
|
|
|
+ /** 日志TAG */
|
|
|
+ private val TAG = SLPrinter::class.java.name
|
|
|
+ } // companion object
|
|
|
+
|
|
|
+ /** 打印机实例 */
|
|
|
+ private val printer = LPAPI.Factory.createInstance()
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 以字符串形式返回配对列表中所有指定型号的打印机
|
|
|
+ * 打印机名称列表需要用户自己根据英文逗号(“,”)进行字符串分割操作
|
|
|
+ *
|
|
|
+ * @param names 打印机型号,如果未指定则返回所有已配对打印机名称
|
|
|
+ * @return 打印机列表字符串,不同打印机名称之间以“,”分割
|
|
|
+ */
|
|
|
+ @JavascriptInterface
|
|
|
+ fun getAllPrinters(names: String): String {
|
|
|
+ return printer.getAllPrinters(names)
|
|
|
+ } // Function getAllPrinters()
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 异步方式打开指定名称或类型的打印机
|
|
|
+ * 连接打印机
|
|
|
+ * 在开始打印任务前,须先调用该方法,或者同系列的方法
|
|
|
+ *
|
|
|
+ * @param printerName 参数可为下列类型的数据:
|
|
|
+ * 1、打印机屏幕上显示的名称:用于打开指定名称的打印机;
|
|
|
+ * 2、打印机型号(名称前缀):打开配对列表中的第一台对应型号的打印机;
|
|
|
+ * 3、null或者“”,打开配对列表中的第一台打印机;
|
|
|
+ * @return 成功与否
|
|
|
+ */
|
|
|
+ @JavascriptInterface
|
|
|
+ fun openPrinter(printerName: String): Boolean {
|
|
|
+ return printer.openPrinter(printerName)
|
|
|
+ } // Function openPrinter()
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 同步方式打开指定名称或型号的打印机
|
|
|
+ * 确保打印机已经打开,并进行了配对操作
|
|
|
+ *
|
|
|
+ * @param printerName 参数可为下列类型的数据:
|
|
|
+ * 1、打印机屏幕上显示的名称:用于打开指定名称的打印机;
|
|
|
+ * 2、打印机型号(名称前缀):打开配对列表中的第一台对应型号的打印机;
|
|
|
+ * 3、null或者“”,打开配对列表中的第一台打印机;
|
|
|
+ * @return 成功与否
|
|
|
+ */
|
|
|
+ @JavascriptInterface
|
|
|
+ fun openPrinterSync(printerName: String): Boolean {
|
|
|
+ return printer.openPrinterSync(printerName)
|
|
|
+ } // Function openPrinterSync()
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取已连接打印机名称
|
|
|
+ *
|
|
|
+ * @return 如果已连接打印机,则返回对应打印机名称,否则返回null。
|
|
|
+ */
|
|
|
+ @JavascriptInterface
|
|
|
+ fun getPrinterName(): String {
|
|
|
+ return printer.printerName
|
|
|
+ } // Function getPrinterName()
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 判断是否已经连接打印机
|
|
|
+ *
|
|
|
+ * @return True:表示打印机以链接成功,可以进行打印;false:表示未连接打印机,在打印之前需要链接打印机;
|
|
|
+ */
|
|
|
+ @JavascriptInterface
|
|
|
+ fun isPrinterOpened(): Boolean {
|
|
|
+ return printer.isPrinterOpened
|
|
|
+ } // Function isPrinterOpened()
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 取消打印任务
|
|
|
+ * 取消已经提交(执行过commitJob函数),但尚未开始的打印任务
|
|
|
+ */
|
|
|
+ @JavascriptInterface
|
|
|
+ fun cancel() {
|
|
|
+ printer.cancel()
|
|
|
+ return
|
|
|
+ } // Function cancel()
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 关闭当前已连接打印机
|
|
|
+ * 如果需要多个用户公用同一台打印机,在打印完成之后,可以通过该函数来断开打印机,否则其他用户无法连接到该打印机;
|
|
|
+ * 在打印未完成之前尽量避免调用该函数,否则有可能会导致打印任务终止
|
|
|
+ */
|
|
|
+ @JavascriptInterface
|
|
|
+ fun closePrinter() {
|
|
|
+ printer.closePrinter()
|
|
|
+ return
|
|
|
+ } // Function closePrinter()
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 异步方式打开上次连接过的打印机
|
|
|
+ * 返回成功仅仅表示操作被提交,并不代表着连接成功了,具体的连接结果会通过回调函数给出通知
|
|
|
+ *
|
|
|
+ * @return 成功与否
|
|
|
+ */
|
|
|
+ @JavascriptInterface
|
|
|
+ fun reopenPrinter(): Boolean {
|
|
|
+ return printer.reopenPrinter()
|
|
|
+ } // Function reopenPrinter()
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 同步方式打开上次连接过的打印机
|
|
|
+ *
|
|
|
+ * @return 成功与否
|
|
|
+ */
|
|
|
+ @JavascriptInterface
|
|
|
+ fun reopenPrinterSync(): Boolean {
|
|
|
+ return printer.reopenPrinterSync()
|
|
|
+ } // Function reopenPrinterSync()
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 开始绘图任务
|
|
|
+ * 确保打印机已经打开,并进行了配对操作
|
|
|
+ * 开始一个绘图任务时需调用此方法
|
|
|
+ * 开始绘图任务时,之前的任务/数据将会被全部丢弃
|
|
|
+ *
|
|
|
+ * @param width 标签宽度(基于绘制视图,不考虑标签旋转。单位毫米);
|
|
|
+ * @param height 标签高度(基于绘制视图,不考虑标签旋转。单位毫米);
|
|
|
+ * @param orientation 绘图任务的标签页面顺时针旋转角度,0/90/180/270,默认值0;
|
|
|
+ * @return 成功与否
|
|
|
+ */
|
|
|
+ @JavascriptInterface
|
|
|
+ fun startJob(width: Double, height: Double, orientation: Int): Boolean {
|
|
|
+ return printer.startJob(width, height, orientation)
|
|
|
+ } // Function startJob()
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 取消绘图任务
|
|
|
+ * 当前的任务/数据将会被全部丢弃,但是参数设置将会被保留
|
|
|
+ */
|
|
|
+ @JavascriptInterface
|
|
|
+ fun abortJob() {
|
|
|
+ printer.abortJob()
|
|
|
+ return
|
|
|
+ } // Function abortJob()
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 结束绘图任务
|
|
|
+ */
|
|
|
+ @JavascriptInterface
|
|
|
+ fun endJob() {
|
|
|
+ printer.endJob()
|
|
|
+ return
|
|
|
+ } // Function endJob()
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 提交数据打印
|
|
|
+ *
|
|
|
+ * @return 成功与否
|
|
|
+ */
|
|
|
+ @JavascriptInterface
|
|
|
+ fun commitJob(): Boolean {
|
|
|
+ return printer.commitJob()
|
|
|
+ } // Function commitJob()
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 开始绘制一个页面
|
|
|
+ *
|
|
|
+ * @return 成功与否
|
|
|
+ */
|
|
|
+ @JavascriptInterface
|
|
|
+ fun startPage(): Boolean {
|
|
|
+ return printer.startPage()
|
|
|
+ } // Function startPage()
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 结束一个页面的绘制
|
|
|
+ */
|
|
|
+ @JavascriptInterface
|
|
|
+ fun endPage() {
|
|
|
+ printer.endPage()
|
|
|
+ return
|
|
|
+ } // Function endPage()
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 设置后续绘制内容的顺时针旋转角度
|
|
|
+ *
|
|
|
+ * @param orientation 后续绘制内容的顺时针旋转角度(0/90/180/270),默认值为0;
|
|
|
+ */
|
|
|
+ @JavascriptInterface
|
|
|
+ fun setItemOrientation(orientation: Int) {
|
|
|
+ printer.itemOrientation = orientation
|
|
|
+ return
|
|
|
+ } // Function setItemOrientation()
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 得到当前绘制内容的顺时针旋转角度
|
|
|
+ *
|
|
|
+ * @return 当前绘制内容的顺时针旋转角度(0/90/180/270)
|
|
|
+ */
|
|
|
+ @JavascriptInterface
|
|
|
+ fun getItemOrientation(): Int {
|
|
|
+ return printer.itemOrientation
|
|
|
+ } // Function getItemOrientation()
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 设置后续绘制动作的水平对齐方式
|
|
|
+ * 水平方向是基于后续绘制的内容的水平绘制方向,跟随绘制内容的顺时针旋转角度旋转
|
|
|
+ *
|
|
|
+ * @param alignment 后续绘制动作的水平对齐方式(ItemAlignment),默认值为ItemAlignment.LEFT;
|
|
|
+ */
|
|
|
+ @JavascriptInterface
|
|
|
+ fun setItemHorizontalAlignment(alignment: Int) {
|
|
|
+ printer.itemHorizontalAlignment = alignment
|
|
|
+ return
|
|
|
+ } // Function setItemHorizontalAlignment()
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 得到当前绘制动作的水平对齐方式
|
|
|
+ * 水平方向是基于后续绘制的内容的水平绘制方向,跟随绘制内容的顺时针旋转角度旋转
|
|
|
+ *
|
|
|
+ * @return 当前绘制动作的水平对齐方式(ItemAlignment)
|
|
|
+ */
|
|
|
+ @JavascriptInterface
|
|
|
+ fun getItemHorizontalAlignment(): Int {
|
|
|
+ return printer.itemHorizontalAlignment
|
|
|
+ } // Function getItemHorizontalAlignment()
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 设置后续绘制动作的垂直对齐方式
|
|
|
+ * 垂直方向是基于后续绘制的内容的垂直绘制方向,跟随绘制内容的顺时针旋转角度旋转
|
|
|
+ *
|
|
|
+ * @param alignment 后续绘制动作的垂直对齐方式(ItemAlignment),默认值为ItemAlignment.TOP;
|
|
|
+ */
|
|
|
+ @JavascriptInterface
|
|
|
+ fun setItemVerticalAlignment(alignment: Int) {
|
|
|
+ printer.itemVerticalAlignment = alignment
|
|
|
+ return
|
|
|
+ } // Function setItemVerticalAlignment()
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 得到当前绘制动作的垂直对齐方式
|
|
|
+ * 垂直方向是基于后续绘制的内容的垂直绘制方向,跟随绘制内容的顺时针旋转角度旋转
|
|
|
+ *
|
|
|
+ * @return 当前绘制动作的垂直对齐方式(ItemAlignment)
|
|
|
+ */
|
|
|
+ @JavascriptInterface
|
|
|
+ fun getItemVerticalAlignment(): Int {
|
|
|
+ return printer.itemVerticalAlignment
|
|
|
+ } // Function getItemVerticalAlignment()
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 设置线条画笔对齐方式
|
|
|
+ *
|
|
|
+ * @param penAlignmen 线条画笔对齐方式(PenAlignment),数值为以下两者之一;
|
|
|
+ * 1、PenAlignment.CENTER:绘制的线以指定的位置为中央;
|
|
|
+ * 2、PenAlignment.INSET:绘制的线在指定的位置内侧;
|
|
|
+ */
|
|
|
+ @JavascriptInterface
|
|
|
+ fun setItemPenAlignment(penAlignmen: Int) {
|
|
|
+ printer.itemPenAlignment = penAlignmen
|
|
|
+ return
|
|
|
+ } // Function setItemPenAlignment()
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 得到线条画笔对齐方式
|
|
|
+ *
|
|
|
+ * @return 线条画笔对齐方式(PenAlignment),数值为以下两者之一;
|
|
|
+ * 1、PenAlignment.CENTER:绘制的线以指定的位置为中央;
|
|
|
+ * 2、PenAlignment.INSET:绘制的线在指定的位置内侧;
|
|
|
+ */
|
|
|
+ @JavascriptInterface
|
|
|
+ fun getItemPenAlignment(): Int {
|
|
|
+ return printer.itemPenAlignment
|
|
|
+ } // Function getItemPenAlignment()
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 绘制文本字符串
|
|
|
+ * 如果之前没有调用 startPage 而直接调用本方法,则本方法会自动调用 startPage开始
|
|
|
+ * 绘制一个页面,然后进行文本字符串的绘制。
|
|
|
+ * 绘制的左上角水平垂直位置、水平宽度、垂直高度是基于当前绘制页面的水平垂直方向
|
|
|
+ * ontHeight是以毫米为单位
|
|
|
+ * 字号和毫米的转换公式为:
|
|
|
+ * 字号 = 毫米 * 72 / 25.4;
|
|
|
+ * 例如: 9 号字为 3.175 毫米,12 号字为 4.233 毫米
|
|
|
+ *
|
|
|
+ * @param text 需要绘制的文本字符串;
|
|
|
+ * @param x 绘制的文本框左上角水平位置(单位毫米);
|
|
|
+ * @param y 绘制的文本框左上角垂直位置(单位毫米);
|
|
|
+ * @param width 绘制的文本框水平宽度(单位毫米)。如果 width 为 0,则会根据绘制文本的显示宽度;
|
|
|
+ * 根据当前对齐方式进行以 x 为基准点的左中右对齐。默认值为0;
|
|
|
+ * @param height 绘制的文本框垂直高度(单位毫米)。如果height为 0,则会根据绘制文本的显示高度;
|
|
|
+ * 根据当前对齐方式进行以 y 为基准点的上中下对齐。默认值为0;
|
|
|
+ * @param fontHeight 文字大小(单位毫米);
|
|
|
+ * @return 成功与否
|
|
|
+ */
|
|
|
+ @JavascriptInterface
|
|
|
+ fun drawText(text: String, x: Double, y: Double, width: Double, height: Double, fontHeight: Double): Boolean {
|
|
|
+ return printer.drawText(text, x, y, width, height, fontHeight)
|
|
|
+ } // Function drawText()
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 绘制一维条码
|
|
|
+ * 如果之前没有调用 startPage 而直接调用本方法,则本方法会自动调用 startPage开始
|
|
|
+ * 绘制一个页面,然后进行一维条码的绘制
|
|
|
+ * 绘制的左上角水平垂直位置、宽度、高度是基于当前绘制页面的水平垂直方向
|
|
|
+ *
|
|
|
+ * @param text 需要绘制的一维条码的内容;
|
|
|
+ * @param type 一维条码的编码类型(BarcodeType),默认值为60;
|
|
|
+ * @param x 绘制的一维条码的左上角水平位置(单位毫米);
|
|
|
+ * @param y 绘制的一维条码的左上角垂直位置(单位毫米);
|
|
|
+ * @param width 一维条码的整体显示宽度;
|
|
|
+ * @param height 一维条码的显示高度(包括供人识读文本);
|
|
|
+ * @param textHeight 供人识读文本的高度(单位毫米),建议为3毫米;
|
|
|
+ * @return 成功与否
|
|
|
+ */
|
|
|
+ @JavascriptInterface
|
|
|
+ fun drw1Dbarcode(text: String, type: Int, x: Double, y: Double, width: Double, height: Double, textHeight: Double): Boolean {
|
|
|
+ return printer.draw1DBarcode(text, type, x, y, width, height, textHeight)
|
|
|
+ } // Function drw1Dbarcode()
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 绘制 QrCode 二维码
|
|
|
+ * 如果之前没有调用 startPage 而直接调用本方法,则本方法会自动调用 startPage 开始
|
|
|
+ * 绘制一个页面,然后进行QrCode二维码的绘制
|
|
|
+ * 绘制的左上角水平垂直位置、水平宽度、垂直高度是基于当前绘制页面的水平垂直方向
|
|
|
+ *
|
|
|
+ * @param text 需要绘制的QrCode二维码的内容;
|
|
|
+ * @param x 绘制的QrCode二维码的左上角水平位置(单位毫米);
|
|
|
+ * @param y 绘制的QrCode二维码的左上角垂直位置(单位毫米);
|
|
|
+ * @param width 绘制的QrCode二维码的水平宽度(单位毫米);
|
|
|
+ * @return 成功与否
|
|
|
+ */
|
|
|
+ @JavascriptInterface
|
|
|
+ fun draw2DQRCode(text: String, x: Double, y: Double, width: Double): Boolean {
|
|
|
+ return printer.draw2DQRCode(text, x, y, width)
|
|
|
+ } // Function draw2DQRCode()
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 绘制 Pdf417 二维码
|
|
|
+ * 如果之前没有调用 startPage 而直接调用本方法,则本方法会自动调用 startPage 开始
|
|
|
+ * 绘制一个页面,然后进行Pdf417二维码的绘制
|
|
|
+ * 绘制的左上角水平垂直位置、水平宽度、垂直高度是基于当前绘制页面的水平垂直方向
|
|
|
+ *
|
|
|
+ * @param text 需要绘制的Pdf417二维码的内容;
|
|
|
+ * @param x 绘制的Pdf417二维码的左上角水平位置(单位毫米);
|
|
|
+ * @param y 绘制的Pdf417二维码的左上角垂直位置(单位毫米);
|
|
|
+ * @param width 绘制的Pdf417二维码的水平宽度(单位毫米);
|
|
|
+ * @param height 绘制的Pdf417二维码的垂直高度(单位毫米);
|
|
|
+ * @return 成功与否
|
|
|
+ */
|
|
|
+ @JavascriptInterface
|
|
|
+ fun draw2DPdf417(text: String, x: Double, y: Double, width: Double, height: Double): Boolean {
|
|
|
+ return printer.draw2DPdf417(text, x, y, width, height)
|
|
|
+ } // Function draw2DPdf417()
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 以指定的线宽,绘制矩形框
|
|
|
+ * 如果之前没有调用 startPage 而直接调用本方法,则本方法会自动调用 startPage 开始
|
|
|
+ * 绘制一个页面,然后进行矩形框的绘制
|
|
|
+ * 绘制的左上角水平垂直位置、水平宽度、垂直高度是基于当前绘制页面的水平垂直方向
|
|
|
+ *
|
|
|
+ * @param x 绘制的矩形框的左上角水平位置(单位mm);
|
|
|
+ * @param y 绘制的矩形框的左上角垂直位置(单位mm);
|
|
|
+ * @param width 绘制的矩形框的水平宽度(单位mm);
|
|
|
+ * @param height 绘制的矩形框的垂直高度(单位mm);
|
|
|
+ * @param lineWidth 矩形框的线宽(单位mm)。矩形框的线宽是向矩形框内部延伸的;
|
|
|
+ * @return 成功与否
|
|
|
+ */
|
|
|
+ @JavascriptInterface
|
|
|
+ fun drawRectangle(x: Double, y: Double, width: Double, height: Double, lineWidth: Double): Boolean {
|
|
|
+ return printer.drawRectangle(x, y, width, height, lineWidth)
|
|
|
+ } // Function drawRectangle()
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 绘制填充矩形框
|
|
|
+ * 如果之前没有调用 startPage 而直接调用本方法,则本方法会自动调用 startPage 开始
|
|
|
+ * 绘制一个页面,然后进行矩形框的绘制
|
|
|
+ * 绘制的左上角水平垂直位置、水平宽度、垂直高度是基于当前绘制页面的水平垂直方向
|
|
|
+ *
|
|
|
+ * @param x 绘制的填充矩形框的左上角水平位置(单位mm);
|
|
|
+ * @param y 绘制的填充矩形框的左上角垂直位置(单位mm);
|
|
|
+ * @param width 绘制的填充矩形框的水平宽度(单位mm);
|
|
|
+ * @param height 绘制的填充矩形框的垂直高度(单位mm);
|
|
|
+ * @return 成功与否
|
|
|
+ */
|
|
|
+ @JavascriptInterface
|
|
|
+ fun fillRectangle(x: Double, y: Double, width: Double, height: Double): Boolean {
|
|
|
+ return printer.fillRectangle(x, y, width, height)
|
|
|
+ } // Function fillRectangle()
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 以指定的线宽,绘制圆角矩形框
|
|
|
+ * 如果之前没有调用 startPage 而直接调用本方法,则本方法会自动调用 startPage 开始
|
|
|
+ * 绘制一个页面,然后进行圆角矩形框的绘制
|
|
|
+ * 绘制的左上角水平垂直位置、水平宽度、垂直高度是基于当前绘制页面的水平垂直方向
|
|
|
+ *
|
|
|
+ * @param x 绘制的圆角矩形框的左上角水平位置(单位mm);
|
|
|
+ * @param y 绘制的圆角矩形框的左上角垂直位置(单位mm);
|
|
|
+ * @param width 绘制的圆角矩形框的水平宽度(单位mm);
|
|
|
+ * @param height 绘制的圆角矩形框的垂直高度(单位mm);
|
|
|
+ * @param cornerWidth 圆角宽度(单位mm);
|
|
|
+ * @param cornerHeight 圆角高度(单位mm),默认值为同cornerWidth;
|
|
|
+ * @param lineWidth 圆角矩形框的线宽(单位mm)。圆角矩形框的线宽是向圆角矩形框内部延伸的;
|
|
|
+ * @return 成功与否
|
|
|
+ */
|
|
|
+ @JavascriptInterface
|
|
|
+ fun drawRoundRectangle(x: Double, y: Double, width: Double, height: Double, cornerWidth: Double, cornerHeight: Double, lineWidth: Double): Boolean {
|
|
|
+ return printer.drawRoundRectangle(x, y, width, height, cornerWidth, cornerHeight, lineWidth)
|
|
|
+ } // Function drawRoundRectangle()
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 绘制填充圆角矩形框
|
|
|
+ * 如果之前没有调用 startPage 而直接调用本方法,则本方法会自动调用 startPage 开始
|
|
|
+ * 绘制一个页面,然后进行圆角矩形框的绘制
|
|
|
+ * 绘制的左上角水平垂直位置、水平宽度、垂直高度是基于当前绘制页面的水平垂直方向
|
|
|
+ *
|
|
|
+ * @param x 绘制的填充圆角矩形框的左上角水平位置(单位mm);
|
|
|
+ * @param y 绘制的填充圆角矩形框的左上角垂直位置(单位mm);
|
|
|
+ * @param width 绘制的填充圆角矩形框的水平宽度(单位mm);
|
|
|
+ * @param height 绘制的填充圆角矩形框的垂直高度(单位mm);
|
|
|
+ * @param cornerWidth 圆角宽度(单位mm);
|
|
|
+ * @param cornerHeight 圆角高度(单位mm),默认值为同cornerWidth;
|
|
|
+ * @return 成功与否
|
|
|
+ */
|
|
|
+ @JavascriptInterface
|
|
|
+ fun fillRoundRectangle(x: Double, y: Double, width: Double, height: Double, cornerWidth: Double, cornerHeight: Double): Boolean {
|
|
|
+ return printer.fillRoundRectangle(x, y, width, height, cornerWidth, cornerHeight)
|
|
|
+ } // Function fillRoundRectangle()
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 以指定的线宽,绘制椭圆
|
|
|
+ * 如果之前没有调用 startPage 而直接调用本方法,则本方法会自动调用 startPage 开始
|
|
|
+ * 绘绘制一个页面,然后进行椭圆/圆的绘制
|
|
|
+ * 绘制的左上角水平垂直位置、水平宽度、垂直高度是基于当前绘制页面的水平垂直方向
|
|
|
+ * width 和 height 相等时就是打印圆
|
|
|
+ *
|
|
|
+ * @param x 绘制的椭圆的左上角水平位置(单位mm);
|
|
|
+ * @param y 绘制的椭圆的左上角垂直位置(单位mm);
|
|
|
+ * @param width 绘制的椭圆的水平宽度(单位mm);
|
|
|
+ * @param height 绘制的椭圆的垂直高度(单位mm),默认值为同width,也即绘制圆;
|
|
|
+ * @param lineWidth 椭圆的线宽(单位mm)。椭圆的线宽是向椭圆内部延伸的;
|
|
|
+ * @return 成功与否
|
|
|
+ */
|
|
|
+ @JavascriptInterface
|
|
|
+ fun drawEllipse(x: Double, y: Double, width: Double, height: Double, lineWidth: Double): Boolean {
|
|
|
+ return printer.drawEllipse(x, y, width, height, lineWidth)
|
|
|
+ } // Function drawEllipse()
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 绘制填充椭圆
|
|
|
+ * 如果之前没有调用 startPage 而直接调用本方法,则本方法会自动调用 startPage 开始
|
|
|
+ * 绘绘制一个页面,然后进行椭圆/圆的绘制
|
|
|
+ * 绘制的左上角水平垂直位置、水平宽度、垂直高度是基于当前绘制页面的水平垂直方向
|
|
|
+ * width 和 height 相等时就是打印圆
|
|
|
+ *
|
|
|
+ * @param x 绘制的填充椭圆的左上角水平位置(单位mm);
|
|
|
+ * @param y 绘制的填充椭圆的左上角垂直位置(单位mm);
|
|
|
+ * @param width 绘制的填充椭圆的水平宽度(单位mm);
|
|
|
+ * @param height 绘制的填充椭圆的垂直高度(单位mm),默认值为同width,也即绘制圆;
|
|
|
+ * @return 成功与否
|
|
|
+ */
|
|
|
+ @JavascriptInterface
|
|
|
+ fun fillEllipse(x: Double, y: Double, width: Double, height: Double): Boolean {
|
|
|
+ return printer.fillEllipse(x, y, width, height)
|
|
|
+ } // Function fillEllipse()
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 以指定的位置为中心,绘制圆
|
|
|
+ * 如果之前没有调用 startPage 而直接调用本方法,则本方法会自动调用 startPage 开始
|
|
|
+ * 绘绘制一个页面,然后进行圆的绘制
|
|
|
+ * 绘制的左上角水平垂直位置、水平宽度、垂直高度是基于当前绘制页面的水平垂直方向。
|
|
|
+ *
|
|
|
+ * @param x 绘制的圆的x轴中心位置(单位mm);
|
|
|
+ * @param y 绘制的圆的y轴中心位置(单位mm);
|
|
|
+ * @param radius 绘制圆的半径(单位mm);
|
|
|
+ * @param lineWidth 圆的线宽(单位mm)。圆的线宽是向圆内部延伸;
|
|
|
+ * @return 成功与否
|
|
|
+ */
|
|
|
+ @JavascriptInterface
|
|
|
+ fun drawCircle(x: Double, y: Double, radius: Double, lineWidth: Double): Boolean {
|
|
|
+ return printer.drawCircle(x, y, radius, lineWidth)
|
|
|
+ } // Function drawCircle()
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 绘制填充圆形
|
|
|
+ * 如果之前没有调用 startPage 而直接调用本方法,则本方法会自动调用 startPage 开始
|
|
|
+ * 绘绘制一个页面,然后进行圆的绘制
|
|
|
+ * 绘制的左上角水平垂直位置、水平宽度、垂直高度是基于当前绘制页面的水平垂直方向。
|
|
|
+ *
|
|
|
+ * @param x 绘制的填充圆形X轴坐标中心点位置(单位mm);
|
|
|
+ * @param y 绘制的填充圆形y轴坐标中心点位置(单位mm);
|
|
|
+ * @param radius 绘制填充圆形的半径(单位mm);
|
|
|
+ * @return 成功与否
|
|
|
+ */
|
|
|
+ @JavascriptInterface
|
|
|
+ fun fillCircle(x: Double, y: Double, radius: Double): Boolean {
|
|
|
+ return printer.fillCircle(x, y, radius)
|
|
|
+ } // Function fillCircle()
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 绘制线(直线/斜线)
|
|
|
+ * 如果之前没有调用 startPage 而直接调用本方法,则本方法会自动调用 startPage 开始
|
|
|
+ * 绘制一个页面,然后进行直线/斜线的绘制
|
|
|
+ * 绘制的水平垂直位置是基于当前绘制页面的水平垂直方向
|
|
|
+ *
|
|
|
+ * @param x1 线的起点的水平位置(单位mm);
|
|
|
+ * @param y1 线的起点的垂直位置(单位mm);
|
|
|
+ * @param x2 线的终点的水平位置(单位mm);
|
|
|
+ * @param y2 线的终点的垂直位置(单位mm);
|
|
|
+ * @param lineWidth 线宽(单位mm)。线宽是向线的下方延伸的;
|
|
|
+ * @return 成功与否
|
|
|
+ */
|
|
|
+ @JavascriptInterface
|
|
|
+ fun drawLine(x1: Double, y1: Double, x2: Double, y2: Double, lineWidth: Double): Boolean {
|
|
|
+ return printer.drawLine(x1, y1, x2, y2, lineWidth)
|
|
|
+ } // Function drawLine()
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 绘制点划线
|
|
|
+ * 如果之前没有调用 startPage 而直接调用本方法,则本方法会自动调用 startPage 开始
|
|
|
+ * 绘制一个页面,然后进行点划线的绘制
|
|
|
+ * 绘制的水平垂直位置是基于当前绘制页面的水平垂直方向
|
|
|
+ *
|
|
|
+ * @param x1 线的起点的水平位置(单位mm);
|
|
|
+ * @param y1 线的起点的垂直位置(单位mm);
|
|
|
+ * @param x2 线的终点的水平位置(单位mm);
|
|
|
+ * @param y2 线的终点的垂直位置(单位mm);
|
|
|
+ * @param lineWidth 线宽(单位mm)。线宽是向线的下方延伸的;
|
|
|
+ * @param dashLen 点划线线段长度的数组;
|
|
|
+ * @param dashCount 点划线线段长度数组的元素个数;
|
|
|
+ * @return 成功与否
|
|
|
+ */
|
|
|
+ @JavascriptInterface
|
|
|
+ fun drawDashLine(x1: Double, y1: Double, x2: Double, y2: Double, lineWidth: Double, dashLen: DoubleArray, dashCount: Int): Boolean {
|
|
|
+ return printer.drawDashLine(x1, y1, x2, y2, lineWidth, dashLen, dashCount)
|
|
|
+ } // Function drawDashLine()
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 绘制点划线
|
|
|
+ * 如果之前没有调用 startPage 而直接调用本方法,则本方法会自动调用 startPage 开始
|
|
|
+ * 绘制一个页面,然后进行点划线的绘制
|
|
|
+ * 绘制的水平垂直位置是基于当前绘制页面的水平垂直方向
|
|
|
+ *
|
|
|
+ * @param x1 线的起点的水平位置(单位mm);
|
|
|
+ * @param y1 线的起点的垂直位置(单位mm);
|
|
|
+ * @param x2 线的终点的水平位置(单位mm);
|
|
|
+ * @param y2 线的终点的垂直位置(单位mm);
|
|
|
+ * @param lineWidth 线宽(单位mm)。线宽是向线的下方延伸的;
|
|
|
+ * @param dashLen1 点划线第一段的长度(单位mm);
|
|
|
+ * @param dashLen2 点划线第二段的长度(单位mm);
|
|
|
+ * @return 成功与否
|
|
|
+ */
|
|
|
+ @JavascriptInterface
|
|
|
+ fun drawDashLine2(x1: Double, y1: Double, x2: Double, y2: Double, lineWidth: Double, dashLen1: Double, dashLen2: Double): Boolean {
|
|
|
+ return printer.drawDashLine2(x1, y1, x2, y2, lineWidth, dashLen1, dashLen2)
|
|
|
+ } // Function drawDashLine2()
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 绘制点划线
|
|
|
+ * 如果之前没有调用 startPage 而直接调用本方法,则本方法会自动调用 startPage 开始
|
|
|
+ * 绘制一个页面,然后进行点划线的绘制
|
|
|
+ * 绘制的水平垂直位置是基于当前绘制页面的水平垂直方向
|
|
|
+ *
|
|
|
+ * @param x1 线的起点的水平位置(单位mm);
|
|
|
+ * @param y1 线的起点的垂直位置(单位mm);
|
|
|
+ * @param x2 线的终点的水平位置(单位mm);
|
|
|
+ * @param y2 线的终点的垂直位置(单位mm);
|
|
|
+ * @param lineWidth 线宽(单位mm)。线宽是向线的下方延伸的;
|
|
|
+ * @param dashLen1 点划线第一段的长度(单位mm);
|
|
|
+ * @param dashLen2 点划线第二段的长度(单位mm);
|
|
|
+ * @param dashLen3 点划线第三段的长度(单位mm);
|
|
|
+ * @param dashLen4 点划线第四段的长度(单位mm);
|
|
|
+ * @return 成功与否
|
|
|
+ */
|
|
|
+ @JavascriptInterface
|
|
|
+ fun drawDashLine4(x1: Double, y1: Double, x2: Double, y2: Double, lineWidth: Double, dashLen1: Double,
|
|
|
+ dashLen2: Double, dashLen3: Double, dashLen4: Double): Boolean {
|
|
|
+ return printer.drawDashLine4(x1, y1, x2, y2, lineWidth, dashLen1, dashLen2, dashLen3, dashLen4)
|
|
|
+ } // Function drawDashLine4()
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 绘制指定文件的图片
|
|
|
+ * 如果之前没有调用 startPage 而直接调用本方法,则本方法会自动调用 startPage 开始
|
|
|
+ * 绘制一个页面,然后进行图片的绘制。
|
|
|
+ * 绘制的左上角水平垂直位置、水平宽度、垂直高度是基于当前绘制页面的水平垂直方向
|
|
|
+ *
|
|
|
+ * @param imageFile 图片路径;
|
|
|
+ * @param x 打印对象在水平方向上的位置(单位mm);
|
|
|
+ * @param y 打印对象在垂直方向上的位置(单位mm);
|
|
|
+ * @param width 打印对象的宽度(单位mm)。如果 width 为 0,则采用加载的位图的宽度。默认值为0;
|
|
|
+ * @param height 打印对象的高度(单位mm)。如果 height 为0,则采用加载的位图的高度。默认值为0;
|
|
|
+ * @return 成功与否
|
|
|
+ */
|
|
|
+ @JavascriptInterface
|
|
|
+ fun drawImage(imageFile: String, x: Double, y: Double, width: Double, height: Double): Boolean {
|
|
|
+ Log.d(TAG, "1.9.1 drawImage ($imageFile, $x, $y, $width, $height)")
|
|
|
+ return printer.drawImage(imageFile, x, y, width, height)
|
|
|
+ } // Function drawImage()
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 绘制给定图片实际大小的图片
|
|
|
+ * 如果之前没有调用 startPage 而直接调用本方法,则本方法会自动调用 startPage 开始
|
|
|
+ * 绘制一个页面,然后进行图片的绘制
|
|
|
+ * 绘制的左上角水平垂直位置、水平宽度、垂直高度是基于当前绘制页面的水平垂直方向
|
|
|
+ *
|
|
|
+ * @param imageFile 图片路径;
|
|
|
+ * @param x 打印对象在水平方向上的位置(单位mm);
|
|
|
+ * @param y 打印对象在垂直方向上的位置(单位mm);
|
|
|
+ * @return 成功与否
|
|
|
+ */
|
|
|
+ @JavascriptInterface
|
|
|
+ fun drawImageWithActualSize(imageFile: String, x: Double, y: Double): Boolean {
|
|
|
+ return printer.drawImageWithActualSize(imageFile, x, y)
|
|
|
+ } // Function drawImageWithActualSize()
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 绘制灰度阀值的图片
|
|
|
+ * 如果之前没有调用 startPage 而直接调用本方法,则本方法会自动调用 startPage 开始
|
|
|
+ * 绘制一个页面,然后进行图片的绘制
|
|
|
+ * 绘制的左上角水平垂直位置、水平宽度、垂直高度是基于当前绘制页面的水平垂直方向
|
|
|
+ *
|
|
|
+ * @param imageFile 图片路径;
|
|
|
+ * @param x 打印对象在水平方向上的位置(单位mm);
|
|
|
+ * @param y 打印对象在垂直方向上的位置(单位mm);;
|
|
|
+ * @param width: 打印对象的宽度(单位mm)。如果 width 为 0,则采用加载的位图的宽度。默认值为0;
|
|
|
+ * @param height: 打印对象的高度(单位mm)。如果 height 为 0,则采用加载的位图的高度。默认值为0;
|
|
|
+ * @param threshold: 绘制位图的灰度阀值。256 表示绘制灰度图片,257 表示绘制原色图片,'
|
|
|
+ * 0~255表示绘制黑白图片,原图颜色>=灰度阀值的点会被认为是白色,
|
|
|
+ * 而原图颜色<灰度阀值的点会被认为是黑色;
|
|
|
+ * @return 成功与否
|
|
|
+ */
|
|
|
+ @JavascriptInterface
|
|
|
+ fun drawImageWithThreshold(imageFile: String, x: Double, y: Double, width: Double, height: Double, threshold: Int): Boolean {
|
|
|
+ return printer.drawImageWithThreshold(imageFile, x, y, width, height, threshold)
|
|
|
+ } // Function drawImageWithThreshold()
|
|
|
+
|
|
|
+} // Class SLPrinter
|