pub struct OutlineGlyph { /* private fields */ }Expand description
A glyph defined by an outline.
Implementations§
Source§impl OutlineGlyph
impl OutlineGlyph
Sourcepub fn place(&self) -> Option<GlyphPlace>
pub fn place(&self) -> Option<GlyphPlace>
Where this glyph stands among the glyphs of its page interpretation;
None for a glyph made outside one.
Sourcepub fn reread_previous(&self, previous: GlyphPlace) -> Option<Option<BfString>>
pub fn reread_previous(&self, previous: GlyphPlace) -> Option<Option<BfString>>
What the glyph drawn directly before this one, at previous, reads
as now, when drawing this glyph changed it; None when it did not.
Drawing a combining mark from an AMS name row next to a glyph offers
the mark to that glyph (see OutlineGlyph::as_unicode), so the
glyph drawn before can read differently once this one is drawn: a
c drawn before its circle reads c⃝, a slash drawn before the =
it strikes reads as nothing. This read is what takes the offer, as
reading that glyph with as_unicode would; a caller that does not
make it leaves the offer to be refused. On a page where nothing was
offered it answers None at the cost of one load.
Call it before reading this glyph itself (as_unicode and the
like): reading this glyph first decides the offer from this side, and
the glyph before then reads as it did. A previous from another page
interpretation, or not directly before this glyph, answers None.
Sourcepub fn font_resource_name(&self) -> Option<&str>
pub fn font_resource_name(&self) -> Option<&str>
The resource name the glyph’s font was set from (Tf’s operand), if
the Tf handler stamped one: the name extraction reads back to tell
the engine’s own OCR layer apart from author text set in the same face.
Sourcepub fn outline(&self) -> BezPath
pub fn outline(&self) -> BezPath
Return the outline of the glyph, assuming an upem value of 1000.
Sourcepub fn identifier(&self) -> GlyphIdentifier
pub fn identifier(&self) -> GlyphIdentifier
Return the identifier of the glyph. You can use this to calculate the cache key for the glyph.
Note that the glyph_transform attribute is not considered in the cache key of
the identifier, only the glyph ID and the font.
Sourcepub fn as_unicode(&self) -> Option<BfString>
pub fn as_unicode(&self) -> Option<BfString>
Returns the Unicode code point for this glyph, if available.
See Glyph::as_unicode for details on the fallback chain used.
A combining mark that an AMS name row gives (circlecopyrt,
negationslash) is never handed out on its own glyph. Where it is
placed, the glyph it marks reads as itself followed by the mark and the
mark’s glyph reads as nothing; otherwise the mark’s glyph reads as its
code did before the row existed (see marks.rs). A placement is
decided by which of the two glyphs is read first once it is offered,
so the glyph drawn before a mark can read differently when read again
after the mark is drawn.
Sourcepub fn font_data(&self) -> Option<OutlineFontData>
pub fn font_data(&self) -> Option<OutlineFontData>
Get raw font bytes and metadata for downstream use.
Returns None for Type1 fonts.
Sourcepub fn postscript_name(&self) -> Option<String>
pub fn postscript_name(&self) -> Option<String>
PostScript name of the underlying font, if determinable.
Works even when font_data returns
None — e.g. non-embedded standard-14 Type1 fonts still
expose their canonical PostScript name through this
accessor. Returns None when no name source is available.
Surfaced to support the WASM getTextPositions() fontName
field for the editor contract.
Sourcepub fn declared_name(&self) -> Option<String>
pub fn declared_name(&self) -> Option<String>
The font dictionary’s /BaseFont as the page named it, subset prefix
and all, where the font carries one (#623). Self::postscript_name
names the face that draws the glyphs, which for a font standing on a
standard face is that face, not the page’s.
Sourcepub fn document_name(&self) -> Option<String>
pub fn document_name(&self) -> Option<String>
The name text extraction reports for a span: the document’s own name
for an embedded font, the substitute face otherwise. Subset prefix
and all, like Self::declared_name; callers strip.
Sourcepub fn advance_width(&self) -> Option<f32>
pub fn advance_width(&self) -> Option<f32>
Get the advance width for this glyph.
The advance width is how far to move horizontally after drawing this glyph before drawing the next one.
Sourcepub fn font_metrics(&self) -> Option<(f64, f64, Option<f64>, Option<f64>)>
pub fn font_metrics(&self) -> Option<(f64, f64, Option<f64>, Option<f64>)>
Vertical font metrics in /1000 em.
Returns (ascent, descent, cap_height, x_height) from the font’s
embedded OS/2 tables (via skrifa) when available, or from the
Standard-14 AFM fallback table for non-embedded standard fonts.
Returns None only when no metrics source is reachable (e.g.
CFF fonts without a standard-font fallback, Type3).
Sourcepub fn substitute_metrics(&self) -> Option<(f64, f64, Option<f64>, Option<f64>)>
pub fn substitute_metrics(&self) -> Option<(f64, f64, Option<f64>, Option<f64>)>
The substitute face’s AFM pair for Type1/CFF, ignoring the descriptor: the pre-E4 answer, kept for the default extraction path (#643 follow-up).
Sourcepub fn font_cache_key(&self) -> u128
pub fn font_cache_key(&self) -> u128
Get the cache key for this glyph’s font.
This identifies the font uniquely, even when font_data() returns None
(e.g., for Type1 fonts). Useful for grouping glyphs by font.