#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