INNER CODE UNIT · Rust
preview_pdf
abenz1267/walker · src/preview/mod.rs:350
fn preview_pdf(&self, file_path: &str) -> Result<(), Box<dyn std::error::Error>> {
let uri = format!("file://{file_path}");
let document =
Document::from_file(&uri, None).map_err(|e| format!("Failed to load PDF: {e}"))?;
let pdf = GtkBox::new(Orientation::Vertical, 0);
if let Some(page) = document.page(0) {
match self.render_pdf_page(&page) {
Ok(page_widget) => pdf.append(&page_widget),
Err(e) => eprintln!("Failed to render PDF page: {e}"),
}
}
std::mem::drop(document);
let scrolled = ScrolledWindow::new();
scrolled.set_child(Some(&pdf));