【问题标题】: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像素图像得到也扭曲了它在延迟后打印..其他尺寸的图像不起作用

标签: objective-c swift bitmap core-bluetooth thermal-printer


【解决方案1】:

您需要问自己几个问题。

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

【讨论】:

  • 你能分享一下如何使用块/数据包发送它的代码吗?
  • 你能告诉我为什么图像打印垃圾值..我先将图像转换为黑白,然后将其转换为数据,然后将其传递到块中
  • 打印机可能不知道您正在传递块。它可能只是打印第一个块,认为这就是全部。
猜你喜欢
  • 1970-01-01
  • 2011-08-22
  • 2018-04-28
  • 1970-01-01
  • 2019-08-27
  • 2013-06-03
  • 2019-11-23
  • 2019-01-27
  • 1970-01-01
相关资源
最近更新 更多