internal Boolean DecryptFile( string inputFile, string outputFile, IEnumerable<string> userPasswords) { foreach (var pwd in userPasswords) { try { using (var reader = new PdfReader(inputFile, new ASCIIEncoding().GetBytes(pwd))) { reader.GetType().Field("encrypted").SetValue(reader, false); using (var outStream = File.OpenWrite(outputFile)) { using (var stamper = new PdfStamper(reader, outStream)) { stamper.Close(); } } } return true; } catch (Exception ex) { Logger.ErrorFormat(ex, "Error trying to decrypt file {0}: {1}", inputFile, ex.Message); } } return false; }