fix(pdfshxtext): .shx-only font resolution, oversized-object rule, mean text height

A listed font is compared only from its .shx file or the embedded stroke
font of that name; no TrueType or alias stand-in. Objects with a diagonal
over five times the selection's mean diagonal join no group. The created
MTEXT height is the mean of the character sizes. Text styles look a bare
font name up as .shx first, and a missing .shx name never draws with a
TrueType face. TXT2MTXT measures TEXT to its last inked stroke.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
ramox81andClaude Opus 5.5 committed 2026-10-16 13:53:36 +03:00
1 parent 2eb60f333f
commit 416ec43c38
6 files changed
+110 -45

No files matched your search

+5 -2
View File
@@ -75,10 +75,13 @@ impl ShxSettingsState {
let Some(font) = self.settings.fonts.get(self.selected) else {
return;
};
let spec = crate::modules::insert::pdf_shx_text::resolve_font(
// A font that is not available has nothing to show.
let Some(spec) = crate::modules::insert::pdf_shx_text::resolve_font(
&font.name,
self.drawing.as_deref(),
);
) else {
return;
};
let (strokes, _) = crate::scene::text::lff::tessellate_text_ex(
[0.0, 0.0],
9.0,