public TableRulesForm(TableFormField tableFormField) { InitializeComponent(); _tableFormField = tableFormField; _oldTableRules = tableFormField.Rules; RulesChanged = false; UpdateUI(); }
private void _fieldResults_MouseDoubleClick(object sender, MouseEventArgs e) { try { if (_fieldResults.Rows.Count > 0 && _fieldResults.SelectedRows.Count == 1) { int formIndex = _cmbSelectedForm.SelectedIndex; int pageIndex = _cmbSelectedPage.SelectedIndex; int fieldIndex = _fieldResults.SelectedRows[0].Index; if (_filledForms[formIndex].ProcessingPages[pageIndex][fieldIndex] is TextFormField || _filledForms[formIndex].ProcessingPages[pageIndex][fieldIndex] is OmrFormField || _filledForms[formIndex].ProcessingPages[pageIndex][fieldIndex] is UnStructuredTextFormField #if LEADTOOLS_V20_OR_LATER || _filledForms[formIndex].ProcessingPages[pageIndex][fieldIndex] is OmrAnswerAreaField) #else ) #endif //#if LEADTOOLS_V20_OR_LATER { DetailedCharacterResults detailedResultsdialog = new DetailedCharacterResults(_filledForms[formIndex].ProcessingPages[pageIndex][fieldIndex]); detailedResultsdialog.ShowDialog(this); } else if (_filledForms[formIndex].ProcessingPages[pageIndex][fieldIndex] is TableFormField) { TableFormField tableField = _filledForms[formIndex].ProcessingPages[pageIndex][fieldIndex] as TableFormField; if (tableField.Result.Status == FormFieldStatus.Success) { DetailedTableResults detailedResultsdialog = new DetailedTableResults(_filledForms[formIndex].ProcessingPages[pageIndex][fieldIndex] as TableFormField); detailedResultsdialog.ShowDialog(this); } else { MessageBox.Show(DemosGlobalization.GetResxString(GetType(), "Resx_FailedRecognize")); } } } }
private void _cmbSelectedPage_SelectedIndexChanged(object sender, EventArgs e) { try { if (_filledFormViewer.Image != null) { _filledFormViewer.Image.Dispose(); } //If the user chose to only recognize the first page, there will only be a recognition confidence value for the first page if (_filledForms[_cmbSelectedForm.SelectedIndex].Result.PageResults.Count < _cmbSelectedPage.Items.Count) { _txtPageConfidence.Enabled = false; _txtPageConfidence.Text = ""; } else { _txtPageConfidence.Enabled = true; _txtPageConfidence.Text = _filledForms[_cmbSelectedForm.SelectedIndex].Result.PageResults[_cmbSelectedPage.SelectedIndex].Confidence.ToString() + "%"; } _filledForms[_cmbSelectedForm.SelectedIndex].Image.Page = _cmbSelectedPage.SelectedIndex + 1; _filledFormViewer.Image = _filledForms[_cmbSelectedForm.SelectedIndex].Image.Clone(); _fieldResults.Rows.Clear(); if (_filledForms[_cmbSelectedForm.SelectedIndex].ProcessingPages != null && _filledForms[_cmbSelectedForm.SelectedIndex].ProcessingPages.Count > _cmbSelectedPage.SelectedIndex) { foreach (FormField field in _filledForms[_cmbSelectedForm.SelectedIndex].ProcessingPages[_cmbSelectedPage.SelectedIndex]) { string[] row = new string[5]; row[0] = field.Name; LeadRect alignedBounds = LeadRect.Empty; if (field is TableFormField) { TableFormField tableField = field as TableFormField; int pageIndex = Math.Max(tableField.ExpectedPages.IndexOf(_cmbSelectedPage.SelectedIndex), _cmbSelectedPage.SelectedIndex); if (tableField.PagesBounds.ContainsKey(pageIndex)) { alignedBounds = tableField.PagesBounds[pageIndex]; } else { alignedBounds = LeadRect.Empty; } } else if (field is UnStructuredTextFormField) { alignedBounds = field.Bounds; } else if (field is OmrFormField) { alignedBounds = _filledForms[_cmbSelectedForm.SelectedIndex].Alignment[field.MasterPageNumber - 1].AlignOmrRectangle(field.Bounds); } else { alignedBounds = _filledForms[_cmbSelectedForm.SelectedIndex].Alignment[field.MasterPageNumber - 1].AlignRectangle(field.Bounds); } row[4] = alignedBounds.ToString(); bool bAdded = true; if (field.Result != null) { if (field is TextFormField) { row[1] = "Text"; row[2] = ((field as TextFormField).Result as TextFormFieldResult).Text; row[3] = ((field as TextFormField).Result as TextFormFieldResult).AverageConfidence.ToString(); } else if (field is UnStructuredTextFormField) { row[1] = "Unstructured Text"; row[2] = ((field as UnStructuredTextFormField).Result as TextFormFieldResult).Text; row[3] = ((field as UnStructuredTextFormField).Result as TextFormFieldResult).AverageConfidence.ToString(); } else if (field is OmrFormField) { row[1] = "Omr"; row[2] = ((field as OmrFormField).Result as OmrFormFieldResult).Text; row[3] = ((field as OmrFormField).Result as OmrFormFieldResult).AverageConfidence.ToString(); } else if (field is BarcodeFormField) { row[1] = "Barcode"; for (int i = 0; i < ((field as BarcodeFormField).Result as BarcodeFormFieldResult).BarcodeData.Count; i++) { row[2] = GetDataString(((field as BarcodeFormField).Result as BarcodeFormFieldResult).BarcodeData[i].GetData()); } row[3] = "N/A"; } else if (field is ImageFormField) { row[1] = "Image"; row[2] = "N/A"; row[3] = "N/A"; } else if (field is TableFormField) { row[1] = "Table"; row[2] = "Double click here to view the results..."; row[3] = "N/A"; } else if (field is SingleSelectionField) { row[1] = "SingleSelection"; row[2] = ((field as SingleSelectionField).Result as OmrFormFieldResult).Text; row[3] = ((field as SingleSelectionField).Result as OmrFormFieldResult).AverageConfidence.ToString(); } else if (field is BubbleWordField) { row[1] = "BubbleWord"; row[2] = ((field as BubbleWordField).Result as OmrFormFieldResult).Text; row[3] = ((field as BubbleWordField).Result as OmrFormFieldResult).AverageConfidence.ToString(); } #if LEADTOOLS_V20_OR_LATER else if (field is OmrAnswerAreaField) { row[1] = "OmrAnswerAreaField"; row[2] = ((field as OmrAnswerAreaField).Result as OmrFormFieldResult).Text; row[3] = ((field as OmrAnswerAreaField).Result as OmrFormFieldResult).AverageConfidence.ToString(); } else if (field is OmrDateField) { row[1] = "OmrDateField"; row[2] = ((field as OmrDateField).Result as OmrFormFieldResult).Text; row[3] = ((field as OmrDateField).Result as OmrFormFieldResult).AverageConfidence.ToString(); } #endif //#if LEADTOOLS_V20_OR_LATER } if (bAdded) { _fieldResults.Rows.Add(row); } if (field is TableFormField) { _fieldResults.Rows[_fieldResults.Rows.Count - 1].Cells[2].Style.ForeColor = Color.Blue; } } if (_fieldResults.Rows.Count > 0) { _fieldResults.Rows[0].Selected = true; } } UpdateControls(); } catch (Exception exp) { Messager.ShowError(this, exp); } }
private void _fieldResults_SelectionChanged(object sender, EventArgs e) { try { //clear annotations automation.SelectObjects(null); automation.Container.Children.Clear(); if (_fieldResults.Rows.Count > 0 && _fieldResults.SelectedRows.Count > 0) { if (_fieldViewer.Image != null) { _fieldViewer.Image.Dispose(); } int formIndex = _cmbSelectedForm.SelectedIndex; int pageIndex = _cmbSelectedPage.SelectedIndex; int fieldIndex = _fieldResults.SelectedRows[0].Index; _filledForms[_cmbSelectedForm.SelectedIndex].Image.Page = _cmbSelectedPage.SelectedIndex + 1; LeadRect tempRect = LeadRect.Empty; FormField field = _filledForms[formIndex].ProcessingPages[pageIndex][fieldIndex]; if (field is TableFormField) { TableFormField tableField = field as TableFormField; int expectedPageIndex = -1; if (tableField.ExpectedPages.Contains(pageIndex)) { expectedPageIndex = tableField.ExpectedPages.IndexOf(pageIndex); } expectedPageIndex = Math.Max(expectedPageIndex, pageIndex); if (tableField.PagesBounds.ContainsKey(expectedPageIndex)) { tempRect = tableField.PagesBounds[expectedPageIndex]; } else { tempRect = LeadRect.Empty; } } else if (field is UnStructuredTextFormField) { tempRect = field.Bounds; } else if (field is OmrFormField) { tempRect = _filledForms[_cmbSelectedForm.SelectedIndex].Alignment[field.MasterPageNumber - 1].AlignOmrRectangle(field.Bounds); } else { tempRect = _filledForms[_cmbSelectedForm.SelectedIndex].Alignment[field.MasterPageNumber - 1 >= 0 ? field.MasterPageNumber - 1 : 0].AlignRectangle(field.Bounds); } Rectangle alignedRect = Leadtools.Demos.Converters.ConvertRect(_filledForms[formIndex].Image.RectangleToImage(RasterViewPerspective.TopLeft, tempRect)); if (!alignedRect.IsEmpty) { _fieldViewer.Image = _filledForms[formIndex].Image.Clone(Leadtools.Demos.Converters.ConvertRect(alignedRect)); } else { _fieldViewer.Image = null; } AddHighlight(alignedRect); LeadMatrix LeadImageMatrix = _filledFormViewer.ImageTransform; //Ensure field is visible Transformer transformer = new Transformer(new System.Drawing.Drawing2D.Matrix((float)LeadImageMatrix.M11, (float)LeadImageMatrix.M12, (float)LeadImageMatrix.M21, (float)LeadImageMatrix.M22, (float)LeadImageMatrix.OffsetX, (float)LeadImageMatrix.OffsetY)); PointF location = transformer.PointToPhysical(alignedRect.Location); _filledFormViewer.CenterAtPoint(LeadPoint.Create((int)location.X, (int)location.Y)); UpdateControls(); } } catch (Exception exp) { Messager.ShowError(this, exp); } }
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; } } }