Exemplo n.º 1
0
        private static int MinConfidence(AutoFormsRecognizeFormResult result)
        {
            var confidence = new List <int>();

            foreach (var formPage in result.FormPages)
            {
                foreach (var pageResultItem in formPage)
                {
                    var textField = pageResultItem as TextFormField;
                    var omrField  = pageResultItem as OmrFormField;

                    if (textField != null)
                    {
                        if (((TextFormFieldResult)textField.Result).Text != null)
                        {
                            confidence.Add(((TextFormFieldResult)textField.Result).AverageConfidence);
                        }
                    }

                    else if (omrField != null)
                    {
                        if (((OmrFormFieldResult)omrField.Result).Text != null)
                        {
                            confidence.Add(((OmrFormFieldResult)(omrField.Result)).AverageConfidence);
                        }
                    }
                }
            }

            var minconfidence = confidence.Min();

            return(minconfidence);
        }
Exemplo n.º 2
0
        public static AutoFormsRecognizeFormResult ProcessForms(String DirPath)
        {
            // string result = string.Empty; // Commented by Prasanta,
            AutoFormsRecognizeFormResult result = new AutoFormsRecognizeFormResult();

            //DirPath = GetEnvironmentVariable("LAT_FORM_HOME");

            if (DirPath == null)
            {
                //log.Warn("Set the LAT_FORM_HOME environment variable");
                //Console.WriteLine("Not Recognized");
            }

            //log.Debug("App started.");

            try
            {
                //var targetDocDropbox = Path.Combine(DirPath, "Input\\Dropbox");
                var      targetDocInput = Path.Combine(DirPath, "OCRInput\\1");
                string[] formNames      = Directory.GetFiles(targetDocInput).Select(Path.GetFileName).ToArray();
                //ProcessFiles(targetDocInput, formNames);
                result = ProcessFlow(formNames);

                var targetDocOutput = Path.Combine(DirPath, "Output\\FormNameandCount.csv");

                using (var outputStream = new FileStream(targetDocOutput, FileMode.Create))
                {
                    using (var writer = new StreamWriter(outputStream))
                    {
                        // writer.WriteLine("page number, field, type, result, confidence, x, y, width, heigth");
                        writer.WriteLine("Formname,Count");
                        {
                            foreach (var item in dictionary)
                            {
                                var value = (item.Key);
                                int count = (item.Value);

                                {
                                    // writer.WriteLine($"{formPage.PageNumber}, {textField.Name}, Text, {((TextFormFieldResult)textField.Result).Text?.Trim()}, {((TextFormFieldResult)textField.Result).AverageConfidence}");
                                    writer.WriteLine(string.Format("{0}, {1}", value, count));
                                    continue;
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                //log.Error(ex, "Fatal error");
                //Console.WriteLine("Not Recognized");
            }

            //log.Debug("App closing..");
            //Console.WriteLine(result);
            return(result);
            //Console.Read();
        }
        private static string PrintToString(AutoFormsRecognizeFormResult result)
        {
            string fieldname       = string.Empty;
            string fieldvalue      = "value,";
            string pagenumber      = "pagenumber,";
            string confidencevalue = "confidence,";
            string boundx          = "x,";
            string boundy          = "y,";
            string boundwidth      = "width,";
            string boundheight     = "height,";
            string tableinfo       = "";

            string ocrResult  = String.Empty;
            string openBrac   = "[[[";
            string closeBrac  = "]]]";
            string resDenoter = ":::";

            foreach (var formPage in result.FormPages)
            {
                foreach (var pageResultItem in formPage)
                {
                    var textField  = pageResultItem as TextFormField;
                    var omrField   = pageResultItem as OmrFormField;
                    var tablefield = pageResultItem as TableFormField;

                    if (textField != null)
                    {
                        ((TextFormFieldResult)textField.Result).Text = ((TextFormFieldResult)textField.Result).Text?.Replace(",", " ");
                        ((TextFormFieldResult)textField.Result).Text = ((TextFormFieldResult)textField.Result).Text?.Replace(System.Environment.NewLine, " ");
                        fieldname  = textField.Name;
                        fieldvalue = ((TextFormFieldResult)(textField.Result)).Text?.Trim();

                        ocrResult += openBrac + fieldname + resDenoter + fieldvalue + closeBrac;
                    }
                    else if (omrField != null)
                    {
                        if (((OmrFormFieldResult)(omrField.Result)).Text == "0")
                        {
                            ((OmrFormFieldResult)(omrField.Result)).Text = ((OmrFormFieldResult)(omrField.Result)).Text?.Replace("0", "False");
                        }
                        else

                        {
                            ((OmrFormFieldResult)(omrField.Result)).Text = ((OmrFormFieldResult)(omrField.Result)).Text?.Replace("1", "True");
                        }

                        fieldname  = omrField.Name;
                        fieldvalue = ((OmrFormFieldResult)(omrField.Result)).Text;

                        ocrResult += openBrac + fieldname + resDenoter + fieldvalue + closeBrac;
                    }
                }
            }
            return(ocrResult);
        }
        public string OCRInvoker_BPMSERVER()
        {
            string output  = "";
            string DirPath = GetEnvironmentVariable("SMART");
            AutoFormsRecognizeFormResult result = new AutoFormsRecognizeFormResult();

            //output = FormOcrWcf.Program.ProcessForms(DirPath);
            result = FormOcrWcf.Program.ProcessForms(DirPath);
            output = PrintToString(result);
            return(output);
        }
Exemplo n.º 5
0
 public List <VMFieldResult> GetFieldResult(AutoFormsRecognizeFormResult result)
 {
     if (result == null)
     {
         return(null);
     }
     try
     {
         List <VMFieldResult> _VMFieldResult = new List <VMFieldResult>();
         foreach (var formPage in result.FormPages)
         {
             if (formPage.Count > 0)
             {
                 foreach (var pageResultItem in formPage)
                 {
                     var textField  = pageResultItem as TextFormField;
                     var omrField   = pageResultItem as OmrFormField;
                     var tablefield = pageResultItem as TableFormField;
                     if (textField != null)
                     {
                         ((TextFormFieldResult)textField.Result).Text = ((TextFormFieldResult)textField.Result).Text?.Replace(",", " ");
                         ((TextFormFieldResult)textField.Result).Text = ((TextFormFieldResult)textField.Result).Text?.Replace(System.Environment.NewLine, " ");
                         _VMFieldResult.Add(new VMFieldResult(textField.Name, ((TextFormFieldResult)(textField.Result)).Text?.Trim()));
                     }
                     else if (omrField != null)
                     {
                         if (((OmrFormFieldResult)(omrField.Result)).Text == "0")
                         {
                             ((OmrFormFieldResult)(omrField.Result)).Text = ((OmrFormFieldResult)(omrField.Result)).Text?.Replace("0", "False");
                         }
                         else
                         {
                             ((OmrFormFieldResult)(omrField.Result)).Text = ((OmrFormFieldResult)(omrField.Result)).Text?.Replace("1", "True");
                         }
                         _VMFieldResult.Add(new VMFieldResult(omrField.Name, ((OmrFormFieldResult)(omrField.Result)).Text));
                     }
                 }
             }
         }
         return(_VMFieldResult);
     }
     catch (Exception err)
     {
         return(null);
     }
 }
Exemplo n.º 6
0
        // commented because we are now building this as a dll - Murali

        /*
         * public static void Main(string [] args )
         * {
         *  string result = string.Empty;
         *
         *  //log.Warn("entered the main funtion");
         *  var handle = GetConsoleWindow();
         *
         *  // Hide
         * // ShowWindow(handle, SW_HIDE);
         *
         *  string DirPath = GetEnvironmentVariable("LAT_FORM_HOME");
         *
         *  if (DirPath == null)
         *  {
         *      //log.Warn("Set the LAT_FORM_HOME environment variable");
         *      Console.WriteLine("Not Recognized");
         *  }
         *
         *  //log.Debug("App started.");
         *
         *  try
         *  {
         *      //var targetDocDropbox = Path.Combine(DirPath, "Input\\Dropbox");
         *      var targetDocInput = Path.Combine(DirPath, "OCRInput");
         *      string[] formNames = Directory.GetFiles(targetDocInput).Select(Path.GetFileName).ToArray();
         *      //ProcessFiles(targetDocInput, formNames);
         *      result =ProcessFlow(formNames);
         *
         *      var targetDocOutput = Path.Combine(DirPath, "Output\\FormNameandCount.csv");
         *
         *      using (var outputStream = new FileStream(targetDocOutput, FileMode.Create))
         *      {
         *          using (var writer = new StreamWriter(outputStream))
         *          {
         *              // writer.WriteLine("page number, field, type, result, confidence, x, y, width, heigth");
         *              writer.WriteLine("Formname,Count");
         *              {
         *                  foreach (var item in dictionary)
         *                  {
         *                      var value = (item.Key);
         *                      int count = (item.Value);
         *
         *                      {
         *                          // writer.WriteLine($"{formPage.PageNumber}, {textField.Name}, Text, {((TextFormFieldResult)textField.Result).Text?.Trim()}, {((TextFormFieldResult)textField.Result).AverageConfidence}");
         *                          writer.WriteLine(string.Format("{0}, {1}", value, count));
         *                          continue;
         *                      }
         *                  }
         *              }
         *          }
         *      }
         *
         *
         *  }
         *  catch (Exception ex)
         *  {
         *      //log.Error(ex, "Fatal error");
         *      Console.WriteLine("Not Recognized");
         *  }
         *
         *  //log.Debug("App closing..");
         *  Console.WriteLine(result);
         *  //Console.Read();
         * }
         */

        public static AutoFormsRecognizeFormResult ProcessFlow(string[] formNames)
        {
            //string result = string.Empty;//Commented by Prasanta
            AutoFormsRecognizeFormResult result = new AutoFormsRecognizeFormResult();

            //log.Warn("entered the main funtion");
            var handle = GetConsoleWindow();

            // Hide
            // ShowWindow(handle, SW_HIDE);

            string DirPath = GetEnvironmentVariable("LAT_FORM_HOME");

            if (DirPath == null)
            {
                //log.Warn("Set the LAT_FORM_HOME environment variable");
                Console.WriteLine("Not Recognized");
            }

            //log.Debug("App started.");

            try
            {
                //var targetDocDropbox = Path.Combine(DirPath, "Input\\Dropbox");
                var targetDocInput = Path.Combine(DirPath, "OCRInput");

                result = ProcessFiles(targetDocInput, formNames);

                var targetDocOutput = Path.Combine(DirPath, "OCROutput\\FormNameandCount.csv");
            }
            catch (Exception ex)
            {
                //log.Error(ex, "Fatal error");
                Console.WriteLine("Not Recognized");
            }

            //log.Debug("App closing..");

            return(result);
        }
        public string GetResultInXML()
        {
            long   runID;
            string str = string.Empty;

            using (DBEntities context = new DBEntities())
            {
                IEnumerable <RunResult> details = context.Database.SqlQuery
                                                  <RunResult>("exec proc_APICallHistory_GetRunID").ToList();
                runID = Convert.ToInt64(details.FirstOrDefault().RunID);
            }
            try
            {
                #region Entry into APICallHistory


                APICallHistory apiCallHstStart = new APICallHistory();

                apiCallHstStart.RunID   = Convert.ToInt64(runID);
                apiCallHstStart.RunTime = DateTime.Now;
                apiCallHstStart.Comment = "Call For XML";
                apiCallHstStart.Status  = "START";
                using (DBEntities db = new DBEntities())
                {
                    db.APICallHistories.Add(apiCallHstStart);
                    db.SaveChanges();
                }
                #endregion


                string DirPath = GetEnvironmentVariable("SMART");
                AutoFormsRecognizeFormResult result = new AutoFormsRecognizeFormResult();
                DataTable dtOutput = new DataTable();
                result   = FormOcrWcf.Program.ProcessForms(DirPath);
                dtOutput = ResultToDataTable(result);

                dtOutput.TableName = "LateetudRuleApplication";
                str = ConvertDatatableToXML(dtOutput);
                #region End Entry into APICallHistory
                //APICallHistory apiCallHstStart = new APICallHistory();

                apiCallHstStart.RunID   = Convert.ToInt64(runID);
                apiCallHstStart.RunTime = DateTime.Now;
                apiCallHstStart.Comment = "Call For XML";
                apiCallHstStart.Status  = "END";
                using (DBEntities db = new DBEntities())
                {
                    db.APICallHistories.Add(apiCallHstStart);
                    db.SaveChanges();
                }
                #endregion

                #region Entry into Summary
                MasterFormApplicationSummary applicationSummary = new MasterFormApplicationSummary();

                foreach (DataRow row in dtOutput.Rows)
                {
                    applicationSummary.RunID      = Convert.ToInt64(runID);
                    applicationSummary.EntryDate  = DateTime.Now;
                    applicationSummary.FieldKey   = Convert.ToString(row["FieldName"]);
                    applicationSummary.FieldValue = Convert.ToString(row["FieldValue"]);
                    using (DBEntities db = new DBEntities())
                    {
                        db.MasterFormApplicationSummaries.Add(applicationSummary);
                        db.SaveChanges();
                    }
                }

                #endregion
            }
            catch (Exception ex)
            {
                #region Error Log
                ExceptionLog log = new ExceptionLog();
                log.ErrorTime    = DateTime.Now;
                log.ErrorMessage = Convert.ToString(ex.Message);
                log.Comments     = "Error at Call For XML Method for Run ID: " + runID + "";

                using (DBEntities db = new DBEntities())
                {
                    db.ExceptionLogs.Add(log);
                    db.SaveChanges();
                }

                #endregion

                WriteToFile("RuleEngine Error on: {0} " + ex.Message + ex.StackTrace);
            }
            return(str);
        }
        private static DataTable ResultToDataTable(AutoFormsRecognizeFormResult result)
        {
            string fieldname       = string.Empty;
            string fieldvalue      = "value,";
            string pagenumber      = "pagenumber,";
            string confidencevalue = "confidence,";
            string boundx          = "x,";
            string boundy          = "y,";
            string boundwidth      = "width,";
            string boundheight     = "height,";
            string tableinfo       = "";

            //string ocrResult = String.Empty;
            //string openBrac = "[[[";
            //string closeBrac = "]]]";
            //string resDenoter = ":::";

            DataTable dtResult = new DataTable("Result");

            dtResult.Columns.Add("FieldName", typeof(string));
            dtResult.Columns.Add("FieldValue", typeof(string));

            foreach (var formPage in result.FormPages)
            {
                foreach (var pageResultItem in formPage)
                {
                    var textField  = pageResultItem as TextFormField;
                    var omrField   = pageResultItem as OmrFormField;
                    var tablefield = pageResultItem as TableFormField;

                    if (textField != null)
                    {
                        ((TextFormFieldResult)textField.Result).Text = ((TextFormFieldResult)textField.Result).Text?.Replace(",", " ");
                        ((TextFormFieldResult)textField.Result).Text = ((TextFormFieldResult)textField.Result).Text?.Replace(System.Environment.NewLine, " ");
                        fieldname  = textField.Name;
                        fieldvalue = ((TextFormFieldResult)(textField.Result)).Text?.Trim();

                        DataRow dr = dtResult.NewRow();
                        dr["FieldName"]  = fieldname;
                        dr["FieldValue"] = fieldvalue;
                        dtResult.Rows.Add(dr);
                        //ocrResult += openBrac + fieldname + resDenoter + fieldvalue + closeBrac;
                    }
                    else if (omrField != null)
                    {
                        if (((OmrFormFieldResult)(omrField.Result)).Text == "0")
                        {
                            ((OmrFormFieldResult)(omrField.Result)).Text = ((OmrFormFieldResult)(omrField.Result)).Text?.Replace("0", "False");
                        }
                        else

                        {
                            ((OmrFormFieldResult)(omrField.Result)).Text = ((OmrFormFieldResult)(omrField.Result)).Text?.Replace("1", "True");
                        }

                        fieldname  = omrField.Name;
                        fieldvalue = ((OmrFormFieldResult)(omrField.Result)).Text;

                        //ocrResult += openBrac + fieldname + resDenoter + fieldvalue + closeBrac;
                        DataRow dr = dtResult.NewRow();
                        dr["FieldName"]  = fieldname;
                        dr["FieldValue"] = fieldvalue;
                        dtResult.Rows.Add(dr);
                    }
                }
            }
            return(dtResult);
        }
Exemplo n.º 9
0
        //Table region is not added
        public static string PrintToString(AutoFormsRecognizeFormResult result)
        {
            string fieldname       = string.Empty;
            string fieldvalue      = "value,";
            string pagenumber      = "pagenumber,";
            string confidencevalue = "confidence,";
            string boundx          = "x,";
            string boundy          = "y,";
            string boundwidth      = "width,";
            string boundheight     = "height,";
            string tableinfo       = "";

            string ocrResult  = String.Empty;
            string openBrac   = "[[[";
            string closeBrac  = "]]]";
            string resDenoter = ":::";

            foreach (var formPage in result.FormPages)
            {
                foreach (var pageResultItem in formPage)
                {
                    var textField  = pageResultItem as TextFormField;
                    var omrField   = pageResultItem as OmrFormField;
                    var tablefield = pageResultItem as TableFormField;

                    // confidence.Add(((TextFormFieldResult)textField.Result).AverageConfidence);
                    if (textField != null)
                    {
                        //  if (((TextFormFieldResult)textField.Result).AverageConfidence < 60)

                        ((TextFormFieldResult)textField.Result).Text = ((TextFormFieldResult)textField.Result).Text?.Replace(",", " ");
                        ((TextFormFieldResult)textField.Result).Text = ((TextFormFieldResult)textField.Result).Text?.Replace(System.Environment.NewLine, " ");
                        //MM
                        //writer.WriteLine($"{textField.Name}, {((TextFormFieldResult)textField.Result).Text?.Trim()}, {((TextFormFieldResult)textField.Result).AverageConfidence}, {textField.Bounds.X}, {textField.Bounds.Y}, {textField.Bounds.Width}, {textField.Bounds.Height}");
                        fieldname  = textField.Name;
                        fieldvalue = ((TextFormFieldResult)(textField.Result)).Text?.Trim();

                        ocrResult += openBrac + fieldname + resDenoter + fieldvalue + closeBrac;

                        /*
                         * pagenumber += (formPage.PageNumber) + ",";
                         * confidencevalue += ((TextFormFieldResult)textField.Result).AverageConfidence + ",";
                         * boundx += textField.Bounds.X + ",";
                         * boundy += textField.Bounds.Y + ",";
                         * boundwidth += textField.Bounds.Width + ",";
                         * boundheight += textField.Bounds.Height + ",";
                         */
                    }
                    else if (omrField != null)
                    {
                        if (((OmrFormFieldResult)(omrField.Result)).Text == "0")
                        {
                            ((OmrFormFieldResult)(omrField.Result)).Text = ((OmrFormFieldResult)(omrField.Result)).Text?.Replace("0", "False");
                        }
                        else

                        {
                            ((OmrFormFieldResult)(omrField.Result)).Text = ((OmrFormFieldResult)(omrField.Result)).Text?.Replace("1", "True");
                        }

                        //MM
                        //writer.WriteLine($"{omrField.Name},{((OmrFormFieldResult)omrField.Result).Text}, {((OmrFormFieldResult)omrField.Result).AverageConfidence}, {omrField.Bounds.X}, {omrField.Bounds.Y}, {omrField.Bounds.Width}, {omrField.Bounds.Height}");
                        fieldname  = omrField.Name;
                        fieldvalue = ((OmrFormFieldResult)(omrField.Result)).Text;

                        /*
                         * pagenumber += (formPage.PageNumber) + ",";
                         * confidencevalue += ((OmrFormFieldResult)(omrField.Result)).AverageConfidence + ",";
                         * boundx += omrField.Bounds.X + ",";
                         * boundy += omrField.Bounds.Y + ",";
                         * boundwidth += omrField.Bounds.Width + ",";
                         * boundheight += omrField.Bounds.Height + ",";
                         */
                        ocrResult += openBrac + fieldname + resDenoter + fieldvalue + closeBrac;
                    }
                }
            }
            return(ocrResult);
        }
Exemplo n.º 10
0
        public static void PrintToCSV(string resultPath, AutoFormsRecognizeFormResult result, string formName)
        {
            string fieldname       = "field,";
            string fieldvalue      = "value,";
            string pagenumber      = "pagenumber,";
            string confidencevalue = "confidence,";
            string boundx          = "x,";
            string boundy          = "y,";
            string boundwidth      = "width,";
            string boundheight     = "height,";
            string tableinfo       = "";

            using (var outputStream = new FileStream(resultPath, FileMode.Create))
            {
                using (var writer = new StreamWriter(outputStream))
                {
                    foreach (var formPage in result.FormPages)
                    {
                        foreach (var pageResultItem in formPage)
                        {
                            var textField  = pageResultItem as TextFormField;
                            var omrField   = pageResultItem as OmrFormField;
                            var tablefield = pageResultItem as TableFormField;

                            // confidence.Add(((TextFormFieldResult)textField.Result).AverageConfidence);
                            if (textField != null)
                            {
                                //  if (((TextFormFieldResult)textField.Result).AverageConfidence < 60)

                                ((TextFormFieldResult)textField.Result).Text = ((TextFormFieldResult)textField.Result).Text?.Replace(",", " ");
                                ((TextFormFieldResult)textField.Result).Text = ((TextFormFieldResult)textField.Result).Text?.Replace(System.Environment.NewLine, " ");
                                //MM
                                //writer.WriteLine($"{textField.Name}, {((TextFormFieldResult)textField.Result).Text?.Trim()}, {((TextFormFieldResult)textField.Result).AverageConfidence}, {textField.Bounds.X}, {textField.Bounds.Y}, {textField.Bounds.Width}, {textField.Bounds.Height}");
                                fieldname       += textField.Name + ",";
                                fieldvalue      += ((TextFormFieldResult)(textField.Result)).Text?.Trim() + ",";
                                pagenumber      += (formPage.PageNumber) + ",";
                                confidencevalue += ((TextFormFieldResult)textField.Result).AverageConfidence + ",";
                                boundx          += textField.Bounds.X + ",";
                                boundy          += textField.Bounds.Y + ",";
                                boundwidth      += textField.Bounds.Width + ",";
                                boundheight     += textField.Bounds.Height + ",";
                            }
                            else if (omrField != null)
                            {
                                if (((OmrFormFieldResult)(omrField.Result)).Text == "0")
                                {
                                    ((OmrFormFieldResult)(omrField.Result)).Text = ((OmrFormFieldResult)(omrField.Result)).Text?.Replace("0", "False");
                                }
                                else

                                {
                                    ((OmrFormFieldResult)(omrField.Result)).Text = ((OmrFormFieldResult)(omrField.Result)).Text?.Replace("1", "True");
                                }

                                //MM
                                //writer.WriteLine($"{omrField.Name},{((OmrFormFieldResult)omrField.Result).Text}, {((OmrFormFieldResult)omrField.Result).AverageConfidence}, {omrField.Bounds.X}, {omrField.Bounds.Y}, {omrField.Bounds.Width}, {omrField.Bounds.Height}");
                                fieldname       += omrField.Name + ",";
                                fieldvalue      += ((OmrFormFieldResult)(omrField.Result)).Text + ",";
                                pagenumber      += (formPage.PageNumber) + ",";
                                confidencevalue += ((OmrFormFieldResult)(omrField.Result)).AverageConfidence + ",";
                                boundx          += omrField.Bounds.X + ",";
                                boundy          += omrField.Bounds.Y + ",";
                                boundwidth      += omrField.Bounds.Width + ",";
                                boundheight     += omrField.Bounds.Height + ",";
                            }

                            else if (tablefield != null)
                            {
                                TableFormFieldResult results = tablefield.Result as TableFormFieldResult;

                                if (results != null)
                                {
                                    for (int i = 0; i < results.Rows.Count; i++)
                                    {
                                        TableFormRow row = results.Rows[i];
                                        // tableinfo += tableinfo + row;

                                        for (int j = 0; j < row.Fields.Count; j++)
                                        {
                                            OcrFormField ocrField = row.Fields[j];
                                            if (ocrField is TextFormField)
                                            {
                                                TextFormFieldResult txtResults = ocrField.Result as TextFormFieldResult;
                                                tableinfo += txtResults.Text;
                                            }
                                            else if (ocrField is OmrFormField)
                                            {
                                                OmrFormFieldResult omrResults = ocrField.Result as OmrFormFieldResult;
                                                tableinfo += omrResults.Text;
                                                //tableinfo += ocrField;
                                            }
                                        }
                                    }
                                }
                                File.WriteAllText(@"C: \Users\Public\Lateetud\string.txt", tableinfo);
                            }
                        }
                    }

                    writer.WriteLine(fieldname);
                    writer.WriteLine(fieldvalue);
                    writer.WriteLine(pagenumber);
                    writer.WriteLine(confidencevalue);
                    writer.WriteLine(boundx);
                    writer.WriteLine(boundy);
                    writer.WriteLine(boundwidth);
                    writer.WriteLine(boundheight);
                }
            }
        }
Exemplo n.º 11
0
        public static AutoFormsRecognizeFormResult ProcessFiles(string documentsPath, string[] formNames)
        {
            AutoFormsRecognizeFormResult result = new AutoFormsRecognizeFormResult(); // Added By Prasanta, string will be handled in srevice
            string ocrOutput = String.Empty;
            var    dirPath   = GetEnvironmentVariable("LAT_FORM_HOME");               // Home directory path
                                                                                      // var defaultLicenseFile = Path.Combine(dirPath, "License\\Lateetud_License.lic");
                                                                                      // var defaultLicenseKeyFile = Path.Combine(dirPath, "License\\Lateetud_License.lic.key");
            var defaultLicenseFile    = Path.Combine("C:\\LEADTOOLS 20\\Common", "License\\LEADTOOLS.lic");
            var defaultLicenseKeyFile = Path.Combine("C:\\LEADTOOLS 20\\Common", "License\\LEADTOOLS.lic.key");

            SetLicense(true);
            var value    = 0;
            var tifFiles = Directory.GetFiles(documentsPath, "*.*", SearchOption.AllDirectories).Where(file => (file.ToLower().EndsWith("pdf") || file.ToLower().EndsWith("tiff") || file.ToLower().EndsWith("tif"))).ToArray();

            //filter forms with sent formNames
            if (formNames.Length > 0)
            {
                tifFiles = tifFiles.Where(file => formNames.Any(tf => String.Equals(tf, Path.GetFileName(file), StringComparison.InvariantCultureIgnoreCase))).ToArray();
            }

            //var DirPath = @"C:\Users\Public\Lateetud Form Recognizer";
            var masterPath   = Path.Combine(dirPath, "OCRMasterFormSets");
            var notFoundPath = Path.Combine(dirPath, "OCRNotRecognized");

            OcrEngineType engineType;

            if (!Enum.TryParse(EngineType, true, out engineType))
            {
                // log.Error(string.Format("Unknown engine type [{0}]", EngineType));
                Console.WriteLine("Not Recognized");
            }

            foreach (var fileToProcess in tifFiles)
            {
                //  var documentResult = new OcrDocumentResult();
                // documentResult.DocumentName = Path.GetFileName(fileToProcess);
                //   output.DocumentsOcrReport.Add(documentResult);

                using (var rApi = new FormAutoRecognitionApi(masterPath, engineType, defaultLicenseFile, File.ReadAllText(defaultLicenseKeyFile)))
                {
                    var targetDocPath = Path.Combine(documentsPath, fileToProcess);
                    var filename      = Path.GetFileName(targetDocPath);
                    var newFilename   = Path.GetFileNameWithoutExtension(targetDocPath) + "_" + DateTime.Now.Ticks + Path.GetExtension(targetDocPath); //Added By Prasanta
                    //AutoFormsRecognizeFormResult result = rApi.ProcessForm(targetDocPath);// Commented By Prasanta, string will be handled in srevice
                    result = rApi.ProcessForm(targetDocPath);
                    if (result != null)
                    {
                        string outputPath = Path.Combine(dirPath, "OCROutput");

                        var formName    = result.Properties.Name; // This is the Master Form Name
                        var csvFileName = Path.GetFileNameWithoutExtension(filename);
                        var extension   = Path.GetExtension(filename);
                        //var targetDirPath = Path.Combine(dirPath, "Output", outputFolderName, formName);
                        //var csvtargetPath = Path.Combine(targetDirPath, csvFileName);

                        // See whether Dictionary contains this string.
                        if (dictionary.ContainsKey(formName))
                        {
                            dictionary[formName]++;
                        }
                        else
                        {
                            dictionary.Add(formName, 1);
                        }

                        if (!Directory.Exists(outputPath))
                        {
                            Directory.CreateDirectory(outputPath);
                        }
                        //var timestamp = DateTime.Now.ToString("yyyyMMddHHmmssfff");
                        //var reNameFile = Path.Combine(csvtargetPath + "_" + timestamp + extension);

                        //File.Copy(targetDocPath, Path.Combine(outputPath, filename));// Commented By Prasanta, To rename the old file with timestamp
                        File.Copy(targetDocPath, Path.Combine(outputPath, newFilename));// Added By Prasanta

                        // PrintToCSV(csvtargetPath + "_" + timestamp + ".csv", result, formName);
                        //ocrOutput = PrintToString(result);// Commented By Prasanta, string will be handled in srevice

                        //log.Info("Done!");
                    }
                    else
                    {
                        if (!Directory.Exists(notFoundPath))
                        {
                            Directory.CreateDirectory(notFoundPath);
                        }

                        if (dictionary.ContainsKey("Not Recognized"))
                        {
                            dictionary["Not Recognized"]++;
                        }

                        else
                        {
                            dictionary.Add("Not Recognized", 1);
                        }

                        var filenotfound = Path.Combine(notFoundPath, filename);

                        // File.Copy(targetDocPath, filenotfound, true);
                        // log.Warn("No result found");
                        Console.WriteLine("Not Recognized");
                    }
                }
            }
            //return ocrOutput;// Commented By Prasanta, string will be handled in srevice
            return(result);
        }
Exemplo n.º 12
0
        public VMProcessResult ProcessFiles(string FileOrDir)
        {
            try
            {
                string[] _files = null;
                if (string.IsNullOrEmpty(FileOrDir))
                {
                    _files = Directory.GetFiles(Path.Combine(LibUtilities.TheEnvironmentVariablePath, TheEnvVarSubDir.OCRInput), "*.*", SearchOption.AllDirectories)
                             .Where(f => (f.ToLower().EndsWith("pdf") || f.ToLower().EndsWith("tiff") || f.ToLower().EndsWith("tif")))
                             .ToArray();
                }
                else
                {
                    if (Path.HasExtension(FileOrDir))
                    {
                        _files = Directory.GetFiles(Path.Combine(LibUtilities.TheEnvironmentVariablePath, TheEnvVarSubDir.OCRInput), "*.*", SearchOption.AllDirectories)
                                 .Where(f => Path.GetFileName(f.ToLower()).Equals(FileOrDir.ToLower()))
                                 .ToArray();
                    }
                    else
                    {
                        _files = Directory.GetFiles(Path.Combine(Path.Combine(LibUtilities.TheEnvironmentVariablePath, TheEnvVarSubDir.OCRInput), FileOrDir), "*.*", SearchOption.AllDirectories)
                                 .Where(f => (f.ToLower().EndsWith("pdf") || f.ToLower().EndsWith("tiff") || f.ToLower().EndsWith("tif")))
                                 .ToArray();
                    }
                }
                if (_files == null)
                {
                    return(null);
                }

                List <VMFileResult> _VMFileResult = new List <VMFileResult>();
                foreach (var _file in _files)
                {
                    VMFileResult vMFileResult = new VMFileResult(Path.GetFileName(_file));
                    var          _NewFileName = Path.GetFileNameWithoutExtension(_file) + "_" + DateTime.Now.Ticks + Path.GetExtension(_file);

                    AutoFormsRecognizeFormResult _result = this.ProcessForm(_file);
                    if (_result == null)
                    {
                        vMFileResult.FieldResult = null;
                        vMFileResult.Status      = "Not Recognized";
                        File.Copy(_file, Path.Combine(Path.Combine(LibUtilities.TheEnvironmentVariablePath, TheEnvVarSubDir.OCRNotRecognized), _NewFileName), true);
                    }
                    else
                    {
                        vMFileResult.FieldResult = this.GetFieldResult(_result);
                        if (vMFileResult.FieldResult == null || vMFileResult.FieldResult.Count == 0)
                        {
                            vMFileResult.Status = "Not Recognized";
                            File.Copy(_file, Path.Combine(Path.Combine(LibUtilities.TheEnvironmentVariablePath, TheEnvVarSubDir.OCRNotRecognized), _NewFileName), true);
                        }
                        else
                        {
                            vMFileResult.Status = "Successfully Recognized";
                            File.Copy(_file, Path.Combine(Path.Combine(LibUtilities.TheEnvironmentVariablePath, TheEnvVarSubDir.OCROutput), _NewFileName));
                        }
                    }
                    _VMFileResult.Add(vMFileResult);
                }
                return(new VMProcessResult(_VMFileResult));
            }
            catch (Exception err)
            {
                return(null);
            }
        }