Files
vectorcraft/crates/eps/Cargo.toml
T
Don Omondi 3bb43b2fe6 EPS import: composite fonts draw their Type 42 descendants' glyphs
A composite (Type 0) font with the 8/8 mapping picks a descendant font
and a code in it with each pair of bytes (PLRM 3rd ed., 5.10). The reader
set its strings as type in a font of the composite font's name, the
bytes read as Latin-1 and at a thousand times the size, so EPS from
pdftops of a PDF with embedded TrueType fonts showed nothing, or one
black shape, where its type was.

Characters now go to their descendants: a Type 42 font's glyphs are drawn
from the TrueType outlines its sfnts strings carry (Adobe Technical Note
5012), by the glyph index CharStrings gives their names, spaced by their
own widths or the show operator's numbers; charpath and stringwidth read
them too. A Type 3 descendant runs its procedures, and a descendant found
by name sets its character as type at the composite font's size.
2026-11-09 02:24:54 +07:00

46 lines
1.8 KiB
TOML

[package]
name = "vectorcraft-eps"
version.workspace = true
edition.workspace = true
license.workspace = true
description = "VectorCraft Encapsulated PostScript: a hand-written EPS writer (PostScript Level 2 and 3) with TIFF previews"
[lints]
workspace = true
[dependencies]
vectorcraft-geom = { workspace = true }
vectorcraft-color = { workspace = true }
vectorcraft-doc = { workspace = true }
vectorcraft-effects = { workspace = true }
# The editing data for other apps writes clipped art cut to its clipping path.
vectorcraft-pathops = { workspace = true }
vectorcraft-brush = { workspace = true }
vectorcraft-text = { workspace = true }
# The glyph outlines of Type 42 fonts a composite font shows.
skrifa = { workspace = true }
# Windows metafile previews, opened when a file's PostScript can't be read.
vectorcraft-metafile = { workspace = true }
# Non-native art in Illustrator editing data (a placed PDF's content, kept as a PDF).
vectorcraft-pdf = { workspace = true }
# The predefined CMaps that strings of legacy type in CJK fonts are decoded by.
craft-pdf = { workspace = true }
# The TIFF writer (previews) and PackBits, shared with raster export.
vectorcraft-render = { workspace = true }
kurbo = { workspace = true }
image = { workspace = true }
flate2 = { workspace = true }
ruzstd = { workspace = true }
# Images read through `CCITTFaxDecode`.
hayro-ccitt = { workspace = true }
# Live effects' params, as the art styles that name them give them.
serde_json = { workspace = true }
# Substring search for PostScript `search`.
memchr = { workspace = true }
[dev-dependencies]
vectorcraft-testkit = { workspace = true }
vectorcraft-text = { workspace = true, features = ["test-fonts"] }
# Tests: a Group 4 encoder and the T.4 run codes, to write CCITT test images.
fax = "0.2"