///| async fn main { run(@env.args()) } ///| pub async fn run(args : Array[String], quiet? : Bool = false) -> Unit { if args.length() != 3 { if !quiet { println("Syntax: pdfdecomp ") } return } let in_file = args[1] let out_file = args[2] try { let pdf = @pdfreadfs.PdfReadFs::new().pdf_of_file(None, None, in_file) pdf.objiter((_, obj) => { match obj { Stream(_) => @pdfcodec.PdfCodec::new().decode_pdfstream_until_unknown(pdf, obj) _ => () } }) @pdfwritefs.PdfWriteFs::new().pdf_to_file(pdf, out_file) } catch { err => if !quiet { println("Failed to decompress file.") println(err) } } }