rpdfium 7676.6.4

A faithful Rust port of Google's PDFium PDF rendering engine
Documentation
//! Extract text from all pages of a PDF.
//!
//! Usage: cargo run --example extract_text -- path/to/file.pdf

fn main() {
    let args: Vec<String> = std::env::args().collect();
    if args.len() < 2 {
        eprintln!("Usage: {} <pdf-file>", args[0]);
        std::process::exit(1);
    }

    let lib = rpdfium::Library::new();
    let opts = rpdfium::OpenOptions::default();
    let doc = rpdfium::Document::open_file(&lib, &args[1], &opts).expect("failed to open PDF");

    println!("Pages: {}", doc.page_count());

    for i in 0..doc.page_count() {
        let page = doc.page(i).expect("failed to get page");
        match page.text() {
            Ok(text_page) => {
                let text = text_page.all_page_text();
                println!("--- Page {} ({} chars) ---", i + 1, text.len());
                println!("{}", text);
            }
            Err(e) => {
                eprintln!("Page {}: text extraction failed: {}", i + 1, e);
            }
        }
    }
}