use pdfium::*;
pub fn example_extract_text() -> PdfiumResult<()> {
let document = PdfiumDocument::new_from_path("resources/chapter1.pdf", None)?;
for (index, page) in document.pages().enumerate() {
let text = page?.text()?.full();
println!("Page {}", index + 1); println!("------");
println!("{text}");
println!() }
Ok(())
}
pub fn example_search() -> PdfiumResult<()> {
let document = PdfiumDocument::new_from_path("resources/groningen.pdf", None)?;
let page = document.page(0)?;
let text = page.text()?;
let search = text.find("amsterdam", PdfiumSearchFlags::empty(), 0);
println!("Found amsterdam {} times", search.count());
let search = text.find("groningen", PdfiumSearchFlags::empty(), 0);
println!(
"Found groningen {} times (case insensitive)",
search.count()
);
let search = text.find("Groningen", PdfiumSearchFlags::MATCH_CASE, 0);
println!("Found Groningen {} times (case sensitive)", search.count());
let search = text.find("groningen", PdfiumSearchFlags::empty(), 0);
for result in search {
let fragment = text.extract(result.index(), result.count());
println!(
"Found groningen (case insensitive) at {}, fragment = '{fragment}'",
result.index()
);
}
Ok(())
}
fn main() -> PdfiumResult<()> {
example_extract_text()?;
example_search()?;
Ok(())
}