EPSON ePOS SDK-仅打印一次

时间:2019-07-20 07:05:10

标签: swift xcode sdk epson

当我按下按钮时,我试图打印跟随数据。 当我按下按钮时,它可以成功打印到打印机,但是几秒钟后再次按下按钮时,将不会打印任何内容。

已经阅读了有关该主题的几篇文章,没有任何帮助。 我也尝试过删除“ printer?.disconnect()”函数,但仍然无法正常工作。

我希望每次按下按钮都成功打印文本。感谢所有帮助我的人!

func sendPrintData(){

    //Find Printer
    var printer: Epos2Printer?
    printer = Epos2Printer(printerSeries: EPOS2_TM_T82.rawValue, lang: EPOS2_MODEL_ANK.rawValue)

    if printer == nil {

        let alert = UIAlertController(title: "Error", message: "Printer not found!", preferredStyle: .alert)
        alert.addAction(UIAlertAction(title: "OK", style: .default, handler: nil))
        self.present(alert, animated: true)

    } else {

        printer?.setReceiveEventDelegate(self)

        //Setup Print Data
        printer?.addFeedLine(5) //Top Spacing
        printer?.addTextSize(1, height: 1) //Text Size
        printer?.addText("Line 1") //Text
        printer?.addFeedLine(5) //Bottom Spacing
        printer?.addCut(0) //Cut Paper

        //Connect to the Printer
        printer!.connect("TCP:192.168.0.12", timeout: Int(EPOS2_PARAM_DEFAULT)) //Connect to this Printer
        printer!.beginTransaction() //Start Printing
        printer?.sendData(Int(EPOS2_PARAM_DEFAULT)) //Send Data

        //Finish Printing
        printer?.endTransaction() //Stop Printing
        printer?.disconnect()
        printer?.clearCommandBuffer() //Clear Command Buffer
        printer?.setReceiveEventDelegate(nil)

    }
}

public func onPtrReceive(_ printerObj: Epos2Printer!, code: Int32, status: Epos2PrinterStatusInfo!, printJobId: String!) {

    DispatchQueue.global(qos: DispatchQoS.QoSClass.default).async(execute: {

        //Finish Printing
        printerObj.endTransaction() //Stop Printing
        printerObj.disconnect()
        printerObj.clearCommandBuffer() //Clear Command Buffer
        printerObj.setReceiveEventDelegate(nil)

    })
}

0 个答案:

没有答案
相关问题