collective

Browse / github.com/storytold/craft-libs / patch

print: Windows draws each page at the job's resolution, not ~96 dpi

print: Windows draws each page at the job's resolution, not ~96 dpi ## What Pins `winprint` in `crates/print/Cargo.toml` to the head of storytold/winprint.rs#7 (`f623113`), which merges upstream ArcticLampyrid/winprint.rs `a4da89b` and `5d49639`. ## Why On Windows, craft-print hands the print-ready PDF to `Windows.Data.Pdf`, which draws it with Direct2D into the XPS print API. At the current pin (`5f80b9b`) `RenderPageToDeviceContext` gets no destination size, so the page is rendered at its size in DIPs and images reach the sheet at about **96 dpi**, whatever the source resolution or the driver's quality setting. That is the cause of: - storytold/pdfcraft#

Status
open
Score
0.00
Adopters
0 other operators
Author
huppiflupp (imported from pull request #396, open)
Base
d40c2be47d36e6d25747ab5665c4f174b03df5b7
Size
+23 −951 in 2 files
Review
pending
Shared
2026-10-28
Id
6590df3c2dde20182ffe10f9

How it went

No other operator has reported using it yet.

Diff

raw · Cargo.lock crates/print/Cargo.toml

diff --git a/Cargo.lock b/Cargo.lock--- a/Cargo.lock+++ b/Cargo.lock@@ -276,30 +276,6 @@ version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" -[[package]]-name = "aws-lc-rs"-version = "1.18.1"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "b281d307588d634de920874890732659e2e7672f72b5e10e81badc1a8a83621e"-dependencies = [- "aws-lc-sys",- "untrusted 0.7.1",- "zeroize",-]--[[package]]-name = "aws-lc-sys"-version = "0.45.0"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "9bff6c3b54fad79a2e60b8102caf565819711497c1f5f092f49508e2f5c31b27"-dependencies = [- "cc",- "cmake",- "dunce",- "fs_extra",- "pkg-config",-]- [[package]] name = "base64" version = "0.22.1"@@ -312,12 +288,6 @@ version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac07cdecf99051d9a5238b80f35af32cdeba5b336e55d957b318b50137e18da5" -[[package]]-name = "base64ct"-version = "1.8.3"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06"- [[package]] name = "bit-set" version = "0.10.0"@@ -548,7 +518,7 @@ checksum = "65c35e4b699c7e15ccbe7ee35c005e4fc0a278d22238a2857e6ce2dadeda1b06" dependencies = [  "cfg-if",  "cpufeatures 0.3.1",- "rand_core 0.10.1",+ "rand_core", ]  [[package]]@@ -557,45 +527,7 @@ version = "0.4.45" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1aa79e62e7697b8e29b513a68abacf485adcd1fe8284a4316c5ae868e6633327" dependencies = [- "iana-time-zone",- "js-sys",  "num-traits",- "serde",- "wasm-bindgen",- "windows-link",-]--[[package]]-name = "cmake"-version = "0.1.58"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "c0f78a02292a74a88ac736019ab962ece0bc380e3f977bf72e376c5d78ff0678"-dependencies = [- "cc",-]--[[package]]-name = "cmpv2"-version = "0.2.0"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "961b955a666e25ee5a1091d219128d6e6401e3dab84efb1a2bf6b4035d797b39"-dependencies = [- "crmf",- "der",- "spki",- "x509-cert",-]--[[package]]-name = "cms"-version = "0.2.3"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "7b77c319abfd5219629c45c34c89ba945ed3c5e49fcde9d16b6c3885f118a730"-dependencies = [- "const-oid",- "der",- "spki",- "x509-cert", ]  [[package]]@@ -662,12 +594,6 @@ dependencies = [  "crossbeam-utils", ] -[[package]]-name = "const-oid"-version = "0.9.6"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8"- [[package]] name = "core-foundation" version = "0.9.4"@@ -1093,18 +1019,6 @@ dependencies = [  "cfg-if", ] -[[package]]-name = "crmf"-version = "0.2.0"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "36fe21b96d5b87f5de4b5b7202ec41c00110ac817ce6728fe75fb2fe5962ed92"-dependencies = [- "cms",- "der",- "spki",- "x509-cert",-]- [[package]] name = "crossbeam-channel" version = "0.5.17"@@ -1167,30 +1081,6 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be1e0bca6c3637f992fc1cc7cbc52a78c1ef6db076dbf1059c4323d6a2048376" -[[package]]-name = "der"-version = "0.7.10"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb"-dependencies = [- "const-oid",- "der_derive",- "flagset",- "pem-rfc7468",- "zeroize",-]--[[package]]-name = "der_derive"-version = "0.7.3"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "8034092389675178f570469e6c3b0465d3d30b4505c294a6550db47f3c17ad18"-dependencies = [- "proc-macro2",- "quote",- "syn 2.0.119",-]- [[package]] name = "deranged" version = "0.5.9"@@ -1238,7 +1128,7 @@ dependencies = [  "libc",  "option-ext",  "redox_users",- "windows-sys 0.61.2",+ "windows-sys 0.59.0", ]  [[package]]@@ -1496,20 +1386,6 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d" -[[package]]-name = "encoding_rs"-version = "0.8.42"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "8e985e0451871ad22fb8d2b6b076e2028a502a0d3950998c2c5c0a4f9b5d9679"-dependencies = [- "cfg-if",- "core_detect",- "multiversion_no_op",- "rustversion",- "scopeguard",- "simdutf8",-]- [[package]] name = "endi" version = "1.1.1"@@ -1613,7 +1489,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [  "libc",- "windows-sys 0.61.2",+ "windows-sys 0.59.0", ]  [[package]]@@ -1693,12 +1569,6 @@ dependencies = [  "writeable", ] -[[package]]-name = "flagset"-version = "0.4.7"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "b7ac824320a75a52197e8f2d787f6a38b6718bb6897a35142d749af3c0e8f4fe"- [[package]] name = "flate2" version = "1.1.10"@@ -1821,31 +1691,6 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" -[[package]]-name = "form_urlencoded"-version = "1.2.2"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf"-dependencies = [- "percent-encoding",-]--[[package]]-name = "fs_extra"-version = "1.3.0"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c"--[[package]]-name = "futures-channel"-version = "0.3.34"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "b1f9e3d69d39e4862ffed03ed071a76f9a13ba1d9109d355b0f0aa6b15e393c4"-dependencies = [- "futures-core",- "futures-sink",-]- [[package]] name = "futures-core" version = "0.3.34"@@ -1871,12 +1716,6 @@ dependencies = [  "pin-project-lite", ] -[[package]]-name = "futures-sink"-version = "0.3.34"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "1944426bf7d03f1d14f708785e4b33efd750b36d48a157b836b3efc15ede8e1d"- [[package]] name = "futures-task" version = "0.3.34"@@ -1890,10 +1729,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d50a92467f8ba5dd6e3ee5d4bd04d73ab2e4e1c44474a0674821dfce14b79bc" dependencies = [  "futures-core",- "futures-io",- "futures-sink",  "futures-task",- "memchr",  "pin-project-lite",  "slab", ]@@ -1934,10 +1770,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" dependencies = [  "cfg-if",- "js-sys",  "libc",  "wasi",- "wasm-bindgen", ]  [[package]]@@ -1962,7 +1796,7 @@ dependencies = [  "js-sys",  "libc",  "r-efi 6.0.0",- "rand_core 0.10.1",+ "rand_core",  "wasm-bindgen", ] @@ -2121,25 +1955,6 @@ dependencies = [  "euclid", ] -[[package]]-name = "h2"-version = "0.4.20"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "7d29020232d6aa3fb1daca64c1127cf662cf97f254ae16c18c05b8ab635fc118"-dependencies = [- "atomic-waker",- "bytes",- "fnv",- "futures-core",- "futures-sink",- "http",- "indexmap",- "slab",- "tokio",- "tokio-util",- "tracing",-]- [[package]] name = "half" version = "2.7.1"@@ -2303,127 +2118,18 @@ dependencies = [  "itoa", ] -[[package]]-name = "http-body"-version = "1.1.0"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "ca2a8f2913ee65f60facd6a5905613afaa448497a0230cc41ce022d93290bc2c"-dependencies = [- "bytes",- "http",-]--[[package]]-name = "http-body-util"-version = "0.1.5"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "23169fe34a5fbcdd3f3862e78fb9b6fccd5f02a6dc6f732547005d45631ce71c"-dependencies = [- "bytes",- "futures-core",- "http",- "http-body",- "pin-project-lite",-]- [[package]] name = "httparse" version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" -[[package]]-name = "hyper"-version = "1.12.0"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "2c3e324da4c95177d6291d4c8730197c0d1822f8a9766814a4a44fa5ab797c9c"-dependencies = [- "atomic-waker",- "bytes",- "futures-channel",- "futures-core",- "h2",- "http",- "http-body",- "httparse",- "itoa",- "pin-project-lite",- "smallvec",- "tokio",- "want",-]--[[package]]-name = "hyper-rustls"-version = "0.27.10"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "dfa8e654703247911e29c23fbeaa261834bd9bb74efba2f9acddc37bfb127f53"-dependencies = [- "http",- "hyper",- "hyper-util",- "rustls",- "tokio",- "tokio-rustls",- "tower-service",-]--[[package]]-name = "hyper-util"-version = "0.1.21"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "ddc03d96684f9226b8a787cdb71488417b53ab5ea8fdb1dac946cb9431cc8bff"-dependencies = [- "base64 0.23.1",- "bytes",- "futures-channel",- "futures-util",- "http",- "http-body",- "httparse",- "hyper",- "ipnet",- "libc",- "percent-encoding",- "pin-project-lite",- "socket2",- "system-configuration",- "tokio",- "tower-service",- "tracing",- "windows-registry",-]- [[package]] name = "hypher" version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "45f2b4f6b5da34d400d4c112eadcc14512cc5d04307a8eee182586d9bebd7ce6" -[[package]]-name = "iana-time-zone"-version = "0.1.65"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470"-dependencies = [- "android_system_properties",- "core-foundation-sys",- "iana-time-zone-haiku",- "js-sys",- "log",- "wasm-bindgen",- "windows-core",-]--[[package]]-name = "iana-time-zone-haiku"-version = "0.1.2"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"-dependencies = [- "cc",-]- [[package]] name = "icu_collator" version = "2.3.1"@@ -2645,27 +2351,6 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae293c039020f9ec10710af98d29ce6aa2051486638b49c9a6409f3b4a9e98ad" -[[package]]-name = "idna"-version = "1.1.0"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de"-dependencies = [- "idna_adapter",- "smallvec",- "utf8_iter",-]--[[package]]-name = "idna_adapter"-version = "1.2.2"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "cb68373c0d6620ef8105e855e7745e18b0d00d3bdb07fb532e434244cdb9a714"-dependencies = [- "icu_normalizer",- "icu_properties",-]- [[package]] name = "image" version = "0.25.10"@@ -2711,12 +2396,6 @@ dependencies = [  "hashbrown 0.17.1", ] -[[package]]-name = "ipnet"-version = "2.12.2"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "791930b43c0d5973160d90a8f3894509f2b273430f5c5c73b668636d0287c5c0"- [[package]] name = "is-docker" version = "0.2.0"@@ -3025,12 +2704,6 @@ version = "0.4.34" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f9f8bd3e56ce4dfc153cf470fffbfa98c7620958b312ca5c3a4b8d5181fd13c6" -[[package]]-name = "lru-slab"-version = "0.1.3"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "4050469837a6ff301cd14c1f8f24f88549e6d548f24f64e2148eb0f72cebc51f"- [[package]] name = "memchr" version = "2.8.3"@@ -3055,12 +2728,6 @@ dependencies = [  "autocfg", ] -[[package]]-name = "mime"-version = "0.3.17"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"- [[package]] name = "minicov" version = "0.3.8"@@ -3091,17 +2758,6 @@ dependencies = [  "simd-adler32", ] -[[package]]-name = "mio"-version = "1.2.4"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "1788edb87fdc09c7e26304471e2f5be8cdefb1b6930d6e3985fc02ff53bf86ee"-dependencies = [- "libc",- "wasi",- "windows-sys 0.61.2",-]- [[package]] name = "moxcms" version = "0.8.1"@@ -3130,12 +2786,6 @@ dependencies = [  "windows-sys 0.61.2", ] -[[package]]-name = "multiversion_no_op"-version = "1.0.0"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "743fb55ba31b18fb1ecef6bdc9aa2743314978ac084044301a7eee33fb99a20d"- [[package]] name = "naga" version = "30.0.1"@@ -3228,7 +2878,7 @@ version = "0.50.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" dependencies = [- "windows-sys 0.61.2",+ "windows-sys 0.59.0", ]  [[package]]@@ -3698,25 +3348,6 @@ dependencies = [  "ryu", ] -[[package]]-name = "pem"-version = "3.0.6"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "1d30c53c26bc5b31a98cd02d20f25a7c8567146caf63ed593a9d87b2775291be"-dependencies = [- "base64 0.22.1",- "serde_core",-]--[[package]]-name = "pem-rfc7468"-version = "0.7.0"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412"-dependencies = [- "base64ct",-]- [[package]] name = "peniko" version = "0.6.1"@@ -4076,67 +3707,10 @@ dependencies = [ ]  [[package]]-name = "quinn"-version = "0.11.12"+name = "quote"+version = "1.0.47" source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "4051e23e9185c255a7e33ef59cdbca87a22d359052eecd22fc6b901fb37d9d11"-dependencies = [- "bytes",- "cfg_aliases",- "pin-project-lite",- "quinn-proto",- "quinn-udp",- "rustc-hash 2.1.3",- "rustls",- "socket2",- "thiserror 2.0.21",- "tokio",- "tracing",- "web-time",-]--[[package]]-name = "quinn-proto"-version = "0.11.19"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "0e750cca55fe4f0439a15d0bb529da9651e79993e8e72c61a899a36d462befbe"-dependencies = [- "aws-lc-rs",- "bytes",- "getrandom 0.4.3",- "lru-slab",- "rand",- "rand_pcg",- "ring",- "rustc-hash 2.1.3",- "rustls",- "rustls-pki-types",- "slab",- "thiserror 2.0.21",- "tinyvec",- "tracing",- "web-time",-]--[[package]]-name = "quinn-udp"-version = "0.5.16"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "af66907df18639dcf4db56ca65490cabc4b27a97dbadd96f2926cca73298f016"-dependencies = [- "cfg_aliases",- "libc",- "once_cell",- "socket2",- "tracing",- "windows-sys 0.61.2",-]--[[package]]-name = "quote"-version = "1.0.47"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001"+checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001" dependencies = [  "proc-macro2", ]@@ -4159,39 +3733,23 @@ version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "65c9fb96cbc91e3478eaae79a69fcd3f1ae4ad052e471fe6732fff548984b4af" dependencies = [- "chacha20",  "getrandom 0.4.3",- "rand_core 0.10.1",+ "rand_core", ] -[[package]]-name = "rand_core"-version = "0.6.4"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"- [[package]] name = "rand_core" version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69" -[[package]]-name = "rand_pcg"-version = "0.10.2"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "caa0f4137e1c0a72f4c651489402276c8e8e1cf081f3b0ba156d2cbeef09e86a"-dependencies = [- "rand_core 0.10.1",-]- [[package]] name = "rand_xorshift" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "60aa6af80be32871323012e02e6e65f8a7cc7890931ae421d217ad8fe0df2ccf" dependencies = [- "rand_core 0.10.1",+ "rand_core", ]  [[package]]@@ -4332,49 +3890,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19b30a45b0cd0bcca8037f3d0dc3421eaf95327a17cad11964fb8179b4fc4832" -[[package]]-name = "reqwest"-version = "0.13.5"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "16a1cfa75cc186dd73d5818e510e042e40927bccc9c236b061cea97e1eb08029"-dependencies = [- "base64 0.23.1",- "bytes",- "encoding_rs",- "futures-channel",- "futures-core",- "futures-util",- "h2",- "http",- "http-body",- "http-body-util",- "hyper",- "hyper-rustls",- "hyper-util",- "js-sys",- "log",- "mime",- "percent-encoding",- "pin-project-lite",- "quinn",- "rustls",- "rustls-pki-types",- "rustls-platform-verifier",- "serde",- "serde_json",- "serde_urlencoded",- "sync_wrapper",- "tokio",- "tokio-rustls",- "tower",- "tower-http",- "tower-service",- "url",- "wasm-bindgen",- "wasm-bindgen-futures",- "web-sys",-]- [[package]] name = "resvg" version = "0.45.1"@@ -4408,7 +3923,7 @@ dependencies = [  "cfg-if",  "getrandom 0.2.17",  "libc",- "untrusted 0.9.0",+ "untrusted",  "windows-sys 0.52.0", ] @@ -4471,7 +3986,7 @@ dependencies = [  "errno",  "libc",  "linux-raw-sys 0.12.1",- "windows-sys 0.61.2",+ "windows-sys 0.59.0", ]  [[package]]@@ -4480,7 +3995,6 @@ version = "0.23.46" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48e13bd8c0e9365c43cfa5c9e8f9ad49d3c8444926c9aac819e0e4dc503c8fdf" dependencies = [- "aws-lc-rs",  "log",  "once_cell",  "ring",@@ -4508,7 +4022,6 @@ version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2f4925028c7eb5d1fcdaf196971378ed9d2c1c4efc7dc5d011256f76c99c0a96" dependencies = [- "web-time",  "zeroize", ] @@ -4530,7 +4043,7 @@ dependencies = [  "security-framework",  "security-framework-sys",  "webpki-root-certs",- "windows-sys 0.61.2",+ "windows-sys 0.59.0", ]  [[package]]@@ -4545,10 +4058,9 @@ version = "0.103.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f3c3cf1d8b1e7d4927e2d154c3fcb02979afb9939629c62cd9048d4f07b60ac2" dependencies = [- "aws-lc-rs",  "ring",  "rustls-pki-types",- "untrusted 0.9.0",+ "untrusted", ]  [[package]]@@ -4593,12 +4105,6 @@ version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" -[[package]]-name = "ryu-js"-version = "1.0.3"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "04d056b875a9d2e6cb9a61d127afee9ac5999b9f87bcb32079d1318e505be714"- [[package]] name = "same-file" version = "1.0.6"@@ -4711,17 +4217,6 @@ dependencies = [  "zmij", ] -[[package]]-name = "serde_json_canonicalizer"-version = "0.3.2"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "fe52319a927259afbfa5180c5157cd8167edfd3e8c254f9558c7fef44c5649f2"-dependencies = [- "ryu-js",- "serde",- "serde_json",-]- [[package]] name = "serde_repr" version = "0.1.21"@@ -4742,29 +4237,6 @@ dependencies = [  "serde_core", ] -[[package]]-name = "serde_urlencoded"-version = "0.7.1"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"-dependencies = [- "form_urlencoded",- "itoa",- "ryu",- "serde",-]--[[package]]-name = "sha1"-version = "0.10.7"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "a978451301f4db1d02937a4ab3ccce137717b81826e79b7d49ffe3244a13c3b8"-dependencies = [- "cfg-if",- "cpufeatures 0.2.17",- "digest",-]- [[package]] name = "sha2" version = "0.10.9"@@ -4792,175 +4264,6 @@ dependencies = [  "libc", ] -[[package]]-name = "signature"-version = "2.2.0"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de"-dependencies = [- "rand_core 0.6.4",-]--[[package]]-name = "sigstore-bundle"-version = "0.6.6"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "0e7dc53c8a941858d01479622dbb7650aaa2ee0ca1fb58fb6cdddbfc3064abbb"-dependencies = [- "base64 0.22.1",- "hex",- "serde",- "serde_json",- "sigstore-crypto",- "sigstore-merkle",- "sigstore-rekor",- "sigstore-tsa",- "sigstore-types",- "thiserror 2.0.21",-]--[[package]]-name = "sigstore-crypto"-version = "0.6.6"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "da90c3d9af638898a5fdc347479b18f950bb0dde11ecf2244f94cd28135da53b"-dependencies = [- "aws-lc-rs",- "base64 0.22.1",- "const-oid",- "der",- "digest",- "pem",- "rand_core 0.10.1",- "sha2",- "signature",- "sigstore-types",- "spki",- "thiserror 2.0.21",- "tracing",- "x509-cert",-]--[[package]]-name = "sigstore-merkle"-version = "0.6.6"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "7c0d53558825c77716855c13794306fff766854c1bf92948e77d7890da3f2455"-dependencies = [- "base64 0.22.1",- "hex",- "sigstore-crypto",- "sigstore-types",- "thiserror 2.0.21",-]--[[package]]-name = "sigstore-rekor"-version = "0.6.6"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "641fdaaa40d0cd6e249cf1671c2240beff1a3ece578062cf43e750779e8db2b3"-dependencies = [- "base64 0.22.1",- "hex",- "reqwest",- "serde",- "serde_json",- "sigstore-crypto",- "sigstore-merkle",- "sigstore-types",- "thiserror 2.0.21",- "url",-]--[[package]]-name = "sigstore-trust-root"-version = "0.6.6"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "a6b0d2550f05c096400066e858db13d91f9de3b750a7541fb1291c1dc80ca290"-dependencies = [- "base64 0.22.1",- "chrono",- "hex",- "rustls-pki-types",- "serde",- "serde_json",- "sigstore-crypto",- "sigstore-types",- "thiserror 2.0.21",- "x509-cert",-]--[[package]]-name = "sigstore-tsa"-version = "0.6.6"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "0bc86c8abc1ece6832236e7e34e9baebb5d4d40490c0332b814a0d8624ca7255"-dependencies = [- "aws-lc-rs",- "base64 0.22.1",- "chrono",- "cmpv2",- "cms",- "const-oid",- "der",- "hex",- "rand",- "reqwest",- "rustls-pki-types",- "rustls-webpki",- "sigstore-crypto",- "sigstore-types",- "thiserror 2.0.21",- "tracing",- "x509-cert",- "x509-tsp",-]--[[package]]-name = "sigstore-types"-version = "0.6.6"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "f8d870c9bcfdf83396ac2bd2d6a23c5d09ec02cc9fda50fa1cbb3dd71a9bee53"-dependencies = [- "base64 0.22.1",- "chrono",- "hex",- "pem",- "serde",- "serde_json",- "thiserror 2.0.21",-]--[[package]]-name = "sigstore-verify"-version = "0.6.6"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "d30aff69036e4579b416956e9ba68cec45b793116f78f10842d04c7f8b924bab"-dependencies = [- "base64 0.22.1",- "chrono",- "cms",- "const-oid",- "hex",- "pem",- "rustls-pki-types",- "rustls-webpki",- "serde",- "serde_json",- "serde_json_canonicalizer",- "sigstore-bundle",- "sigstore-crypto",- "sigstore-merkle",- "sigstore-rekor",- "sigstore-trust-root",- "sigstore-tsa",- "sigstore-types",- "thiserror 2.0.21",- "tls_codec",- "tracing",- "x509-cert",-]- [[package]] name = "simd-adler32" version = "0.3.10"@@ -5083,16 +4386,6 @@ dependencies = [  "serde", ] -[[package]]-name = "socket2"-version = "0.6.5"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "c3d1e2c7f27f8d4cb10542a02c49005dbd6e93095799d6f3be745fae9f8fedd4"-dependencies = [- "libc",- "windows-sys 0.61.2",-]- [[package]] name = "spirv" version = "0.4.0+sdk-1.4.341.0"@@ -5102,16 +4395,6 @@ dependencies = [  "bitflags 2.13.2", ] -[[package]]-name = "spki"-version = "0.7.3"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d"-dependencies = [- "base64ct",- "der",-]- [[package]] name = "stable_deref_trait" version = "1.2.1"@@ -5225,15 +4508,6 @@ dependencies = [  "unicode-ident", ] -[[package]]-name = "sync_wrapper"-version = "1.0.2"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263"-dependencies = [- "futures-core",-]- [[package]] name = "synstructure" version = "0.14.0"@@ -5257,27 +4531,6 @@ dependencies = [  "web-sys", ] -[[package]]-name = "system-configuration"-version = "0.7.0"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "a13f3d0daba03132c0aa9767f98351b3488edc2c100cda2d2ec2b04f3d8d3c8b"-dependencies = [- "bitflags 2.13.2",- "core-foundation 0.9.4",- "system-configuration-sys",-]--[[package]]-name = "system-configuration-sys"-version = "0.6.0"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4"-dependencies = [- "core-foundation-sys",- "libc",-]- [[package]] name = "tar" version = "0.4.46"@@ -5286,7 +4539,6 @@ checksum = "3f6221d9a6003c78398e3b239969f352578258df48c8eb051caadae0015bc840" dependencies = [  "filetime",  "libc",- "xattr", ]  [[package]]@@ -5296,10 +4548,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" dependencies = [  "fastrand",- "getrandom 0.4.3",+ "getrandom 0.3.4",  "once_cell",  "rustix 1.1.5",- "windows-sys 0.61.2",+ "windows-sys 0.59.0", ]  [[package]]@@ -5435,63 +4687,13 @@ version = "1.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fd3ca314f692efd6c868f8408f53fe444634a845f96c028b97d35f6a1f79f0ee" -[[package]]-name = "tls_codec"-version = "0.4.2"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "0de2e01245e2bb89d6f05801c564fa27624dbd7b1846859876c7dad82e90bf6b"-dependencies = [- "tls_codec_derive",- "zeroize",-]--[[package]]-name = "tls_codec_derive"-version = "0.4.2"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "2d2e76690929402faae40aebdda620a2c0e25dd6d3b9afe48867dfd95991f4bd"-dependencies = [- "proc-macro2",- "quote",- "syn 2.0.119",-]- [[package]] name = "tokio" version = "1.53.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e95f91fcc7a621e8b030f6aa23c71fe9838ae2fb4d8118b75602a328f5144044" dependencies = [- "bytes",- "libc",- "mio",- "pin-project-lite",- "socket2",- "windows-sys 0.61.2",-]--[[package]]-name = "tokio-rustls"-version = "0.26.6"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "c9cc2678c2cdd569ef8215e2afd7954ada2ae20b4fdd2c5fe6139a3b02d105db"-dependencies = [- "rustls",- "tokio",-]--[[package]]-name = "tokio-util"-version = "0.7.20"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "e464cf451ba96ebfc6f9b6542f17ee8b8956e33f1e40d9690624e59d7a7f8a4b"-dependencies = [- "bytes",- "futures-core",- "futures-sink",- "libc",  "pin-project-lite",- "tokio", ]  [[package]]@@ -5546,51 +4748,6 @@ version = "1.1.3+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06bdbd8cfc056b8d2e2e85f29b56a3bdbecb527cef81eb39e3e7b98af4652770" -[[package]]-name = "tower"-version = "0.5.3"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4"-dependencies = [- "futures-core",- "futures-util",- "pin-project-lite",- "sync_wrapper",- "tokio",- "tower-layer",- "tower-service",-]--[[package]]-name = "tower-http"-version = "0.6.11"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "4cfcf7e2740e6fc6d4d688b4ef00650406bb94adf4731e43c096c3a19fe40840"-dependencies = [- "bitflags 2.13.2",- "bytes",- "futures-util",- "http",- "http-body",- "pin-project-lite",- "tower",- "tower-layer",- "tower-service",- "url",-]--[[package]]-name = "tower-layer"-version = "0.3.3"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e"--[[package]]-name = "tower-service"-version = "0.3.3"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3"- [[package]] name = "tracing" version = "0.1.44"@@ -5622,12 +4779,6 @@ dependencies = [  "once_cell", ] -[[package]]-name = "try-lock"-version = "0.2.5"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"- [[package]] name = "ttf-parser" version = "0.25.1"@@ -5744,12 +4895,6 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" -[[package]]-name = "untrusted"-version = "0.7.1"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"- [[package]] name = "untrusted" version = "0.9.0"@@ -5786,18 +4931,6 @@ dependencies = [  "log", ] -[[package]]-name = "url"-version = "2.5.8"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed"-dependencies = [- "form_urlencoded",- "idna",- "percent-encoding",- "serde",-]- [[package]] name = "usvg" version = "0.45.1"@@ -5960,15 +5093,6 @@ dependencies = [  "winapi-util", ] -[[package]]-name = "want"-version = "0.3.2"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "ec4cdd0dd910afe868b7ef477227d8d538b46b3075031afee8a9f2acb0a2ed0b"-dependencies = [- "try-lock",-]- [[package]] name = "wasi" version = "0.11.1+wasi-snapshot-preview1"@@ -6360,7 +5484,7 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [- "windows-sys 0.61.2",+ "windows-sys 0.59.0", ]  [[package]]@@ -6630,21 +5754,16 @@ dependencies = [ [[package]] name = "winprint" version = "0.2.1"-source = "git+https://github.com/storytold/winprint.rs?rev=5f80b9baf6b58937c401656634e42d33f00ddf49#5f80b9baf6b58937c401656634e42d33f00ddf49"+source = "git+https://github.com/storytold/winprint.rs?rev=f6231139b1af7a78635c7971cdf4f2aba4170b87#f6231139b1af7a78635c7971cdf4f2aba4170b87" dependencies = [- "flate2",  "fmt-derive",- "reqwest",  "scopeguard",- "sigstore-trust-root",- "sigstore-types",- "sigstore-verify",  "strum",- "tar",  "thiserror 2.0.21",  "windows",  "windows-core",  "windows-implement",+ "windows-numerics",  "xml", ] @@ -6743,41 +5862,6 @@ version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea6fc2961e4ef194dcbfe56bb845534d0dc8098940c7e5c012a258bfec6701bd" -[[package]]-name = "x509-cert"-version = "0.2.5"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "1301e935010a701ae5f8655edc0ad17c44bad3ac5ce8c39185f75453b720ae94"-dependencies = [- "const-oid",- "der",- "sha1",- "signature",- "spki",- "tls_codec",-]--[[package]]-name = "x509-tsp"-version = "0.1.0"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "f5ceece934a21607055b7ac5c25adb56a2ff559804b10705dc674d1d838c15e1"-dependencies = [- "cmpv2",- "cms",- "der",-]--[[package]]-name = "xattr"-version = "1.6.1"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "32e45ad4206f6d2479085147f02bc2ef834ac85886624a23575ae137c8aa8156"-dependencies = [- "libc",- "rustix 1.1.5",-]- [[package]] name = "xkbcommon-dl" version = "0.4.2"@@ -6971,20 +6055,6 @@ name = "zeroize" version = "1.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e13084392c5e4bc371903e2935a5eaeed24905a7511356b883835e18a78f6879"-dependencies = [- "zeroize_derive",-]--[[package]]-name = "zeroize_derive"-version = "1.5.0"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "3c50655cbb0fe3fc43170059e702f1ce5e19b84cec58dc87b037a09935c2f328"-dependencies = [- "proc-macro2",- "quote",- "syn 2.0.119",-]  [[package]] name = "zerotrie"diff --git a/crates/print/Cargo.toml b/crates/print/Cargo.toml--- a/crates/print/Cargo.toml+++ b/crates/print/Cargo.toml@@ -20,8 +20,10 @@ workspace = true # 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.-# Pinned to an immutable revision; review before bumping.-winprint = { git = "https://github.com/storytold/winprint.rs", rev = "5f80b9baf6b58937c401656634e42d33f00ddf49", default-features = false }+# It also draws each page at the job's resolution rather than at ~96 dpi on the sheet+# (storytold/winprint.rs#7, storytold/pdfcraft#4941). Pinned to an immutable revision;+# review before bumping.+winprint = { git = "https://github.com/storytold/winprint.rs", rev = "f6231139b1af7a78635c7971cdf4f2aba4170b87", default-features = false } # GetDefaultPrinter (MIT). winsafe = { version = "0.0.29", default-features = false, features = ["winspool"] } # The job file's private folder.