rpdfium 7676.6.4

A faithful Rust port of Google's PDFium PDF rendering engine
Documentation
//! Render the first page of a PDF to a bitmap.
//!
//! Usage: cargo run --example render_page -- 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());

    let page = doc.page(0).expect("failed to get page 0");
    let media_box = page.media_box();
    println!(
        "Page 0 media box: ({}, {}) - ({}, {})",
        media_box.left, media_box.bottom, media_box.right, media_box.top
    );

    let config = rpdfium::RenderConfig {
        width: (media_box.right - media_box.left) as u32,
        height: (media_box.top - media_box.bottom) as u32,
        media_box: Some(media_box),
        ..Default::default()
    };

    let bitmap = page.render(&config).expect("failed to render page");
    println!(
        "Rendered bitmap: {}x{}, {} bytes",
        bitmap.width,
        bitmap.height,
        bitmap.data.len()
    );
}