Skip to main content

Device

Trait Device 

Source
pub trait Device<'a> {
Show 14 methods // Required methods fn set_soft_mask(&mut self, mask: Option<SoftMask<'a>>); fn set_blend_mode(&mut self, blend_mode: BlendMode); fn draw_path( &mut self, path: &BezPath, transform: Affine, paint: &Paint<'a>, draw_mode: &PathDrawMode, ); fn push_clip_path(&mut self, clip_path: &ClipPath); fn push_transparency_group( &mut self, opacity: f32, mask: Option<SoftMask<'a>>, blend_mode: BlendMode, ); fn draw_glyph( &mut self, glyph: &Glyph<'a>, transform: Affine, glyph_transform: Affine, paint: &Paint<'a>, draw_mode: &GlyphDrawMode, ); fn draw_image(&mut self, image: Image<'a, '_>, transform: Affine); fn pop_clip_path(&mut self); fn pop_transparency_group(&mut self); // Provided methods fn draw_rect( &mut self, rect: &Rect, transform: Affine, paint: &Paint<'a>, draw_mode: &PathDrawMode, ) { ... } fn begin_marked_content( &mut self, _tag: &[u8], _mcid: Option<i32>, _actual_text: Option<&str>, ) { ... } fn end_marked_content(&mut self) { ... } fn draw_placed_text(&mut self, _text: &str, _rect: Rect) { ... } fn text_adjustment(&mut self, _amount: f32) { ... }
}
Expand description

A trait for a device that can be used to process PDF drawing instructions.

Required Methods§

Source

fn set_soft_mask(&mut self, mask: Option<SoftMask<'a>>)

Set the properties for future stroking operations. Set a soft mask to be used for future drawing instructions.

Source

fn set_blend_mode(&mut self, blend_mode: BlendMode)

Set the blend mode that should be used for rendering operations.

Source

fn draw_path( &mut self, path: &BezPath, transform: Affine, paint: &Paint<'a>, draw_mode: &PathDrawMode, )

Draw a path.

Source

fn push_clip_path(&mut self, clip_path: &ClipPath)

Push a new clip path to the clip stack.

Source

fn push_transparency_group( &mut self, opacity: f32, mask: Option<SoftMask<'a>>, blend_mode: BlendMode, )

Push a new transparency group to the blend stack.

Source

fn draw_glyph( &mut self, glyph: &Glyph<'a>, transform: Affine, glyph_transform: Affine, paint: &Paint<'a>, draw_mode: &GlyphDrawMode, )

Draw a glyph.

Source

fn draw_image(&mut self, image: Image<'a, '_>, transform: Affine)

Draw an image.

Source

fn pop_clip_path(&mut self)

Pop the last clip path from the clip stack.

Source

fn pop_transparency_group(&mut self)

Pop the last transparency group from the blend stack.

Provided Methods§

Source

fn draw_rect( &mut self, rect: &Rect, transform: Affine, paint: &Paint<'a>, draw_mode: &PathDrawMode, )

Draw a rectangle directly, without going through the general path pipeline.

Source

fn begin_marked_content( &mut self, _tag: &[u8], _mcid: Option<i32>, _actual_text: Option<&str>, )

Called at the beginning of a marked content sequence (BMC/BDC).

The tag is the marked content tag (e.g. b“P“, b“Span“). The mcid is the marked content identifier from the properties dict, if present.

actual_text is the sequence’s /ActualText (PDF 32000-1 §14.9.4) already decoded from its text-string encoding: the characters the producer says this sequence is, whatever its glyphs decode to. A text extractor must prefer it over the glyphs; a rendering device has no use for it and the default implementation ignores it.

Source

fn end_marked_content(&mut self)

Called at the end of a marked content sequence (EMC).

Source

fn draw_placed_text(&mut self, _text: &str, _rect: Rect)

Text the page carries at a known place with no glyph drawn for it.

rect is where that text sits, already in the device’s own coordinate system. The one producer today is a form field whose widget has no appearance stream to draw: the value is in /V and nothing paints it, so a device that reads glyphs would never see it (#549). A rendering device has nothing to draw either – synthesising the missing appearance is a different job – and the default implementation ignores it.

Source

fn text_adjustment(&mut self, _amount: f32)

Called when a TJ-array numeric adjustment is encountered between substrings. Positive values shift text backward, negative values shift it forward (1/1000 em units, per PDF §9.4.3). Text extractors use this as a high-confidence word-boundary signal.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§