Skip to main content

OutlineGlyph

Struct OutlineGlyph 

Source
pub struct OutlineGlyph { /* private fields */ }
Expand description

A glyph defined by an outline.

Implementations§

Source§

impl OutlineGlyph

Source

pub fn place(&self) -> Option<GlyphPlace>

Where this glyph stands among the glyphs of its page interpretation; None for a glyph made outside one.

Source

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.

Source

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.

Source

pub fn outline(&self) -> BezPath

Return the outline of the glyph, assuming an upem value of 1000.

Source

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.

Source

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.

Source

pub fn font_data(&self) -> Option<OutlineFontData>

Get raw font bytes and metadata for downstream use.

Returns None for Type1 fonts.

Source

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.

Source

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.

Source

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.

Source

pub fn glyph_id(&self) -> GlyphId

Get the glyph ID within the font.

Source

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.

Source

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).

Source

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).

Source

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.

Trait Implementations§

Source§

impl Clone for OutlineGlyph

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for OutlineGlyph

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, S> SimdFrom<T, S> for T
where S: Simd,

Source§

fn simd_from(_simd: S, value: T) -> T

Source§

impl<F, T, S> SimdInto<T, S> for F
where T: SimdFrom<F, S>, S: Simd,

Source§

fn simd_into(self, simd: S) -> T

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.