使用核心蓝牙连接热敏打印机打印图像文件

Posted

技术标签:

【中文标题】使用核心蓝牙连接热敏打印机打印图像文件【英文标题】:Connecting thermal printer using core Bluetooth to print image file 【发布时间】:2021-03-08 10:14:54 【问题描述】:

我想通过使用 Core Bluetooth Framework 将 I 连接到热敏打印机来打印图像/收据。

我已经尝试将图像转换为数据然后写入它..我可以成功打印尺寸为 120x120 像素的图像,但无法打印大于 120 像素的图像

让 image = UIImage(named: "demo") 让 data = image?.pngData()

guard let peripheral = connectedPeripheral,让特性 = writableCharacteristic else 打印(“在其他内部”) 返回

peripheral.writeValue(data, for: 特征, type: .withoutResponse)

我也尝试过使用“打印机”吊舱

我也尝试过将图像转换为位图然后转换为数据,还尝试使用 base64 字符串对其进行编码。

【问题讨论】:

尺寸变大会怎样? @cora 我使用ticketImage类使用pods'Printer'我打印我的图像..它只打印小于120像素的图像..我尝试了160px它通过花费一些时间打印并且360像素图像得到也扭曲了它在延迟后打印..其他尺寸的图像不起作用 【参考方案1】:

您需要问自己几个问题。

    外围设备发现期间协商的MTU 是什么? 如果您尝试写入外围设备的数据大于 MTU,“打印机”如何将其分解为多个数据包? 外设如何知道有多个数据包传入? (我必须发送一个特殊字符来启动流并发送另一个字符来结束它。每个外围设备都以不同的方式处理它)。 外设如何重组多个数据包?

【讨论】:

你能分享一下如何使用块/数据包发送它的代码吗? 你能告诉我为什么图像打印垃圾值..我先将图像转换为黑白,然后将其转换为数据,然后将其传递到块中 打印机可能不知道您正在传递块。它可能只是打印第一个块,认为这就是全部。

以上是关于使用核心蓝牙连接热敏打印机打印图像文件的主要内容,如果未能解决你的问题,请参考以下文章

热敏条码打印机怎样连接手机使用

使用 JavaScript 通过 ESC/POS 将图像打印命令发送到以太网上的热敏打印机

我们可以在 react native 中通过蓝牙连接到热敏收据打印机吗

优库蓝牙小票打印机怎么弄

wx.getBLEDeviceCharacteristics 微信小程序蓝牙 微信小程序热敏打印机

Flutter蓝牙热敏POS打印机