1use justpdf::Document;
6
7fn main() -> Result<(), Box<dyn std::error::Error>> {
8 let args: Vec<String> = std::env::args().collect();
9 if args.len() < 2 {
10 eprintln!("Usage: basic_read <pdf-file>");
11 std::process::exit(1);
12 }
13
14 let doc = Document::open(&args[1])?;
15
16 println!("Version: {}", doc.version_string());
17 println!("Pages: {}", doc.page_count());
18 println!("Encrypted: {}", doc.is_encrypted());
19
20 if let Some(title) = doc.title() {
21 println!("Title: {title}");
22 }
23 if let Some(author) = doc.author() {
24 println!("Author: {author}");
25 }
26
27 if let Ok(page) = doc.page(0) {
29 println!("\n--- Page 1 text ---");
30 match page.text() {
31 Ok(text) => println!("{}", &text[..text.len().min(500)]),
32 Err(e) => println!("(text extraction failed: {e})"),
33 }
34 }
35
36 Ok(())
37}