1use fleischwolf_pdf::layout::LayoutModel;
5use fleischwolf_pdf::PdfDocument;
6
7fn main() {
8 let path = std::env::args().nth(1).expect("usage: layout <file.pdf>");
9 let bytes = std::fs::read(&path).expect("read pdf");
10 let doc = PdfDocument::open(&bytes, None).expect("open pdf");
11 let mut model = LayoutModel::load().expect("load layout model");
12 for (i, page) in doc.pages.iter().enumerate().take(1) {
13 let regions = model
14 .predict(&page.image, page.width, page.height)
15 .expect("predict");
16 println!(
17 "page {} ({:.0}x{:.0}): {} regions",
18 i + 1,
19 page.width,
20 page.height,
21 regions.len()
22 );
23 let mut rs = regions.clone();
24 rs.sort_by(|a, b| a.t.total_cmp(&b.t));
25 for r in &rs {
26 println!(
27 " {:<16} {:.2} [{:.0},{:.0},{:.0},{:.0}]",
28 r.label, r.score, r.l, r.t, r.r, r.b
29 );
30 }
31 }
32}