///| async fn main { run(@env.args()) } ///| pub async fn run(args : Array[String], quiet? : Bool = false) -> Unit { if args.length() != 4 { if !quiet { println("Syntax: pdfencrypt ") } return } let in_file = args[1] let out_file = args[2] let owner_pw = args[3] try { let pdf = @pdfreadfs.PdfReadFs::new().pdf_of_file(None, None, in_file) let banlist = [@pdfcrypt.Permission::NoEdit, NoPrint] let encrypted = @pdfcrypt.PdfCrypt::new().encrypt_pdf_AES( false, "", owner_pw, banlist, pdf, ) @pdfwritefs.PdfWriteFs::new().pdf_to_file(encrypted, out_file) } catch { err => if !quiet { println("Failed to produce output.") println(err) } } }