Beispiel #1
0
        /// <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();
        }
Beispiel #2
0
        /// <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();
        }
Beispiel #3
0
        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();
        }