IOS — Печать изображения на термопринтере Phomemo M02 Mini Bluetooth с помощью CoreBluetooth в Swift 5?

#ios #printing #uikit #swift5 #core-bluetooth

Вопрос:

У меня есть термопринтер Phomemo M02 Mini Bluetooth, на котором я хочу распечатать изображение ниже из своего приложения для IOS:

введите описание изображения здесь

В моем приложении приведенное выше изображение берется из UIView. Я попытался преобразовать это изображение в данные, а затем отправить эти данные на принтер через Bluetooth с помощью платформы CoreBluetooth, но принтер просто не печатал изображения и не прекращал разворачивать бумагу, пока я не отключил свое приложение от устройства. С учетом сказанного, знает ли кто-нибудь, как правильно отправлять данные изображения или просто изображение на термопринтер Phomemo M02 Mini Bluetooth, чтобы он распечатал его и чтобы принтер фактически прекратил разворачивать бумагу после рисования изображения? Это было бы действительно ценно. Спасибо.

Вот мой код:

Код для превращения моего UIView в изображение:

 extension UIView {
    func captureShot () -> UIImage {
        
        UIGraphicsBeginImageContextWithOptions(self.bounds.size, false, self.layer.contentsScale)
        drawHierarchy(in: self.bounds, afterScreenUpdates: true)
        let image = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()
        
        return ((image != nil) ? image! : UIImage())
    }
}
 

Код для отправки данных изображения на принтер:

 let imageData = printView.captureShot().jpegData(compressionQuality: 100)
if (imageData != nil) {
   imageView.image = UIImage(data: imageData!)!
   print("image size: (UIImage(data: imageData!)!.size)")
   globalPeripheral.writeValue(imageData!, for: characteristic, type: .withResponse)
}
 

Комментарии:

1. Вам нужно прочитать руководство по эксплуатации устройства и посмотреть, как вам нужно отформатировать данные, которые вы отправляете на него. Он может принимать PCL, ESC/POS или какой-либо другой формат. Маловероятно, что вы можете просто отправить его в формате jpeg.

2. Это указывает на то, что он использует Epson ESC/POS