From 73fdb261efb8965cb3c3eeb8d408d4ddacb50be3 Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Mon, 5 Oct 2026 17:34:51 -0400 Subject: [PATCH] UI: share the Japanese fallback font with printcraft-fonts (one 8.7 MB copy, not two) The UI theme include_bytes!'d ShipporiMincho-Regular.ttf, which printcraft-fonts already embeds as SHIPPORI_MINCHO for Japanese text in PDFs, so the app carried two copies. ui-egui now depends on printcraft-fonts (layer 2, wasm-clean) and uses its static. The desktop app binary drops from 85.8 MB to 77.5 MB (debug build; one copy of the font left, counted). Co-Authored-By: Claude Opus 5.5 --- Cargo.lock | 1 + crates/ui-egui/Cargo.toml | 1 + crates/ui-egui/src/theme.rs | 3 ++- 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Cargo.lock b/Cargo.lock index 0bfe2e68..7ff41575 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4088,6 +4088,7 @@ dependencies = [ "png 0.18.1", "printcraft-cos", "printcraft-engine", + "printcraft-fonts", "printcraft-model", "printcraft-render", "rfd", diff --git a/crates/ui-egui/Cargo.toml b/crates/ui-egui/Cargo.toml index 4919dd81..ee199abf 100644 --- a/crates/ui-egui/Cargo.toml +++ b/crates/ui-egui/Cargo.toml @@ -9,6 +9,7 @@ license.workspace = true workspace = true [dependencies] +printcraft-fonts = { workspace = true } printcraft-engine = { workspace = true } printcraft-render = { workspace = true } egui = { workspace = true } diff --git a/crates/ui-egui/src/theme.rs b/crates/ui-egui/src/theme.rs index 4360a607..136ef0f3 100644 --- a/crates/ui-egui/src/theme.rs +++ b/crates/ui-egui/src/theme.rs @@ -113,7 +113,8 @@ pub fn install_fonts(ctx: &egui::Context) { add(&mut fonts, "Inter-Medium", include_bytes!("../../../assets/fonts/Inter-Medium.ttf")); add(&mut fonts, "Inter-SemiBold", include_bytes!("../../../assets/fonts/Inter-SemiBold.ttf")); add(&mut fonts, "JetBrainsMono", include_bytes!("../../../assets/fonts/JetBrainsMono-Regular.ttf")); - add(&mut fonts, "ShipporiMincho", include_bytes!("../../../assets/fonts/ShipporiMincho-Regular.ttf")); + // The same bytes printcraft-fonts embeds for Japanese text in PDFs: one 8.7 MB copy, not two. + add(&mut fonts, "ShipporiMincho", printcraft_fonts::SHIPPORI_MINCHO); fonts.families.entry(FontFamily::Proportional).or_default().insert(0, "Inter".to_owned()); fonts.families.entry(FontFamily::Proportional).or_default().push("ShipporiMincho".to_owned()); fonts.families.entry(FontFamily::Monospace).or_default().insert(0, "JetBrainsMono".to_owned());