INNER CODE UNIT · Rust
render_pdf_page
abenz1267/walker · src/preview/mod.rs:377
fn render_pdf_page(&self, page: &Page) -> Result<GtkBox, Box<dyn std::error::Error>> {
let page_container = GtkBox::new(Orientation::Vertical, 5);
page_container.set_halign(gtk4::Align::Fill);
page_container.set_hexpand(true);
let (width, height) = page.size();
let target_width = 800.0;
let display_scale = target_width / width;
let render_scale = (display_scale * 1.5).min(2.0);
let render_width = ((width * render_scale) as i32).min(1600);
let render_height = ((height * render_scale) as i32).min(2400);
let estimated_size = (render_width * render_height * 4) as usize;
if estimated_size > 10 * 1024 * 1024 {
return Err("PDF page too large for preview".into());
}