在 iOS 中通过蓝牙(非 Airprint)打印到打印机?

时间:2021-07-20 06:09:21

标签: ios swift printers thermal-printer ios-bluetooth

我需要将图像从我的 iOS 应用程序打印到未启用 AirPrint 的蓝牙热敏打印机。由于非AirPrint打印机无法使用UIKit打印,所以我选择使用3rd party SDK。

使用 this SDK 并尝试在我可以打印小尺寸图像的地方打印图像,但是当涉及到大图像时,它在附加字节时崩溃,说索引超出范围,这就是功能

`private func eachLinePixToCmd(src: [UInt8], nWidth: Int, nHeight: Int, nMode: Int) -> [UInt8] { var 数据 = [UInt8]

    let p0 = [0, 0x80]
    let p1 = [0, 0x40]
    let p2 = [0, 0x20]
    let p3 = [0, 0x10]
    let p4 = [0, 0x08]
    let p5 = [0, 0x04]
    let p6 = [0, 0x02]
    
    let nBytesPerLine: Int = (nWidth + 7) / 8
    var k: Int = 0
    
    for _ in 0..<nHeight {
        data.append(ESC_POSCommand.beginPrintImage(xl: UInt8(nBytesPerLine % 0xff), xH: UInt8(nBytesPerLine / 0xff), yl: UInt8(1), yH: UInt8(0)).rawValue)
        var bytes = [UInt8]()
        for _ in 0..<nBytesPerLine {
            bytes.append(UInt8(p0[Int(src[k])] + p1[Int(src[k + 1])] + p2[Int(src[k + 2])] + p3[Int(src[k + 3])] + p4[Int(src[k + 4])] + p5[Int(src[k + 5])] + p6[Int(src[k + 6])] + Int(src[k + 7])))
            k = k + 8
        }
        data.append(bytes)
    }
    let rdata: [UInt8] = data.flatMap { $0 }
    return rdata
}

}`

请告诉我是否有其他可用的 SDK 或在哪里对附加字节进行更改?

希望得到答复!!

0 个答案:

没有答案