1use justpdf::{DocumentBuilder, PageBuilder};
6
7fn main() -> Result<(), Box<dyn std::error::Error>> {
8 let args: Vec<String> = std::env::args().collect();
9 let output = args.get(1).map(|s| s.as_str()).unwrap_or("created.pdf");
10
11 let mut builder = DocumentBuilder::new();
12 builder.set_title("Created by justpdf");
13 builder.set_author("justpdf example");
14
15 let font = builder.add_standard_font("Helvetica");
16
17 let mut page1 = PageBuilder::new(612.0, 792.0);
19 page1.add_font(&font, "Helvetica");
20 page1.begin_text();
21 page1.set_font(&font, 36.0);
22 page1.move_to(72.0, 700.0);
23 page1.show_text("Hello, justpdf!");
24 page1.end_text();
25
26 page1.begin_text();
27 page1.set_font(&font, 14.0);
28 page1.move_to(72.0, 650.0);
29 page1.show_text("This PDF was created with the justpdf Rust library.");
30 page1.end_text();
31
32 page1.set_fill_rgb(0.2, 0.4, 0.8);
34 page1.fill_rect(72.0, 500.0, 468.0, 2.0);
35
36 builder.add_page(page1);
37
38 let mut page2 = PageBuilder::new(612.0, 792.0);
40 page2.add_font(&font, "Helvetica");
41 page2.begin_text();
42 page2.set_font(&font, 24.0);
43 page2.move_to(72.0, 700.0);
44 page2.show_text("Page 2");
45 page2.end_text();
46 builder.add_page(page2);
47
48 let bytes = builder.build()?;
49 std::fs::write(output, &bytes)?;
50 println!("Created {output} ({} bytes, 2 pages)", bytes.len());
51
52 Ok(())
53}