/// <summary> /// Called from MainForm to set the barcodes and selected barcodes list /// </summary> public void SetDocument(RasterImage image, DocumentBarcodes documentBarcodes) { _rasterImage = image; _documentBarcodes = documentBarcodes; Populate(); }
/// <summary> /// Called by the main form to set the new raster image and barcodes /// </summary> public void SetDocument(RasterImage image, DocumentBarcodes documentBarcodes) { _documentBarcodes = documentBarcodes; _rasterImageViewer.Image = image; UpdatePageInfo(); UpdateUIState(); }
private void DoReadBarcodes() { _documentBarcodes = new DocumentBarcodes(); _barcodesListView.Groups.Clear(); _barcodesListView.Items.Clear(); _infoLabel.Text = DemosGlobalization.GetResxString(GetType(), "Resx_SearchingForBarcode"); _retryLinkLabel.Visible = false; _retryLinkLabel.Enabled = false; _messageLabel.Visible = true; _messageLabel.Text = string.Empty; _showReadOptionsDialogCheckBox.Visible = false; _stopButton.DialogResult = DialogResult.None; _stopButton.Text = "&Stop"; this.AcceptButton = null; this.CancelButton = null; _isWorking = true; Application.DoEvents(); int firstPageNumber; int lastPageNumber; if (_currentPageOnly) { firstPageNumber = _rasterImage.Page; lastPageNumber = _rasterImage.Page; } else { firstPageNumber = 1; lastPageNumber = _rasterImage.PageCount; } Exception error = null; _stopWatch = new Stopwatch(); _lastPageNumber = lastPageNumber; for (int pageNumber = firstPageNumber; pageNumber <= lastPageNumber && !_isAborted && error == null; pageNumber++) { _currentPageNumber = pageNumber; UpdateMessageLabel(null); Application.DoEvents(); int savePageNumber = -1; if (_rasterImage.Page != pageNumber) { _rasterImage.DisableEvents(); savePageNumber = _rasterImage.Page; _rasterImage.Page = pageNumber; } // Continue on errors _barcodeEngine.Reader.ErrorMode = BarcodeReaderErrorMode.IgnoreAll; _barcodeEngine.Reader.ReadSymbology += new EventHandler <BarcodeReadSymbologyEventArgs>(Reader_ReadSymbology); try { BarcodeData[] barcodes = _barcodeEngine.Reader.ReadBarcodes(_rasterImage, _bounds, 0, _symbologies, null); PageBarcodes pageBarcodes = new PageBarcodes(); foreach (BarcodeData barcode in barcodes) { pageBarcodes.Barcodes.Add(barcode); } _documentBarcodes.Pages.Add(pageBarcodes); } catch (Exception ex) { error = ex; } finally { if (savePageNumber != -1) { _rasterImage.EnableEvents(); _rasterImage.Page = savePageNumber; } _barcodeEngine.Reader.ReadSymbology -= new EventHandler <BarcodeReadSymbologyEventArgs>(Reader_ReadSymbology); _barcodeEngine.Reader.ErrorMode = BarcodeReaderErrorMode.Default; } } _messageLabel.Visible = false; _retryLinkLabel.Visible = true; _retryLinkLabel.Enabled = true; int count = 0; foreach (PageBarcodes pageBarcodes in _documentBarcodes.Pages) { count += pageBarcodes.Barcodes.Count; } if (count > 0) { _infoLabel.Text = string.Format(DemosGlobalization.GetResxString(GetType(), "Resx_DoneBarcode"), count); } else { _infoLabel.Text = string.Format(DemosGlobalization.GetResxString(GetType(), "Resx_DoneNoBarcode")); } if (error != null) { _stopButton.DialogResult = DialogResult.Cancel; MessageBox.Show(this, error.Message, DemosGlobalization.GetResxString(GetType(), "Resx_Error"), MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } if (count == 0 && error == null) { _showReadOptionsDialogCheckBox.Visible = true; } _stopButton.Text = "C&lose"; _stopButton.DialogResult = DialogResult.OK; this.AcceptButton = _stopButton; this.CancelButton = _stopButton; _isWorking = false; _stopButton.Focus(); }