Недавно я купил дешевый термопринтер pt-210; он должен работать с использованием стандартного ESC-POS и поэтому описывается как бесплатный SDK
https://www.alibaba.com/product-detail/ ... 62774.html
Я протестировал его с некоторыми приложениями для печати в Googlestore, и я могу печатать тексты и изображения!
Теперь я хочу написать свой собственный проект в MAUI, чтобы иметь возможность также печатать текст и изображения.
Я провел небольшое исследование в Интернете и смог придумать код, исполняющий мое желание, но он удался только для текстовой части и не смог напечатать ни одного изображения! (ошибка не отображается).
пока вот мой код, я пытаюсь сделать снимок экрана и распечатать его
Код: Выделить всё
// take screenshoot and save it as PNG in the cachefolder
var path = FileSystem.Current.CacheDirectory;
string fn = "ScanButton.png";
var fullPath = Path.Combine(path, fn);
var result = await ScanButton.CaptureAsync(); //take screenshoot of a UI controller (i.e Button)
using MemoryStream stream = new MemoryStream(); //create Mem Stream
await result.CopyToAsync(stream); //copy the screenshoot into stream
await File.WriteAllBytesAsync(fullPath, stream.ToArray()); //saved in cash folder
//Load it from cash into a byte array
byte[] data = await File.ReadAllBytesAsync(fullPath);
using MemoryStream stream2 = new MemoryStream(); //create another new stream
stream2.Write(SELECT_BIT_IMAGE_MODE, 0, SELECT_BIT_IMAGE_MODE.Length); //insert image mode
stream2.Write(data, 0, data.Length);
var bytes = stream2.ToArray();
if (serviceSelect != null && characteristicSelect != null)
{
await characteristicSelect.WriteAsync(INIT);
await characteristicSelect.WriteAsync(new byte[] { 0x0A });
await characteristicSelect.WriteAsync(Encoding.UTF8.GetBytes("Hello World"));
await characteristicSelect.WriteAsync(new byte[] { 0x0A });
await characteristicSelect.WriteAsync(new byte[] { 0x0A });
await characteristicSelect.WriteAsync(bytes);
Код: Выделить всё
//public static byte[] SELECT_BIT_IMAGE_MODE = { 0x1B, 0x2A, 33, (byte)255, 0 };
public static byte[] SELECT_BIT_IMAGE_MODE = { 0x1B, 0x2A, 33, 255, 3 };
Код: Выделить всё
public static byte[] INIT = { 0x1B, 0x40 };
Буду признателен за любые советы!
Заранее спасибо
Подробнее здесь: https://stackoverflow.com/questions/788 ... i-over-ble