Struct Table

Source
pub struct Table<'a> {
    pub encoding: Encoding<'a>,
    pub charset: Charset<'a>,
    /* private fields */
}
Expand description

Fields§

§encoding: Encoding<'a>§charset: Charset<'a>

Implementations§

Source§

impl<'a> Table<'a>

Source

pub fn parse(data: &'a [u8]) -> Option<Self>

Parses a table from raw data.

Examples found in repository?
examples/tounicode.rs (line 12)
5fn main() {
6    // open the file passed on the comanmand line
7    let path = std::env::args().nth(1).expect("no file given");
8    let file = std::fs::File::open(&path).expect("could not open file");
9    let mut reader = std::io::BufReader::new(file);
10    let mut buffer = Vec::new();
11    reader.read_to_end(&mut buffer).expect("could not read file");
12    let table = Table::parse(&buffer).unwrap();
13
14    let charset = table.charset.get_table();
15    let encoding = table.encoding.get_table();
16    for i in 0..encoding.len() {
17        let cid = encoding[i];
18        let sid = charset[i];
19        println!("{}: {:?}", cid, string_by_id(&table, sid));
20    }
21
22}
More examples
Hide additional examples
examples/dump.rs (line 13)
6fn main() {
7    // open the file passed on the comanmand line
8    let path = std::env::args().nth(1).expect("no file given");
9    let file = std::fs::File::open(&path).expect("could not open file");
10    let mut reader = std::io::BufReader::new(file);
11    let mut buffer = Vec::new();
12    reader.read_to_end(&mut buffer).expect("could not read file");
13    let table = Table::parse(&buffer).unwrap();
14    dbg!(&table);
15    match table.charset {
16
17        Charset::ISOAdobe => println!("ISOAdobe"),
18        Charset::Expert => println!("Expert"),
19        Charset::ExpertSubset => println!("ExpertSubset"),
20        Charset::Format0(ref array) => {
21            println!("Format0:");
22            for sid in array.clone() {
23                println!("  {:?}", string_by_id(&table, sid));
24            }
25        }
26        Charset::Format1(ref array) => {
27            println!("Format1:");
28            for range in array.clone() {
29                let sid = range.first;
30                println!("  {:?}", string_by_id(&table, sid));
31            }
32        }
33        Charset::Format2(ref array) => {
34            println!("Format2:");
35            for range in array.clone() {
36                let sid = range.first;
37                println!("  {:?}", string_by_id(&table, sid));
38            }
39        }
40    }
41    match table.encoding.kind {
42        cff_parser::EncodingKind::Standard => println!("Standard"),
43        cff_parser::EncodingKind::Expert => println!("Expert"),
44        cff_parser::EncodingKind::Format0(ref array) => {
45            println!("Format0:");
46            for code in array.clone() {
47                println!("  {:?}", code);
48            }
49        }
50        cff_parser::EncodingKind::Format1(ref array) => {
51            println!("Format1:");
52            for range in array.clone() {
53                println!("  {:?} {:?}", range.first, range.left);
54            }
55        }
56    }
57}
Source

pub fn number_of_glyphs(&self) -> u16

Returns a total number of glyphs in the font.

Never zero.

Source

pub fn matrix(&self) -> Matrix

Returns a font transformation matrix.

Source

pub fn outline( &self, glyph_id: GlyphId, builder: &mut dyn OutlineBuilder, ) -> Result<Rect, CFFError>

Outlines a glyph.

Source

pub fn glyph_index(&self, code_point: u8) -> Option<GlyphId>

Resolves a Glyph ID for a code point.

Similar to Face::glyph_index but 8bit and uses CFF encoding and charset tables instead of TrueType cmap.

Source

pub fn glyph_width(&self, glyph_id: GlyphId) -> Option<u16>

Returns a glyph width.

This value is different from outline bbox width and is stored separately.

Technically similar to Face::glyph_hor_advance.

Source

pub fn glyph_index_by_name(&self, name: &str) -> Option<GlyphId>

Returns a glyph ID by a name.

Source

pub fn glyph_name(&self, glyph_id: GlyphId) -> Option<&'a str>

Returns a glyph name.

Source

pub fn glyph_cid(&self, glyph_id: GlyphId) -> Option<u16>

Returns the CID corresponding to a glyph ID.

Returns None if this is not a CIDFont.

Trait Implementations§

Source§

impl<'a> Clone for Table<'a>

Source§

fn clone(&self) -> Table<'a>

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for Table<'_>

Source§

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

Formats the value using the given formatter. Read more
Source§

impl<'a> Copy for Table<'a>

Auto Trait Implementations§

§

impl<'a> Freeze for Table<'a>

§

impl<'a> RefUnwindSafe for Table<'a>

§

impl<'a> Send for Table<'a>

§

impl<'a> Sync for Table<'a>

§

impl<'a> Unpin for Table<'a>

§

impl<'a> UnwindSafe for Table<'a>

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> 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> 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 = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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.