Trait pdf::FontSource [] [src]

pub trait FontSource: PartialEq + Eq + Hash {
    fn write_object(&self, pdf: &mut Pdf) -> Result<usize>;
    fn pdf_name(&self) -> String;
    fn get_encoding(&self) -> Encoding;
    fn get_width(&self, size: f32, text: &str) -> f32;
    fn get_width_raw(&self, text: &str) -> u32;
    fn get_metrics(&self) -> FontMetrics;
}

This trait is implemented by any kind of font that the pdf library supports.

Currently, only BuiltinFont implements this. TODO Add implementation(s) for other fonts.

Required Methods

Write the object(s) for this font to a pdf file.

This is called automatically for each font used in a document. There should be no need to call this method from user code.

Get the PDF name of this font.

Examples

use pdf::{BuiltinFont, FontSource};
assert_eq!("Times-Roman", BuiltinFont::Times_Roman.pdf_name());

Get the encoding that this font uses.

Get the width of a string in this font at given size.

Examples

use pdf::{BuiltinFont, FontSource};
let proportional = BuiltinFont::Helvetica;
assert_eq!(62.004, proportional.get_width(12.0, "Hello World"));
let fixed = BuiltinFont::Courier;
assert_eq!(60.0, fixed.get_width(10.0, "0123456789"));

Get the width of a string in thousands of unit of text space. This unit is what is used in some places internally in pdf files.

Examples

use pdf::{BuiltinFont, FontSource};
assert_eq!(5167, BuiltinFont::Helvetica.get_width_raw("Hello World"));
assert_eq!(600, BuiltinFont::Courier.get_width_raw("A"));

Get the font metrics for font.

Implementors