extract_text/
extract_text.rs1use std::sync::Arc;
6
7fn main() {
8 let mut args = std::env::args().skip(1);
9 let path = args.next().expect("usage: extract_text <file.pdf> [page]");
10 let page: usize = args.next().and_then(|s| s.parse().ok()).unwrap_or(0);
11
12 let bytes = Arc::new(std::fs::read(&path).expect("read pdf"));
13 let doc = gpui_pdf::parse(bytes).expect("parse pdf");
14
15 match gpui_pdf::extract_page_text(&doc, page) {
16 Some(pt) if !pt.is_empty() => {
17 println!("--- page {page} text ---");
18 println!("{}", pt.text());
19 }
20 Some(_) => eprintln!("page {page}: no extractable text (scanned image?)"),
21 None => eprintln!("no page {page}"),
22 }
23}