[package] name = "craft-print" version.workspace = true edition.workspace = true license.workspace = true repository.workspace = true rust-version.workspace = true description = "System PDF print spooler for the Craft apps: CUPS and Windows" [dependencies] # Safe API; Win32 calls are isolated in this maintained MIT OR Apache-2.0 dependency. # Keep the public rgb re-export at main's GDI revision: a different Git rev gives # downstream GDI values a different Rust type identity even when the code is unchanged. # PDF loader updates below are independent of this public transport API. craft-winprint-gdi = { git = "https://github.com/storytold/winprint.rs", rev = "64e7afd4d1483512385012c340ecaaaf0f3beb7f" } [lints] workspace = true [target.'cfg(unix)'.dependencies] # Says why the printer list is empty when lpstat can't run (e.g. a Flatpak without CUPS tools). log = "0.4" [target.'cfg(windows)'.dependencies] # Printing without starting anything (storytold/pdfcraft#1107): the printer list (EnumPrinters) # and the job (Windows.Data.Pdf drawn with Direct2D into the XPS print API, options as a # PrintTicket) are safe wrappers over Win32 and WinRT (BSD-3-Clause). Its default `pdfium` # feature downloads PDFium at build time and is off. The maintained BSD-3-Clause fork # preserves terminal failures/cancellation and bounds the completion notification wait, and # creates the Direct2D factory multi-threaded, since Windows.Data.Pdf draws on its own worker # threads (storytold/pdfcraft#5006). File-backed PDF loading avoids StorageFile access # denial without whole-job buffering; includes the #15 test cleanup and explicit WinRT # feature. It draws each page at the job's resolution rather than ~96 dpi (winprint.rs#19, # storytold/pdfcraft#4941), writes QName values as prefix:local so drivers accept the merged # ticket (winprint.rs#12, storytold/pdfcraft#3823), and reads whitespace-padded integers in # PrintCapabilities (winprint.rs#3, storytold/pdfcraft#2430). Pinned to an immutable revision; # review before bumping. winprint = { git = "https://github.com/storytold/winprint.rs", rev = "bc06a7c48b768eb27a828c7986f6d2868b245ee0", default-features = false } # GetDefaultPrinter (MIT). winsafe = { version = "0.0.29", default-features = false, features = ["winspool"] } # The job file's private folder. tempfile = "3" # Reading the PrintTicket and PrintCapabilities the driver hands back. roxmltree = "0.21" # Inflating the print-ready PDF's cross-reference and object streams (src/sheets.rs). miniz_oxide = "0.9" [dev-dependencies] tempfile = "3" roxmltree = "0.21" miniz_oxide = "0.9"