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()
);
}