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>
impl<'a> Shape<'a>
Sourcepub fn draw(&mut self)
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}Sourcepub fn with_width(&mut self, width: impl Length) -> &mut Self
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}Sourcepub fn with_angle(&mut self, angle: impl Angle) -> &mut Self
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}Sourcepub fn with_anchor(&mut self, anchor: Anchor) -> &mut Self
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}Sourcepub fn with_cap_type(&mut self, cap_type: CapType) -> &mut Self
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}Sourcepub fn with_color(&mut self, color: impl Color) -> &mut Self
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}pub fn get_default_width() -> Pt
pub fn set_default_width(width: impl Length)
pub fn get_default_cap_type() -> CapType
pub fn set_default_cap_type(cap_type: CapType)
pub fn get_default_color() -> Rgb
pub fn set_default_color(color: impl Color)
pub fn get_default_angle() -> Degree
pub fn set_default_angle(angle: impl Angle)
pub fn get_default_anchor() -> Anchor
pub fn set_default_anchor(anchor: Anchor)
Trait Implementations§
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> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more