mirror of
https://github.com/storytold/wordcraft.git
synced 2026-11-10 04:09:53 -06:00
The RTF reader only recognised \pngblip and \jpegblip, so a \pict holding \wmetafile8 (how Word writes pasted and floating pictures) or \emfblip was dropped and the document opened without its pictures. Keep them as wmf/emf media when the bytes are a metafile (the extension comes from the bytes; raster bytes go through the usual image path, anything else is dropped), sized from \picwgoal/\pichgoal and the scale, else from \picw/\pich (0.01 mm, or pixels under \wmetafile1; zero or negative falls back to the default). The metafile renderer already draws them and the DOCX writer saves them as .wmf/.emf. RTF export dropped WMF/EMF pictures as well (it re-encoded every other format through the raster decoder): it now writes \emfblip with the raw bytes and \wmetafile8 without the placeable header, \picw/\pich in 0.01 mm. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Brandon Thomas <echelon@gmail.com>
31 lines
944 B
TOML
31 lines
944 B
TOML
[package]
|
|
name = "wordcraft-formats"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
description = "WordCraft import/export: plain text, Markdown, HTML, RTF, OpenDocument Text and LaTeX"
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[dependencies]
|
|
wordcraft-doc = { workspace = true }
|
|
wordcraft-geom = { workspace = true, features = ["image"] }
|
|
wordcraft-metafile = { workspace = true }
|
|
image = { workspace = true }
|
|
quick-xml = { workspace = true }
|
|
zip = { workspace = true }
|
|
cfb = { workspace = true }
|
|
encoding_rs = { workspace = true }
|
|
chardetng = { workspace = true }
|
|
log = { workspace = true }
|
|
chrono = { workspace = true }
|
|
|
|
[target.'cfg(all(target_arch = "wasm32", target_os = "unknown"))'.dependencies]
|
|
# The browser clock (`SystemTime::now()` panics on wasm32-unknown-unknown): ODT change dates.
|
|
js-sys = "0.3"
|
|
|
|
[dev-dependencies]
|
|
wordcraft-doc = { workspace = true, features = ["test-support"] }
|
|
proptest = { workspace = true }
|