mirror of
https://github.com/storytold/pdfcraft.git
synced 2026-10-29 12:38:58 -06:00
LiveCycle Designer wrote BMPs whose file header gives bfOffBits = 0. image (0.25) seeks to that offset as given, so the pixels were read from the file header on and the picture was drawn shifted and wrapped around (#4937). `pdfcraft_xfa::image::bmp_with_pixel_offset` recomputes the offset from the info header (its size, BI_BITFIELDS masks in a 40-byte header, the palette) when the declared one lies inside the headers and the computed one fits in the file; anything else is passed through unchanged and not copied. XFA pictures (size and decode) and `create::from_images` both go through it, so pdfcraft-create gains a dependency on pdfcraft-xfa (L4 -> L3). Fixes #4937 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SqmHYx8FiWM5PcsoiErgp9
29 lines
980 B
TOML
29 lines
980 B
TOML
[package]
|
|
name = "pdfcraft-create"
|
|
description = "Create PDFs: blank documents, from images (PNG, JPEG) and from plain text"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[dependencies]
|
|
pdfcraft-cos = { workspace = true }
|
|
pdfcraft-model = { workspace = true }
|
|
pdfcraft-fonts = { workspace = true }
|
|
# For `image::bmp_with_pixel_offset`, shared with XFA pictures.
|
|
pdfcraft-xfa = { workspace = true }
|
|
png = "0.18"
|
|
tiff = "0.11"
|
|
image = { version = "0.25", default-features = false, features = ["bmp", "gif", "jpeg"] }
|
|
# Already in the graph through image; read directly for CMYK JPEG samples, which image converts to RGB.
|
|
zune-jpeg = "0.5"
|
|
thiserror = { workspace = true }
|
|
# Already in the graph through lopdf; used only to read plain-text files (decode_text).
|
|
encoding_rs = "0.8"
|
|
|
|
[dev-dependencies]
|
|
image = { version = "0.25", default-features = false, features = ["bmp", "gif", "jpeg"] }
|
|
hayro-syntax = { workspace = true }
|