使用核心蓝牙连接热敏打印机打印图像文件
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 中通过蓝牙连接到热敏收据打印机吗