pub trait OutputDev {
// Required methods
fn begin_page(
&mut self,
page_num: u32,
media_box: &MediaBox,
art_box: Option<(f64, f64, f64, f64)>
) -> Result<(), OutputError>;
fn end_page(&mut self) -> Result<(), OutputError>;
fn output_character(
&mut self,
trm: &Transform,
width: f64,
spacing: f64,
font_size: f64,
char: &str
) -> Result<(), OutputError>;
fn begin_word(&mut self) -> Result<(), OutputError>;
fn end_word(&mut self) -> Result<(), OutputError>;
fn end_line(&mut self) -> Result<(), OutputError>;
// Provided methods
fn stroke(
&mut self,
_ctm: &Transform,
_colorspace: &ColorSpace,
_color: &[f64],
_path: &Path
) -> Result<(), OutputError> { ... }
fn fill(
&mut self,
_ctm: &Transform,
_colorspace: &ColorSpace,
_color: &[f64],
_path: &Path
) -> Result<(), OutputError> { ... }
}