Implement the Windows-specific raw printing backend to bypass the OS Image Color Management (ICM) layer.
Tasks
Evaluate the winprint and printers crates (evaluated direct Win32 GDI/Printing APIs via windows crate).
Implement a Tauri command get_windows_printers to enumerate available system printers.
Implement a Tauri command print_target_windows that accepts a printer name and TIFF file path.
Ensure the GDI print pipeline explicitly calls SetICMMode(hDC, ICM_OFF).
Manipulate the printer's DEVMODE structure to instruct the driver to disable colour adjustments (dmICMMethod = DMICMMETHOD_NONE).
Send unmanaged 24-bit BGR DIB payload with 4-byte row stride alignment via StretchDIBits for inkjet compatibility.
### Objective
Implement the Windows-specific raw printing backend to bypass the OS Image Color Management (ICM) layer.
### Tasks
- [x] Evaluate the [`winprint`](https://crates.io/crates/winprint) and [`printers`](https://crates.io/crates/printers) crates (evaluated direct Win32 GDI/Printing APIs via `windows` crate).
- [x] Implement a Tauri command `get_windows_printers` to enumerate available system printers.
- [x] Implement a Tauri command `print_target_windows` that accepts a printer name and TIFF file path.
- [x] Ensure the GDI print pipeline explicitly calls `SetICMMode(hDC, ICM_OFF)`.
- [x] Manipulate the printer's `DEVMODE` structure to instruct the driver to disable colour adjustments (`dmICMMethod = DMICMMETHOD_NONE`).
- [x] Send unmanaged 24-bit BGR DIB payload with 4-byte row stride alignment via `StretchDIBits` for inkjet compatibility.
gronod
added this to the Milestone 6: Native Raw OS Printing Engine milestone 2026-08-23 10:24:20 +01:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Objective
Implement the Windows-specific raw printing backend to bypass the OS Image Color Management (ICM) layer.
Tasks
winprintandprinterscrates (evaluated direct Win32 GDI/Printing APIs viawindowscrate).get_windows_printersto enumerate available system printers.print_target_windowsthat accepts a printer name and TIFF file path.SetICMMode(hDC, ICM_OFF).DEVMODEstructure to instruct the driver to disable colour adjustments (dmICMMethod = DMICMMETHOD_NONE).StretchDIBitsfor inkjet compatibility.Implemented in PR #29. Changes are ready for review on branch
feature/issue-26-windows-raw-print.