use easypdf::prelude::*;
use std::path::PathBuf;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let out_dir = tempfile::tempdir()?;
let pdf_path: PathBuf = out_dir.path().join("sample.pdf");
EasyPdf::create(&pdf_path)
.title("Sample Document")
.metadata(
PdfMetadata::new()
.author("easypdf examples")
.subject("Read demonstration"),
)
.add_text("This is a sample PDF for reading.")
.font(PdfFont::helvetica(14.0))
.do_write()?;
println!("Created sample PDF at: {}", pdf_path.display());
let page_count = EasyPdf::read(&pdf_path).page_count()?;
println!("Page count: {page_count}");
let metadata = EasyPdf::read(&pdf_path).metadata()?;
println!("Title: {}", metadata.title.as_deref().unwrap_or("(none)"));
println!("Author: {}", metadata.author.as_deref().unwrap_or("(none)"));
println!(
"Subject: {}",
metadata.subject.as_deref().unwrap_or("(none)")
);
let text = EasyPdf::read(&pdf_path).extract_text()?;
println!("Extracted text ({} chars):", text.len());
println!("---");
println!("{text}");
println!("---");
Ok(())
}