Beispiel #1
0
        /// <summary>
        /// Returns barcode as <see cref="VintasoftImage"/>.
        /// </summary>
        public VintasoftImage GetBarcodeImage()
        {
#if !REMOVE_BARCODE_SDK
            return(new VintasoftImage(_writer.GetBarcodeAsBitmap(), true));
#else
            return(null);
#endif
        }
Beispiel #2
0
        void BackgroundWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            while (!_backgroundWorker.CancellationPending)
            {
                _eventLog.WriteEntry(string.Format("{0}: DoWork Start", ServiceName));

                // generate image with barcode
                DateTime timeNow = DateTime.Now;
                string   imageWithBarcodePath = "";
                Bitmap   imageWithBarcode     = null;
                try
                {
                    BarcodeWriter barcodeWriter = new BarcodeWriter();
                    barcodeWriter.Settings.Barcode = BarcodeType.Code39;
                    barcodeWriter.Settings.Value   = timeNow.ToString();
                    barcodeWriter.Settings.Padding = 20;
                    imageWithBarcode = (Bitmap)barcodeWriter.GetBarcodeAsBitmap();

                    imageWithBarcodePath = string.Format(@"d:\barcodes\{0}.png", timeNow.Millisecond);
                    imageWithBarcode.Save(imageWithBarcodePath);
                }
                catch (Exception ex)
                {
                    _eventLog.WriteEntry(string.Format("{0}: Barcode writing error: {1}", ServiceName, ex.Message));
                }
                finally
                {
                }

                // read barcode from the image
                try
                {
                    BarcodeReader barcodeReader = new BarcodeReader();
                    barcodeReader.Settings.ScanBarcodeTypes = BarcodeType.Code39;
                    barcodeReader.Settings.ScanDirection    = ScanDirection.LeftToRight;

                    IBarcodeInfo[] barcodeInfo = barcodeReader.ReadBarcodes(imageWithBarcode);
                    string         result      = "No barcodes found.";
                    if (barcodeInfo.Length != 0)
                    {
                        result = string.Format("Barcode found: {0}", barcodeInfo[0]);
                    }

                    _eventLog.WriteEntry(string.Format("{0}: {1}", ServiceName, result));
                    File.WriteAllText(string.Format(@"d:\barcodes\{0}.txt", timeNow.Millisecond), result);
                }
                catch (Exception ex)
                {
                    _eventLog.WriteEntry(string.Format("{0}: Barcode reading error: {1}", ServiceName, ex.Message));
                }
                finally
                {
                    Thread.Sleep(1000);
                }

                _eventLog.WriteEntry(string.Format("{0}: DoWork Finish", ServiceName));
            }
        }
        /// <summary>
        /// Updates the user interface.
        /// </summary>
        internal void UpdateUI()
        {
            // format string
            string formatString;

            if (BarcodeDescription == null || BarcodeDescription == "")
            {
                formatString = "{0}";
            }
            else
            {
                formatString = "{0} ({1})";
            }

            // barcode type string
            string barcodeTypeString;

            if (BarcodeInformation.BarcodeSubsetName == null || BarcodeInformation.BarcodeSubsetName == "")
            {
                barcodeTypeString = Utils.BarcodeTypeToString(BarcodeInformation.BarcodeWriterSetting.Barcode);
            }
            else
            {
                barcodeTypeString = BarcodeInformation.BarcodeSubsetName;
            }

            // show barcode value
            _barcodeValueTextView.Text = BarcodeInformation.BarcodeValue;
            _barcodeValueTextView.ScrollTo(0, 0);
            // show barcode description
            _barcodeDescriptionTextView.Text = string.Format(formatString, barcodeTypeString, BarcodeDescription);

            _barcodeWriter.Settings = BarcodeInformation.BarcodeWriterSetting.Clone();
            if (BarcodeInformation.BarcodeSubsetName != null && BarcodeInformation.BarcodeSubsetName != "")
            {
                ((BarcodeSymbologySubset)Utils.BarcodeTypeNameToBarcodeTypes[BarcodeInformation.BarcodeSubsetName]).Encode(BarcodeInformation.BarcodeValue, _barcodeWriter.Settings);
            }

            try
            {
                // get display size
                DisplayMetrics displayMetrics = new DisplayMetrics();
                _barcodeViewerActivity.WindowManager.DefaultDisplay.GetMetrics(displayMetrics);
                // get parameters for postal barcodes
                float maxPostalBarcodeHeight         = Resources.GetDimensionPixelSize(Resource.Dimension.max_postal_barcode_height);
                float maxOneSymbolPostalBarcodeWidth = Resources.GetDimensionPixelSize(Resource.Dimension.max_one_symbol_postal_barcode_width);
                // get optimal barcode size
                Utils.GetOptimalBarcodeSize(
                    displayMetrics, _barcodeWriter.Settings.Barcode,
                    maxPostalBarcodeHeight, maxOneSymbolPostalBarcodeWidth, _barcodeWriter.Settings.Value.Length,
                    out _barcodeWidth, out _barcodeHeight);

                if (!Utils.IsEanOrUpcaOrUpceBarcode(_barcodeWriter.Settings.Barcode))
                {
                    _barcodeWriter.Settings.ValueVisible = false;
                }

                // set barcode size
                _barcodeWriter.Settings.Height = _barcodeHeight;
                _barcodeWriter.Settings.SetWidth(_barcodeWidth);
                // set barcode text size
                _barcodeWriter.Settings.ValuePaint.TextSize = Utils.GetOptimalBarcodeTextSize(_barcodeWriter.Settings.Barcode, _barcodeWidth,
                                                                                              Resources.GetDimensionPixelSize(Resource.Dimension.barcode_value_bitmap_default_text_size));
                // draw the barcode
                Bitmap         barcode       = _barcodeWriter.GetBarcodeAsBitmap();
                BitmapDrawable previousImage = _barcodeValueImageView.Drawable as BitmapDrawable;
                if (previousImage != null)
                {
                    previousImage.Bitmap.Recycle();
                }
                _barcodeValueImageView.SetImageBitmap(barcode);

                // save new sizes
                _barcodeHeight = barcode.Height;
                _barcodeWidth  = barcode.Width;
            }
            catch (WriterSettingsException ex)
            {
                // dialog creater
                using (AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(_barcodeViewerActivity))
                {
                    string message = ex.Message;

                    // create button
                    dialogBuilder.SetPositiveButton(Resource.String.ok_button, (EventHandler <DialogClickEventArgs>)null);

                    // create dialog
                    AlertDialog dialog = dialogBuilder.Create();

                    // set dialog title
                    dialog.SetTitle(Resources.GetString(Resource.String.error_message_title));
                    // set dialog message
                    dialog.SetMessage(message);
                    // show on screen
                    dialog.Show();
                }
            }
        }