printEscPosWin32 method
void
printEscPosWin32(
- List<int> data
)
Implementation
void printEscPosWin32(List<int> data) {
final hPrinter = alloc<Pointer>();
final docInfo = alloc<DOC_INFO_1>();
final printerNamePtr = printerName.toNativeUtf16(allocator: alloc);
final docNamePtr = 'ESC/POS Print Job'.toNativeUtf16(allocator: alloc);
final rawDatatypePtr = 'RAW'.toNativeUtf16(allocator: alloc);
docInfo.ref.pDocName = PWSTR(docNamePtr);
docInfo.ref.pOutputFile = PWSTR(nullptr.cast());
docInfo.ref.pDatatype = PWSTR(rawDatatypePtr);
if (OpenPrinter(PCWSTR(printerNamePtr), hPrinter, null).value) {
final printerHandle = PRINTER_HANDLE(hPrinter.value);
if (StartDocPrinter(printerHandle, 1, docInfo.cast()) != 0) {
StartPagePrinter(printerHandle);
final buffer = alloc<Uint8>(data.length);
buffer.asTypedList(data.length).setAll(0, data);
final bytesWritten = alloc<Uint32>();
WritePrinter(
printerHandle,
buffer,
data.length,
bytesWritten,
);
EndPagePrinter(printerHandle);
EndDocPrinter(printerHandle);
}
ClosePrinter(printerHandle);
}
}