Shape

Struct Shape 

Source
pub struct Shape<'a> {
    pub enum_type: ShapeType,
    pub content_stream: Option<&'a mut Vec<u8>>,
    pub x: Vec<f64>,
    pub y: Vec<f64>,
    pub width: Option<f64>,
    pub radius: Option<f64>,
    pub angle: Option<f64>,
    pub anchor: Option<Anchor>,
    pub cap_type: Option<CapType>,
    pub color: Option<(f64, f64, f64)>,
}
Expand description

A shape to draw on the PDF.

This struct is mostly internal and should not be used directly. You should use the methods provided by the Generator struct.

Fields§

§enum_type: ShapeType§content_stream: Option<&'a mut Vec<u8>>§x: Vec<f64>§y: Vec<f64>§width: Option<f64>§radius: Option<f64>§angle: Option<f64>§anchor: Option<Anchor>§cap_type: Option<CapType>§color: Option<(f64, f64, f64)>

Implementations§

Source§

impl<'a> Shape<'a>

Source

pub fn draw(&mut self)

Examples found in repository?
examples/simple.rs (line 11)
4fn main() -> Result<(), Box<dyn Error>> {
5    let mut generator = Generator::new("output/shapes.pdf".into());
6    // Generator::set_default_page_size(Pt(800.), Pt(800.));
7    generator.add_page();
8    generator
9        .circle(Mm(20.), Mm(20.), Mm(10.))
10        .with_color(NamedColor("blue"))
11        .draw();
12    generator
13        .line(Pt(500.), Pt(600.), Pt(300.), Pt(400.))
14        .with_width(Mm(10.))
15        .with_cap_type(CapType::Round)
16        .with_color(NamedColor("red"))
17        .draw();
18    generator.add_page_letter();
19    generator
20        .rectangle(Mm(80.), Mm(180.), Mm(50.), Mm(30.))
21        .with_anchor(Anchor::Center)
22        .with_angle(Degree(30.))
23        .draw();
24    generator
25        .circle(Mm(80.), Mm(180.), Mm(1.))
26        .with_color(NamedColor("green"))
27        .draw();
28    generator.add_page_a4();
29    generator.write_pdf()?;
30    println!("PDF generated successfully!");
31    Ok(())
32}
Source

pub fn with_width(&mut self, width: impl Length) -> &mut Self

Set the width of the shape and return a mutable reference to self.

Examples found in repository?
examples/simple.rs (line 14)
4fn main() -> Result<(), Box<dyn Error>> {
5    let mut generator = Generator::new("output/shapes.pdf".into());
6    // Generator::set_default_page_size(Pt(800.), Pt(800.));
7    generator.add_page();
8    generator
9        .circle(Mm(20.), Mm(20.), Mm(10.))
10        .with_color(NamedColor("blue"))
11        .draw();
12    generator
13        .line(Pt(500.), Pt(600.), Pt(300.), Pt(400.))
14        .with_width(Mm(10.))
15        .with_cap_type(CapType::Round)
16        .with_color(NamedColor("red"))
17        .draw();
18    generator.add_page_letter();
19    generator
20        .rectangle(Mm(80.), Mm(180.), Mm(50.), Mm(30.))
21        .with_anchor(Anchor::Center)
22        .with_angle(Degree(30.))
23        .draw();
24    generator
25        .circle(Mm(80.), Mm(180.), Mm(1.))
26        .with_color(NamedColor("green"))
27        .draw();
28    generator.add_page_a4();
29    generator.write_pdf()?;
30    println!("PDF generated successfully!");
31    Ok(())
32}
Source

pub fn with_angle(&mut self, angle: impl Angle) -> &mut Self

Examples found in repository?
examples/simple.rs (line 22)
4fn main() -> Result<(), Box<dyn Error>> {
5    let mut generator = Generator::new("output/shapes.pdf".into());
6    // Generator::set_default_page_size(Pt(800.), Pt(800.));
7    generator.add_page();
8    generator
9        .circle(Mm(20.), Mm(20.), Mm(10.))
10        .with_color(NamedColor("blue"))
11        .draw();
12    generator
13        .line(Pt(500.), Pt(600.), Pt(300.), Pt(400.))
14        .with_width(Mm(10.))
15        .with_cap_type(CapType::Round)
16        .with_color(NamedColor("red"))
17        .draw();
18    generator.add_page_letter();
19    generator
20        .rectangle(Mm(80.), Mm(180.), Mm(50.), Mm(30.))
21        .with_anchor(Anchor::Center)
22        .with_angle(Degree(30.))
23        .draw();
24    generator
25        .circle(Mm(80.), Mm(180.), Mm(1.))
26        .with_color(NamedColor("green"))
27        .draw();
28    generator.add_page_a4();
29    generator.write_pdf()?;
30    println!("PDF generated successfully!");
31    Ok(())
32}
Source

pub fn with_anchor(&mut self, anchor: Anchor) -> &mut Self

Examples found in repository?
examples/simple.rs (line 21)
4fn main() -> Result<(), Box<dyn Error>> {
5    let mut generator = Generator::new("output/shapes.pdf".into());
6    // Generator::set_default_page_size(Pt(800.), Pt(800.));
7    generator.add_page();
8    generator
9        .circle(Mm(20.), Mm(20.), Mm(10.))
10        .with_color(NamedColor("blue"))
11        .draw();
12    generator
13        .line(Pt(500.), Pt(600.), Pt(300.), Pt(400.))
14        .with_width(Mm(10.))
15        .with_cap_type(CapType::Round)
16        .with_color(NamedColor("red"))
17        .draw();
18    generator.add_page_letter();
19    generator
20        .rectangle(Mm(80.), Mm(180.), Mm(50.), Mm(30.))
21        .with_anchor(Anchor::Center)
22        .with_angle(Degree(30.))
23        .draw();
24    generator
25        .circle(Mm(80.), Mm(180.), Mm(1.))
26        .with_color(NamedColor("green"))
27        .draw();
28    generator.add_page_a4();
29    generator.write_pdf()?;
30    println!("PDF generated successfully!");
31    Ok(())
32}
Source

pub fn with_cap_type(&mut self, cap_type: CapType) -> &mut Self

Examples found in repository?
examples/simple.rs (line 15)
4fn main() -> Result<(), Box<dyn Error>> {
5    let mut generator = Generator::new("output/shapes.pdf".into());
6    // Generator::set_default_page_size(Pt(800.), Pt(800.));
7    generator.add_page();
8    generator
9        .circle(Mm(20.), Mm(20.), Mm(10.))
10        .with_color(NamedColor("blue"))
11        .draw();
12    generator
13        .line(Pt(500.), Pt(600.), Pt(300.), Pt(400.))
14        .with_width(Mm(10.))
15        .with_cap_type(CapType::Round)
16        .with_color(NamedColor("red"))
17        .draw();
18    generator.add_page_letter();
19    generator
20        .rectangle(Mm(80.), Mm(180.), Mm(50.), Mm(30.))
21        .with_anchor(Anchor::Center)
22        .with_angle(Degree(30.))
23        .draw();
24    generator
25        .circle(Mm(80.), Mm(180.), Mm(1.))
26        .with_color(NamedColor("green"))
27        .draw();
28    generator.add_page_a4();
29    generator.write_pdf()?;
30    println!("PDF generated successfully!");
31    Ok(())
32}
Source

pub fn with_color(&mut self, color: impl Color) -> &mut Self

Examples found in repository?
examples/simple.rs (line 10)
4fn main() -> Result<(), Box<dyn Error>> {
5    let mut generator = Generator::new("output/shapes.pdf".into());
6    // Generator::set_default_page_size(Pt(800.), Pt(800.));
7    generator.add_page();
8    generator
9        .circle(Mm(20.), Mm(20.), Mm(10.))
10        .with_color(NamedColor("blue"))
11        .draw();
12    generator
13        .line(Pt(500.), Pt(600.), Pt(300.), Pt(400.))
14        .with_width(Mm(10.))
15        .with_cap_type(CapType::Round)
16        .with_color(NamedColor("red"))
17        .draw();
18    generator.add_page_letter();
19    generator
20        .rectangle(Mm(80.), Mm(180.), Mm(50.), Mm(30.))
21        .with_anchor(Anchor::Center)
22        .with_angle(Degree(30.))
23        .draw();
24    generator
25        .circle(Mm(80.), Mm(180.), Mm(1.))
26        .with_color(NamedColor("green"))
27        .draw();
28    generator.add_page_a4();
29    generator.write_pdf()?;
30    println!("PDF generated successfully!");
31    Ok(())
32}
Source

pub fn get_default_width() -> Pt

Source

pub fn set_default_width(width: impl Length)

Source

pub fn get_default_cap_type() -> CapType

Source

pub fn set_default_cap_type(cap_type: CapType)

Source

pub fn get_default_color() -> Rgb

Source

pub fn set_default_color(color: impl Color)

Source

pub fn get_default_angle() -> Degree

Source

pub fn set_default_angle(angle: impl Angle)

Source

pub fn get_default_anchor() -> Anchor

Source

pub fn set_default_anchor(anchor: Anchor)

Trait Implementations§

Source§

impl<'a> Debug for Shape<'a>

Source§

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

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

impl<'a> Default for Shape<'a>

Source§

fn default() -> Shape<'a>

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl<'a> Freeze for Shape<'a>

§

impl<'a> RefUnwindSafe for Shape<'a>

§

impl<'a> Send for Shape<'a>

§

impl<'a> Sync for Shape<'a>

§

impl<'a> Unpin for Shape<'a>

§

impl<'a> !UnwindSafe for Shape<'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> 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, 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.