mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-11-11 14:13:56 +00:00
Move form transforms into page space so Quartz keeps gradients aligned with their artwork. Add macOS rendering regressions and round-trip coverage for transparency, masks, layers and overprint. Update the fix for the shared craft-pdf writer and the split exporter modules. Preserve upstream mask, coordinate-limit and layer-box fixes, moving the layer's paper bounds into the form's new space too. Verified all three Quartz regressions fail on upstream65adb7b21and all five gradient-form tests pass with the fix. The new translated-layer regression also fails without moving the layer's paper bounds. Before the final rebase onto782f213e4: 463 PDF tests passed (one existing ignored test), workspace fmt, PDF Clippy, wasm, pdf-deps, layers, assets and brands passed. The final rebase reconciles documentation only; the PDF crate is unchanged from that tested revision. After the final rebase, workspace fmt and Clippy pass. Full cargo xtask ci timed out while compiling workspace tests, so the full test suite and remaining CI stages did not complete. The earlier macOS Clippy blocker has been fixed upstream.
61 lines
2.4 KiB
TOML
61 lines
2.4 KiB
TOML
[package]
|
|
name = "vectorcraft-pdf"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
description = "VectorCraft PDF export and import"
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[features]
|
|
# `vectorcraft_pdf::reads_of` and `imports_of` for other crates' tests (dev-dependencies only).
|
|
read-count = []
|
|
|
|
[dependencies]
|
|
vectorcraft-geom = { workspace = true }
|
|
vectorcraft-doc = { workspace = true }
|
|
vectorcraft-effects = { workspace = true }
|
|
vectorcraft-brush = { workspace = true }
|
|
vectorcraft-color = { workspace = true }
|
|
vectorcraft-text = { workspace = true }
|
|
skrifa = { workspace = true }
|
|
kurbo = { workspace = true }
|
|
thiserror = { workspace = true }
|
|
flate2 = { workspace = true, features = ["zlib-rs"] }
|
|
image = { workspace = true }
|
|
# CMYK JPEGs (the image crate writes RGB and grey ones only).
|
|
jpeg-encoder = { workspace = true }
|
|
craft-pdf = { workspace = true }
|
|
log = { workspace = true }
|
|
chrono = { workspace = true }
|
|
smallvec = "1"
|
|
weezl = "0.2"
|
|
serde = { workspace = true }
|
|
# The XMP packet that File Info is read from (file_info.rs); the version usvg already uses.
|
|
roxmltree = "0.21"
|
|
# PDF security (encrypt.rs): pure Rust, MIT OR Apache-2.0, builds for wasm.
|
|
aes = "0.8"
|
|
md-5 = { version = "0.10", default-features = false }
|
|
sha2 = { version = "0.10", default-features = false }
|
|
# The seed of the file key, salts and IVs (encrypt.rs).
|
|
getrandom = "0.4"
|
|
|
|
[target.'cfg(all(target_arch = "wasm32", target_os = "unknown"))'.dependencies]
|
|
# The browser's crypto.getRandomValues.
|
|
getrandom = { version = "0.4", features = ["wasm_js"] }
|
|
|
|
[dev-dependencies]
|
|
vectorcraft-testkit = { workspace = true }
|
|
# A variable font built in code (no font file is committed).
|
|
vectorcraft-text = { workspace = true, features = ["test-fonts"] }
|
|
serde_json = { workspace = true }
|
|
# `draw_text`, to write test files with live text as other writers do.
|
|
krilla = { workspace = true, features = ["simple-text"] }
|
|
|
|
# An independent raster oracle for gradient placement in PDF forms. These are test-only macOS
|
|
# bindings; the exporter stays portable Rust and does not depend on an OS PDF renderer.
|
|
[target.'cfg(target_os = "macos")'.dev-dependencies]
|
|
objc2-core-foundation = { version = "0.3", default-features = false, features = ["std", "CFData"] }
|
|
objc2-core-graphics = { version = "0.3", default-features = false, features = ["std", "CGBitmapContext", "CGColorSpace", "CGContext", "CGDataProvider", "CGImage", "CGPDFDocument", "CGPDFPage"] }
|