mirror of
https://github.com/storytold/designcraft.git
synced 2026-11-01 06:06:49 -06:00
New designcraft-pptx crate (L3) and file.exportPptx command (File › Export PowerPoint…, CLI --export x.pptx). Each page becomes a slide of native objects: shapes with fills, gradients, strokes and effects, pictures cropped like their frames, native tables, and text boxes. Text keeps DesignCraft's composition by default: composed lines end in line breaks, justified spacing becomes character spacing, and leading becomes percentage line spacing (PowerPoint rounds exact spacing to whole points; its 100% line is 1.2 em for every font). Threaded stories split at their frames and wrapped lines get their own boxes. lineBreaks: reflow writes one box per frame in native columns instead. TrueType fonts are embedded as Embedded OpenType when their licences allow. Objects PowerPoint can't represent (placed PDF/EPS, type on a path, some effects) are rasterised through the existing rasterize_where path. Checked in PowerPoint for Mac and LibreOffice: on the sample magazine, word positions match DesignCraft's PDF to within 0.8 pt horizontally and 1.6 pt vertically.
40 lines
1.3 KiB
TOML
40 lines
1.3 KiB
TOML
[package]
|
|
name = "designcraft-engine"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
description = "DesignCraft engine: session, documents, history, selection, command registry, tool hosting"
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[dependencies]
|
|
designcraft-images = { workspace = true }
|
|
designcraft-geom = { workspace = true }
|
|
designcraft-color = { workspace = true }
|
|
designcraft-doc = { workspace = true }
|
|
designcraft-fonts = { workspace = true }
|
|
designcraft-compose = { workspace = true }
|
|
designcraft-render = { workspace = true }
|
|
designcraft-format = { workspace = true }
|
|
designcraft-epub = { workspace = true }
|
|
designcraft-pptx = { workspace = true }
|
|
designcraft-textimport = { workspace = true }
|
|
designcraft-pdf = { workspace = true }
|
|
designcraft-tools = { workspace = true }
|
|
designcraft-idml = { workspace = true }
|
|
serde = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
thiserror = { workspace = true }
|
|
log = { workspace = true }
|
|
regex = { workspace = true }
|
|
quick-xml = { workspace = true }
|
|
|
|
[dev-dependencies]
|
|
designcraft-fonts = { workspace = true, features = ["testing"] }
|
|
zip = { workspace = true }
|
|
hayro-syntax = "0.7.2"
|
|
hayro-interpret = { version = "0.7.0", default-features = false, features = ["embed-fonts"] }
|
|
hayro-cmap = "0.1"
|
|
kurbo = { workspace = true }
|