public ValidatePDFParameter GetValidatePDFParameter() { ValidatePDFParameter rtn = new ValidatePDFParameter(); //Outputpath is the checking 's original path. rtn.SetPDFCheckingDir(this.txtPDFCheckDir.Text.Trim()); rtn.SetVeraPDFPath(this.txtVerpadExcutePath.Text.Trim()); rtn.SetResultFilePath(this.txtVeraPDFResultFile.Text.Trim()); rtn.SetIsContainsSubFold(this.ckbPDFCheckSubFold.Checked); rtn.SetCheckIDNM(this.txtCheckIDNM.Text.Trim()); return(rtn); }
public ValidatePDF(CancellationTokenSource _tokenSource, ICloneable _threadParameter) : base(_tokenSource, _threadParameter) { if (this.ThreadParameter != null) { param = (ValidatePDFParameter)this.ThreadParameter; } IsDBConnectionAvailable = SystemConfiguration.GetValue("PDFValidating").Trim().ToLower() == "Database".ToLower()?true:false; if (IsDBConnectionAvailable) { InitCheckId(); } //amount = 0; }
/// <summary> /// recursive call by self /// </summary> /// <returns></returns> public override T RunSubThread(ICloneable thparam) { //judage if threading is cancelled. this.IsTaskCanceled(); ValidatePDFParameter param; if (thparam != null) { param = (ValidatePDFParameter)thparam; } else { return(default(T)); } DirectoryInfo originalFold = new DirectoryInfo(param.PDFCheckingDir); FileInfo[] OriginalFileList = originalFold.GetFiles("*.pdf"); foreach (var file in OriginalFileList) { //successamount++; //SuccessRecorder.Record(FormatHistory(successamount, file.DirectoryName,file.Name, file.Extension)); FormatLog(file, (Valid + Invalid + 1)); Files dbfile = new Files(); if (!IsNewCheck) { try { dbfile = filebll.GetFileByFullName(this.CheckID, file.FullName, this.ctx); if (dbfile.IsValid) { PrintIsValid(dbfile.IsValid); if (dbfile.IsValid) { Valid++; } else { Invalid++; } continue; } } catch { } } using (Process pr = new Process()) { //声明一个进程类对象 pr.StartInfo.FileName = "\"" + param.VeraPDFPath + "\""; pr.StartInfo.Arguments = " --format mrr \"" + file.FullName + "\" >\"" + param.ResultFilePath + "\""; pr.StartInfo.UseShellExecute = false; pr.StartInfo.CreateNoWindow = true; pr.Start(); pr.WaitForExit(); } bool isValid = VeraPDFResultAnalysis.ValidatePDF(param.ResultFilePath); PrintIsValid(isValid); if (isValid) { Valid++; } else { Invalid++; } //record result in db if (IsDBConnectionAvailable) { SaveCheckResultToDB(file, isValid); } else { // record to a file instead of db } } //if (IsDBConnectionAvailable) //{ // if(OriginalFileList.Length > 0) { // bool rtn = filebll.SaveChange(this.ctx); // if (!rtn) // { // this.SetDBConnectionUnvailable(); // } // } //} //update check 's total, valid,invalid UpdateTotal(Valid, Invalid); //recursive Sub Directory if (param.IsContainsSubFold) { foreach (DirectoryInfo dir in originalFold.GetDirectories()) { ValidatePDFParameter paramSub = (ValidatePDFParameter)param.Clone(); paramSub.SetPDFCheckingDir(dir.FullName); RunSubThread(paramSub); } } return(default(T)); }