public int Initialize(CharsetEncoding pdfPasswordEncoding, int maxPasswordLength, ref string errorMsg) { int isValid = Constants.Failure; CurrentIndex = 0; if (this.Count == 0) { errorMsg = "Please add a regular expression to the list."; } else { int validCount = 0; while (validCount < this.Count && this.ElementAt(validCount).Initialize(ref errorMsg) == Constants.Success) { validCount++; } ; if (this.Count == validCount) { isValid = Constants.Success; } } return(isValid); }
/// <summary> /// 转换数据为字符串,将数据解码并按字符集编码后返回字符串。 /// 注意:如果数据为空或不是文本类型的数据,则会返回空字符串。 /// </summary> /// <returns>字符串数据</returns> public string ConversionDataToString() { if (Data.IsNullOrEmpty()) { return(null); } var d = DecodeData(); if (d == null) { return(null); } return(IsTextContent ? CharsetEncoding.GetString(d) : null); }
public int Initialize(CharsetEncoding pdfPasswordEncoding, int maxPasswordLength, ref string errorMsg) { CurrentIndex = 0; errorMsg = string.Empty; int minAllowedPasswordLength = 1; int maxAllowedPasswordLength = maxPasswordLength; CharactersToUse.Clear(); ClearAllErrors(); if (InitialPasswordLength > maxAllowedPasswordLength || InitialPasswordLength < minAllowedPasswordLength) { errorMsg = string.Format("Initial password must be equal or between {0} and {1} chars.", minAllowedPasswordLength, maxAllowedPasswordLength); SetErrors("InitialPasswordLength", new List <ValidationResult>() { new ValidationResult(false, errorMsg) }); } if (errorMsg == string.Empty && IncreasePswLength && (MaxPasswordLength > maxAllowedPasswordLength || MaxPasswordLength <= InitialPasswordLength)) { if (InitialPasswordLength == maxAllowedPasswordLength) { errorMsg = string.Format("Cannot increase password beyond initial password of {0} chars.", InitialPasswordLength); } else if (MaxPasswordLength > maxAllowedPasswordLength) { errorMsg = string.Format("Cannot increase password beyond limit of {0} chars.", maxAllowedPasswordLength); } else { errorMsg = string.Format("Max password must be equal or between {0} and {1} chars.", InitialPasswordLength + 1, maxAllowedPasswordLength); } SetErrors("MaxPasswordLength", new List <ValidationResult>() { new ValidationResult(false, errorMsg) }); } if (errorMsg == string.Empty && DecreasePswLength && (MinPasswordLength < minAllowedPasswordLength || MinPasswordLength >= InitialPasswordLength)) { if (InitialPasswordLength == minAllowedPasswordLength) { errorMsg = string.Format("Cannot decrease password beyond initial password of {0} chars.", InitialPasswordLength); } else if (MinPasswordLength < minAllowedPasswordLength) { errorMsg = string.Format("Cannot decrease password beyond limit of {0} chars.", minAllowedPasswordLength); } else { errorMsg = string.Format("Min password must be equal or between {0} and {1} chars.", minAllowedPasswordLength, InitialPasswordLength - 1); } SetErrors("MinPasswordLength", new List <ValidationResult>() { new ValidationResult(false, errorMsg) }); } if (errorMsg == string.Empty && PasswordEncoding == CharsetEncoding.Ascii && PasswordCharset == Charset.None) { errorMsg = string.Format("Please specify the charset to use."); SetErrors("PasswordCharset", new List <ValidationResult>() { new ValidationResult(false, errorMsg) }); } if (errorMsg == string.Empty && PasswordEncoding == CharsetEncoding.Unicode) { if (string.IsNullOrEmpty(UnicodeCharset)) { errorMsg = string.Format("Please specify the UnicodeCharset to use."); } else if (pdfPasswordEncoding == CharsetEncoding.Unicode && !Regex.IsMatch(UnicodeCharset, unicodeRangePattern, RegexOptions.Singleline | RegexOptions.IgnoreCase | RegexOptions.Compiled)) { errorMsg = string.Format("Please check the charset format."); } else if (pdfPasswordEncoding == CharsetEncoding.Ascii && !Regex.IsMatch(UnicodeCharset, asciiUnicodeRangePattern, RegexOptions.Singleline | RegexOptions.IgnoreCase | RegexOptions.Compiled)) { errorMsg = string.Format("Pdf version only allows ASCII chars [0000 - 00FF]."); } if (errorMsg != string.Empty) { SetErrors("UnicodeCharset", new List <ValidationResult>() { new ValidationResult(false, errorMsg) }); } } if (IsValid) { if (PasswordEncoding == CharsetEncoding.Ascii) { InitializeAsciiCharset(); } else if (PasswordEncoding == CharsetEncoding.Unicode) { InitializeUnicodeCharset(); } InitializeIterator(); } return(base.IsValid ? Constants.Success : Constants.Failure); }