use pdfrum::{Document, RenderOptions, TinySkiaBackend};
fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut args = std::env::args_os().skip(1);
let path = args.next().ok_or("usage: convert <file.pdf> [page]")?;
let index: u32 = args
.next()
.and_then(|a| a.into_string().ok())
.map_or(Ok(0), |a| a.parse())?;
let doc = Document::open(path)?;
let page = doc.page(index)?;
let tiny = TinySkiaBackend::new();
let converted = page.to_svg(&tiny, &RenderOptions::default())?;
for (cause, n) in converted.report.counts() {
eprintln!("{:<20} {n}", cause.name());
}
if converted.report.is_empty() {
eprintln!("all vectors");
}
print!("{}", converted.svg);
Ok(())
}