Browse / github.com/storytold/pdfcraft / patch
M10: Windows prints each page at the driver's resolution, not ~96 dpi
A0 Scanned Engineering Drawings Become Pixelated When Fitted to A3 When printing large-format engineering PDFs (e.g., 50.81 × 36.00 in) to standard A3 paper using the "Fit" option, the output is heavily pixelated and jagged. Expected behavior: Clean vector scaling and crisp lines upon printing (similar to Adobe Acrobat). Current behavior: Poor downsampling/rasterization during scaling, resulting in blurred/pixelated prints on Xerox network printers. Please investigate the PDF rendering and scaling engine for oversized documents. Additional information: PdfCraft version: 0.14.0 Operating system: Windows 10 Pro 64-bit Version 22H2 OS build 19045.7807 Prin
- Status
- open
- Score
- 0.00
- Adopters
- 0 other operators
- Author
- huppiflupp (imported from pull request #5023, open)
- Base
1dd2737b47a9c1c9562f0af563053d1bf510e4bf- Size
- +64 −852 in 3 files
- Review
- pending
- Shared
- 2026-10-28
- Id
b911a0ae54953300ea21fce4
How it went
No other operator has reported using it yet.
Diff
raw · Cargo.lock Cargo.toml parity/acrobat-features.toml
@@ -229,7 +229,7 @@ dependencies = [ "objc2-foundation 0.3.2", "parking_lot", "percent-encoding",- "windows-sys 0.59.0",+ "windows-sys 0.61.2", "wl-clipboard-rs", "x11rb", ]@@ -448,7 +448,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "faac5829c2b74c28f830747e7818ccfb684261b5f48a1118b1e2a13d36dfab13" dependencies = [ "aws-lc-sys",- "untrusted 0.7.1", "zeroize", ] @@ -948,7 +947,7 @@ checksum = "65c35e4b699c7e15ccbe7ee35c005e4fc0a278d22238a2857e6ce2dadeda1b06" dependencies = [ "cfg-if", "cpufeatures 0.3.1",- "rand_core 0.10.1",+ "rand_core", ] [[package]]@@ -958,10 +957,7 @@ 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", ] @@ -999,30 +995,6 @@ version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c9ea0ac24bc397ab3c98583a3c9ba74fa56b09a4449bbe172b9b1ddb016027a" -[[package]]-name = "cmpv2"-version = "0.2.0"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "961b955a666e25ee5a1091d219128d6e6401e3dab84efb1a2bf6b4035d797b39"-dependencies = [- "crmf",- "der 0.7.10",- "spki 0.7.3",- "x509-cert",-]--[[package]]-name = "cms"-version = "0.2.3"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "7b77c319abfd5219629c45c34c89ba945ed3c5e49fcde9d16b6c3885f118a730"-dependencies = [- "const-oid 0.9.6",- "der 0.7.10",- "spki 0.7.3",- "x509-cert",-]- [[package]] name = "codespan-reporting" version = "0.13.1"@@ -1068,12 +1040,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 = "const-oid" version = "0.10.2"@@ -1197,11 +1163,11 @@ dependencies = [ [[package]] name = "craft-print" version = "0.1.0"-source = "git+https://github.com/storytold/craft-libs?rev=42e30cd5b3f4b114270dd053fccbc33bedc47f68#42e30cd5b3f4b114270dd053fccbc33bedc47f68"+source = "git+https://github.com/storytold/craft-libs?rev=84059e465cbba4776445b2bcbea1690864658468#84059e465cbba4776445b2bcbea1690864658468" dependencies = [ "craft-winprint-gdi",- "miniz_oxide 0.8.9",- "roxmltree",+ "miniz_oxide 0.9.1",+ "roxmltree 0.21.2", "tempfile", "winprint", "winsafe",@@ -1273,18 +1239,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 0.7.10",- "spki 0.7.3",- "x509-cert",-]- [[package]] name = "crossbeam-channel" version = "0.5.17"@@ -1336,7 +1290,7 @@ dependencies = [ "getrandom 0.4.3", "hybrid-array", "num-traits",- "rand_core 0.10.1",+ "rand_core", "serdect", "subtle", "zeroize",@@ -1360,7 +1314,7 @@ checksum = "ce6e4c961d6cd6c9a86db418387425e8bdeaf05b3c8bc1411e6dca4c252f1453" dependencies = [ "getrandom 0.4.3", "hybrid-array",- "rand_core 0.10.1",+ "rand_core", ] [[package]]@@ -1370,7 +1324,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3633a51a39c69ebbaa4feaa694bd83d241e4093901c84a0963b19d9bb3f0cf8f" dependencies = [ "crypto-bigint",- "rand_core 0.10.1",+ "rand_core", ] [[package]]@@ -1436,41 +1390,17 @@ 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 0.9.6",- "der_derive",- "flagset",- "pem-rfc7468 0.7.0",- "zeroize",-]- [[package]] name = "der" version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a878c850e9e421b20262e9b41f9c860e4785fa07541c266b62ff9d1ef998a80a" dependencies = [- "const-oid 0.10.2",- "pem-rfc7468 1.0.0",+ "const-oid",+ "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.8"@@ -1503,7 +1433,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1dd6dbb5841937940781866fa1281a1ff7bd3bf827091440879f9994983d5c2" dependencies = [ "block-buffer 0.12.1",- "const-oid 0.10.2",+ "const-oid", "crypto-common 0.2.2", "ctutils", ]@@ -1608,12 +1538,12 @@ version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0681a4fc24c767085329728d8dfba959af91228aa4610cca4f8ce317ba46ae0" dependencies = [- "der 0.8.2",+ "der", "digest 0.11.3", "elliptic-curve", "rfc6979",- "signature 3.0.0",- "spki 0.8.0",+ "signature",+ "spki", "zeroize", ] @@ -1633,7 +1563,7 @@ version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "29fcf32e6c73d1079f83ab4d782de2d81620346a5f38c6237a86a22f8368980a" dependencies = [- "signature 3.0.0",+ "signature", ] [[package]]@@ -1818,7 +1748,7 @@ dependencies = [ "group", "hybrid-array", "pkcs8",- "rand_core 0.10.1",+ "rand_core", "sec1", "subtle", "zeroize",@@ -1970,7 +1900,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc",- "windows-sys 0.59.0",+ "windows-sys 0.61.2", ] [[package]]@@ -2047,7 +1977,7 @@ version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1f686ab92a9fb0eaf188f6c6c87b89490baa6fdb0db4544ba4dc47f7942489f" dependencies = [- "rand_core 0.10.1",+ "rand_core", "subtle", ] @@ -2079,12 +2009,6 @@ version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" -[[package]]-name = "flagset"-version = "0.4.7"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "b7ac824320a75a52197e8f2d787f6a38b6718bb6897a35142d749af3c0e8f4fe"- [[package]] name = "flatbuffers" version = "24.12.23"@@ -2188,7 +2112,7 @@ version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbc773e24e02d4ddd8395fd30dc147524273a83e54e0f312d986ea30de5f5646" dependencies = [- "roxmltree",+ "roxmltree 0.20.0", ] [[package]]@@ -2233,16 +2157,6 @@ 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-concurrency" version = "7.7.1"@@ -2292,12 +2206,6 @@ dependencies = [ "syn 3.0.6", ] -[[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"@@ -2311,11 +2219,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d50a92467f8ba5dd6e3ee5d4bd04d73ab2e4e1c44474a0674821dfce14b79bc" dependencies = [ "futures-core",- "futures-io", "futures-macro",- "futures-sink", "futures-task",- "memchr", "pin-project-lite", "slab", ]@@ -2347,10 +2252,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" dependencies = [ "cfg-if",- "js-sys", "libc", "wasi",- "wasm-bindgen", ] [[package]]@@ -2375,7 +2278,7 @@ dependencies = [ "js-sys", "libc", "r-efi 6.0.0",- "rand_core 0.10.1",+ "rand_core", "wasm-bindgen", ] @@ -2532,7 +2435,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7fd1a1c7a5206c5b7a3f5a0d7ccd3ff85d0c8f5133d62a02680255b0004af5f4" dependencies = [ "ff",- "rand_core 0.10.1",+ "rand_core", "subtle", ] @@ -2545,25 +2448,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"@@ -2742,29 +2626,6 @@ 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"@@ -2782,68 +2643,6 @@ dependencies = [ "zeroize", ] -[[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 = "iana-time-zone" version = "0.1.65"@@ -3024,12 +2823,6 @@ version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4275b20e6057cd7733fd8df8a5a31701e4fe44497dad0f3fa0e1c4fb971506be" -[[package]]-name = "ipnet"-version = "2.12.2"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "791930b43c0d5973160d90a8f3894509f2b273430f5c5c73b668636d0287c5c0"- [[package]] name = "itertools" version = "0.15.0"@@ -3300,12 +3093,6 @@ dependencies = [ "weezl 0.2.1", ] -[[package]]-name = "lru-slab"-version = "0.1.3"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "4050469837a6ff301cd14c1f8f24f88549e6d548f24f64e2148eb0f72cebc51f"- [[package]] name = "md-5" version = "0.11.0"@@ -3340,12 +3127,6 @@ dependencies = [ "autocfg", ] -[[package]]-name = "mime"-version = "0.3.17"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"- [[package]] name = "miniz_oxide" version = "0.8.9"@@ -3366,17 +3147,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"@@ -3963,7 +3733,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d8fae84b431384b68627d0f9b3b1245fcf9f46f6c0e3dc902e9dce64edd1967" dependencies = [ "libc",- "windows-sys 0.59.0",+ "windows-sys 0.61.2", ] [[package]]@@ -4391,7 +4161,7 @@ dependencies = [ "pdfcraft-content", "pdfcraft-cos", "pdfcraft-model",- "roxmltree",+ "roxmltree 0.20.0", ] [[package]]@@ -4471,7 +4241,7 @@ dependencies = [ "rsa", "rustls-cng", "security-framework",- "sha1 0.11.0",+ "sha1", "sha2 0.11.1", "sha3", "thiserror 2.0.21",@@ -4554,7 +4324,7 @@ dependencies = [ "pdfcraft-cos", "pdfcraft-fonts", "png 0.18.1",- "roxmltree",+ "roxmltree 0.20.0", "sha2 0.11.1", "thiserror 2.0.21", ]@@ -4567,29 +4337,10 @@ dependencies = [ "pdfcraft-cos", "pdfcraft-forms", "pdfcraft-model",- "roxmltree",+ "roxmltree 0.20.0", "thiserror 2.0.21", ] -[[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 = "pem-rfc7468" version = "1.0.0"@@ -4773,8 +4524,8 @@ version = "0.8.0-rc.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "986d2e952779af96ea048f160fd9194e1751b4faea78bcf3ceb456efe008088e" dependencies = [- "der 0.8.2",- "spki 0.8.0",+ "der",+ "spki", ] [[package]]@@ -4783,8 +4534,8 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "451913da69c775a56034ea8d9003d27ee8948e12443eae7c038ba100a4f21cb7" dependencies = [- "der 0.8.2",- "spki 0.8.0",+ "der",+ "spki", ] [[package]]@@ -4918,7 +4669,7 @@ dependencies = [ "crypto-bigint", "crypto-common 0.2.2", "ff",- "rand_core 0.10.1",+ "rand_core", "subtle", "zeroize", ]@@ -5040,63 +4791,6 @@ dependencies = [ "memchr", ] -[[package]]-name = "quinn"-version = "0.11.12"-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.59.0",-]- [[package]] name = "quote" version = "1.0.47"@@ -5126,37 +4820,22 @@ 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]]@@ -5298,49 +4977,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"@@ -5411,7 +5047,7 @@ dependencies = [ "cfg-if", "getrandom 0.2.17", "libc",- "untrusted 0.9.0",+ "untrusted", "windows-sys 0.52.0", ] @@ -5445,19 +5081,28 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c20b6793b5c2fa6553b250154b78d6d0db37e72700ae35fad9387a46f487c97" [[package]]-name = "rsa"-version = "0.10.0-rc.18"+name = "roxmltree"+version = "0.21.2"+source = "registry+https://github.com/rust-lang/crates.io-index"+checksum = "9da7f59328b09405b181fee1018925fad50f157afb43c0c0f5c522c256dd5907"+dependencies = [+ "memchr",+]++[[package]]+name = "rsa"+version = "0.10.0-rc.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "30b2aa4ba0d89f73d1e332df05be0eeab8840351c36ca5654341dfdb57bb3caf" dependencies = [- "const-oid 0.10.2",+ "const-oid", "crypto-bigint", "crypto-primes", "digest 0.11.3", "pkcs1", "pkcs8",- "rand_core 0.10.1",- "signature 3.0.0",+ "rand_core",+ "signature", "zeroize", ] @@ -5615,7 +5260,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys 0.12.1",- "windows-sys 0.59.0",+ "windows-sys 0.61.2", ] [[package]]@@ -5624,7 +5269,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",@@ -5663,7 +5307,6 @@ version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2f4925028c7eb5d1fcdaf196971378ed9d2c1c4efc7dc5d011256f76c99c0a96" dependencies = [- "web-time", "zeroize", ] @@ -5685,7 +5328,7 @@ dependencies = [ "security-framework", "security-framework-sys", "webpki-root-certs",- "windows-sys 0.59.0",+ "windows-sys 0.61.2", ] [[package]]@@ -5700,10 +5343,9 @@ version = "0.103.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4443b1b6d39d7c663139942cc4558262562d2c84123bb6282ef177009ca8b281" dependencies = [- "aws-lc-rs", "ring", "rustls-pki-types",- "untrusted 0.9.0",+ "untrusted", ] [[package]]@@ -5724,12 +5366,6 @@ dependencies = [ "wait-timeout", ] -[[package]]-name = "ryu"-version = "1.0.23"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f"- [[package]] name = "ryu-js" version = "1.0.3"@@ -5774,7 +5410,7 @@ checksum = "d56d437c2f19203ce5f7122e507831de96f3d2d4d3be5af44a0b0a09d8a80e4d" dependencies = [ "base16ct", "ctutils",- "der 0.8.2",+ "der", "hybrid-array", "subtle", "zeroize",@@ -5868,17 +5504,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"@@ -5899,18 +5524,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 = "serdect" version = "0.4.3"@@ -5921,17 +5534,6 @@ dependencies = [ "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 0.10.7",-]- [[package]] name = "sha1" version = "0.11.0"@@ -5992,15 +5594,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 = "signature" version = "3.0.0"@@ -6008,167 +5601,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28d567dcbaf0049cb8ac2608a76cd95ff9e4412e1899d389ee400918ca7537f5" dependencies = [ "digest 0.11.3",- "rand_core 0.10.1",-]--[[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 0.9.6",- "der 0.7.10",- "digest 0.10.7",- "pem",- "rand_core 0.10.1",- "sha2 0.10.9",- "signature 2.2.0",- "sigstore-types",- "spki 0.7.3",- "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 0.9.6",- "der 0.7.10",- "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 0.9.6",- "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",+ "rand_core", ] [[package]]@@ -6343,16 +5776,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"@@ -6362,16 +5785,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 0.7.10",-]- [[package]] name = "spki" version = "0.8.0"@@ -6379,7 +5792,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d9efca8738c78ee9484207732f728b1ef517bbb1833d6fc0879ca898a522f6f" dependencies = [ "base64ct",- "der 0.8.2",+ "der", ] [[package]]@@ -6489,15 +5902,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"@@ -6518,27 +5922,6 @@ dependencies = [ "libc", ] -[[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 = "tag_ptr" version = "0.1.0"@@ -6559,7 +5942,6 @@ checksum = "3f6221d9a6003c78398e3b239969f352578258df48c8eb051caadae0015bc840" dependencies = [ "filetime", "libc",- "xattr", ] [[package]]@@ -6569,10 +5951,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.59.0",+ "windows-sys 0.61.2", ] [[package]]@@ -6719,63 +6101,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.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "202caea871b69668250d242070849eb495be178ed697a3e98aebce5bc81a0bed" 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]]@@ -6829,51 +6161,6 @@ version = "1.1.2+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d56353a2a665ad0f41a421187180aab746c8c325620617ad883a99a1cbe66d2" -[[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"@@ -6917,12 +6204,6 @@ dependencies = [ "petgraph", ] -[[package]]-name = "try-lock"-version = "0.2.5"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"- [[package]] name = "type-map" version = "0.5.1"@@ -7012,12 +6293,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"@@ -7078,7 +6353,7 @@ dependencies = [ "kurbo 0.11.3", "log", "pico-args",- "roxmltree",+ "roxmltree 0.20.0", "simplecss", "siphasher", "strict-num",@@ -7223,15 +6498,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"@@ -7684,7 +6950,7 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [- "windows-sys 0.59.0",+ "windows-sys 0.61.2", ] [[package]]@@ -7770,17 +7036,6 @@ dependencies = [ "windows-link", ] -[[package]]-name = "windows-registry"-version = "0.6.1"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "02752bf7fbdcce7f2a27a742f798510f3e5ad88dbe84871e5168e2120c3d5720"-dependencies = [- "windows-link",- "windows-result",- "windows-strings",-]- [[package]] name = "windows-result" version = "0.4.1"@@ -7961,21 +7216,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", ] @@ -8085,31 +7335,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 0.9.6",- "der 0.7.10",- "sha1 0.10.7",- "signature 2.2.0",- "spki 0.7.3",- "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 0.7.10",-]- [[package]] name = "xattr" version = "1.6.1"@@ -8354,20 +7579,6 @@ name = "zeroize" version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e13c156562582aa81c60cb29407084cdb54c4164760106ab78e6c5b0858cf64e"-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"@@ -19,8 +19,9 @@ craft-quit = { git = "https://github.com/storytold/craft-libs", version = "0.1.0 # One menu definition for the native macOS menu bar and the in-window bar elsewhere. craft-menu = { git = "https://github.com/storytold/craft-libs", version = "0.1.0", rev = "edc41f68fa24c46651c3b5117d10f0ead75ec9cb" } craft-keymap = { git = "https://github.com/storytold/craft-libs", version = "0.1.0", rev = "edc41f68fa24c46651c3b5117d10f0ead75ec9cb", default-features = false }-# Shared system spooler; document composition remains in pdfcraft-print.-craft-print = { git = "https://github.com/storytold/craft-libs", version = "0.1.0", rev = "42e30cd5b3f4b114270dd053fccbc33bedc47f68" }+# Shared system spooler; document composition remains in pdfcraft-print. Pinned to+# storytold/craft-libs#396 (Windows renders pages at the job's resolution, #4941).+craft-print = { git = "https://github.com/storytold/craft-libs", version = "0.1.0", rev = "84059e465cbba4776445b2bcbea1690864658468" } # Whether a path stored in a document may be opened (GoToR link targets). craft-docpath = { version = "0.1.0", git = "https://github.com/storytold/craft-libs", rev = "82a24b006eefa036b43c09a67fb9a3fbd17ffe63" } craft-update = { git = "https://github.com/storytold/craft-libs", version = "=0.1.0", rev = "495e5971bc024aa96e6ed318cb6e7cd3a0103184", features = ["egui"] }@@ -8025,7 +8025,7 @@ status = "shipped" commands = ["print.dialog"] tools = ["printers", "printer_options", "doc_print"] evidence = ["crates/print/src/tests.rs::spooler_arguments_and_printer_list", "crates/print/src/tests.rs::driverless_printers_join_the_list_without_a_queue", "crates/print/src/tests.rs::windows_printers_carry_one_default_and_keep_their_names", "crates/print/src/tests.rs::printer_options_come_from_the_ppd", "crates/print/src/tests.rs::printer_option_defaults_and_job_arguments", "crates/ui-egui/tests/it/print.rs::print_dialog_shows_the_printer_driver_options", "crates/ui-egui/tests/it/print.rs::printers_listed_in_the_background_preselect_the_default_unless_one_was_picked", "crates/ui-egui/src/workflows/web_print.rs::resolution_falls_with_the_sheet_count_and_long_jobs_are_refused", "crates/ui-egui/src/workflows/web_print.rs::large_sheets_are_drawn_within_the_pixel_cap_and_bad_sizes_are_refused", "crates/ui-egui/src/workflows/web_print.rs::a_sink_error_or_a_page_that_isnt_there_stops_the_job", "crates/print/src/tests.rs::a_command_that_never_answers_is_stopped_at_the_deadline", "crates/ui-egui/tests/it/print.rs::printer_options_are_read_off_the_gui_thread_and_a_dead_read_offers_nothing"]-notes = "CUPS queues via lpstat -p -d and driverless destinations without a queue via lpstat -e; on Windows shared craft-print lists the queues (EnumPrinters), the default (GetDefaultPrinter) and each driver's two-sided support in this process, and draws jobs as vectors with Windows.Data.Pdf into the XPS print API with a driver-validated PrintTicket (exact paper, orientation, no scaling; portrait and landscape sheets in one job via /Rotate), starting no PowerShell, so printing works under App Control script enforcement (#1107); the printer list and submission run on workers; Save as PDF on every platform. Properties…: on CUPS the driver's own PPD job options (tray, paper type, finishing …, not installable options or what the dialog sets) for this job, sent as lp -o; on Windows the driver's Printing Preferences window (printui), saved as that printer's per-user defaults rather than per job. On the web: \"Browser's print dialog\" (the default there) reaches the system's printers through the browser; PdfCraft draws the sheets itself (300 dpi up to 100 sheets, 200 up to 300, 150 up to 1,000; at most 64 megapixels a sheet and 1 GiB a job) and prints them from a hidden iframe, one per printed page, a landscape sheet among portrait ones turned onto the paper; copies, two-sided and colour are chosen in the browser's dialog; a browser that refuses to print gets the print-ready PDF as a download. Checked in headless Chromium, not yet in Firefox or Safari; pictures, not vectors; sheets of another paper size print at their own size only where the browser honours named @page sizes (Chromium doesn't). Properties… on CUPS reads the driver options off the GUI thread and gives lpoptions ten seconds before the PPD defaults stand (#1818)"+notes = "CUPS queues via lpstat -p -d and driverless destinations without a queue via lpstat -e; on Windows shared craft-print lists the queues (EnumPrinters), the default (GetDefaultPrinter) and each driver's two-sided support in this process, and draws jobs as vectors with Windows.Data.Pdf into the XPS print API, each page at the resolution the driver's ticket gives (pictures used to reach the sheet at about 96 dpi, so a large scan fitted to small paper printed jagged, #4941; not yet checked on a real Windows printer), with a driver-validated PrintTicket (exact paper, orientation, no scaling; portrait and landscape sheets in one job via /Rotate), starting no PowerShell, so printing works under App Control script enforcement (#1107); the printer list and submission run on workers; Save as PDF on every platform. Properties…: on CUPS the driver's own PPD job options (tray, paper type, finishing …, not installable options or what the dialog sets) for this job, sent as lp -o; on Windows the driver's Printing Preferences window (printui), saved as that printer's per-user defaults rather than per job. On the web: \"Browser's print dialog\" (the default there) reaches the system's printers through the browser; PdfCraft draws the sheets itself (300 dpi up to 100 sheets, 200 up to 300, 150 up to 1,000; at most 64 megapixels a sheet and 1 GiB a job) and prints them from a hidden iframe, one per printed page, a landscape sheet among portrait ones turned onto the paper; copies, two-sided and colour are chosen in the browser's dialog; a browser that refuses to print gets the print-ready PDF as a download. Checked in headless Chromium, not yet in Firefox or Safari; pictures, not vectors; sheets of another paper size print at their own size only where the browser honours named @page sizes (Chromium doesn't). Properties… on CUPS reads the driver options off the GUI thread and gives lpoptions ten seconds before the PPD defaults stand (#1818)" [[feature]] id = "print.copies-collate"