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); } } }
public DetailedTableResults(TableFormField table) { _table = table; InitializeComponent(); _tableResults.DefaultCellStyle.WrapMode = DataGridViewTriState.True; _tableResults.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells; foreach (TableColumn column in _table.Columns) { int index = _tableResults.Columns.Add(column.OcrField.Name, column.OcrField.Name); if (column.Alignment == FieldAlignment.Left) { _tableResults.Columns[index].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft; } else if (column.Alignment == FieldAlignment.Right) { _tableResults.Columns[index].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; } else if (column.Alignment == FieldAlignment.Center) { _tableResults.Columns[index].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; } } TableFormFieldResult results = table.Result as TableFormFieldResult; if (results != null) { for (int i = 0; i < results.Rows.Count; i++) { TableFormRow row = results.Rows[i]; _tableResults.Rows.Add(); int lineCounter = 1; for (int j = 0; j < row.Fields.Count; j++) { OcrFormField ocrField = row.Fields[j]; if (ocrField is TextFormField) { TextFormFieldResult txtResults = ocrField.Result as TextFormFieldResult; _tableResults.Rows[i].Cells[j].Value = txtResults.Text; int counter = 1; if (txtResults.Text != null) { counter += CountCharacterInString(txtResults.Text, '\n'); } if (counter > lineCounter) { lineCounter = counter; } _tableResults.Rows[i].Cells[j].Tag = ocrField; } else if (ocrField is OmrFormField) { OmrFormFieldResult omrResults = ocrField.Result as OmrFormFieldResult; _tableResults.Rows[i].Cells[j].Value = omrResults.Text; _tableResults.Rows[i].Cells[j].Tag = ocrField; } } _tableResults.Rows[i].Height *= lineCounter; } } }