Resolves#26 (Sub-Task 1 of Milestone 6: Native Raw OS Printing Engine #25).
Implements the Windows native raw printing spooler backend within the Tauri Rust core to bypass Windows GDI Image Color Management (ICM) and print unmanaged profiling targets directly to inkjet and raster printers.
Changes
Modular Printing Backend (src-tauri/src/print/):
mod.rs: Platform abstraction with non-Windows stubs.
windows.rs:
get_printers: Native printer enumeration using EnumPrintersW (Level 4 with Level 2 fallback).
print_target:
TIFF loading and conversion into an uncompressed 24-bit BGR DIB buffer with 4-byte row stride alignment.
Printer handle management via OpenPrinterW and DEVMODEW manipulation (dmICMMethod = DMICMMETHOD_NONE).
Device context creation (CreateDCW) and GDI color management bypass (SetICMMode(hdc, ICM_OFF)).
Bitmap drawing to device context via StretchDIBits and GDI document lifecycle APIs (StartDocW, StartPage, EndPage, EndDoc).
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.
Summary
Resolves #26 (Sub-Task 1 of Milestone 6: Native Raw OS Printing Engine #25).
Implements the Windows native raw printing spooler backend within the Tauri Rust core to bypass Windows GDI Image Color Management (ICM) and print unmanaged profiling targets directly to inkjet and raster printers.
Changes
src-tauri/src/print/):mod.rs: Platform abstraction with non-Windows stubs.windows.rs:get_printers: Native printer enumeration usingEnumPrintersW(Level 4 with Level 2 fallback).print_target:OpenPrinterWandDEVMODEWmanipulation (dmICMMethod = DMICMMETHOD_NONE).CreateDCW) and GDI color management bypass (SetICMMode(hdc, ICM_OFF)).StretchDIBitsand GDI document lifecycle APIs (StartDocW,StartPage,EndPage,EndDoc).src-tauri/src/commands.rs&src-tauri/src/lib.rs):get_windows_printersandprint_target_windows.src-tauri/Cargo.toml):imagecrate (v0.25) with TIFF decoding.windowscrate (v0.58) undertarget.'cfg(windows)'.dependencies.Testing & Verification
cargo check: Clean compilation on Linux.cargo test: All 8 unit tests passed.