private int SetToReadStandard1DControls(BarcodeDirectionFlags direction) { bSearchAllStd1D = true; bSearchAllNoRSS = false; //Sub types ulSearchStd1DType = 0; //Set MSI types StdBar1D = new Barcode1d(); StdBar1D.StandardFlags &= (Barcode1dStandardFlags)0xFFFFFFF0; StdBar1D.StandardFlags = Barcode1dStandardFlags.Barcode1dMsiModulo10;//---------> //Set Code11 types StdBar1D.StandardFlags &= (Barcode1dStandardFlags)0xFFFFFF0F; StdBar1D.StandardFlags |= Barcode1dStandardFlags.Barcode1dCode11C;//---------> //Direction // StdBar1D.Direction |= BarcodeDirectionFlags.Horizontal;//---------> StdBar1D.Direction |= direction;//---------> //Speed StdBar1D.StandardFlags &= (Barcode1dStandardFlags)0xFFFFF0FF; //StdBar1D.StandardFlags |= Barcode1dStandardFlags.Barcode1dFast;//---------> StdBar1D.StandardFlags |= Barcode1dStandardFlags.Barcode1dNormal; //Options:Granularity // Gets or sets the number of scanned lines per column to skip when reading a barcode. // Number of scanned lines per column to skip when reading a barcode. // The default value is 9, this means that each tenth line will be scanned while looking for a barcode. // Scanning every line will slow the search process while skipping too many lines may skip over the barcode. StdBar1D.Granularity = 6; //Options:MinimumLength // Gets or set the minimum length of a barcode string when searching for a non-fixed length barcode StdBar1D.MinimumLength = 12; //Options:MaximumLength // Gets or set the maximum length of a barcode string when searching for a non-fixed length barcode StdBar1D.MaximumLength = 13; //Options:WhiteLines // Gets or sets the number of lines of white space above and below the barcode symbol. StdBar1D.WhiteLines = 1; //was 10 in demo StdBar1D.ErrorCheck = false; uFlags_Std1DPg = 0; if (_cbReturnCheckDigitS1D) { uFlags_Std1DPg |= BarcodeReadFlags.ReturnCheck; } if (_cbAvoidBlock) { uFlags_Std1DPg |= BarcodeReadFlags.BlockSearch; } if (_cbPartialRead) { uFlags_Std1DPg |= BarcodeReadFlags.Markers; } return(1); }
private bool ReadIDBarcode(BarcodeDirectionFlags direction, ref string Barcode) { //Validate General _readMaxBarcodesCount = 1; _unit = (BarcodeUnit.Millimeters); //Validate Location _readArea = new LeadRect(0, 0, 0, 0); _useRegion = false; //Validate Color _useColor = false; _barcodeReadColor = new BarcodeColor(); _barcodeReadColor.BarColor = FromGdiPlusColor(Color.Black); _barcodeReadColor.SpaceColor = FromGdiPlusColor(Color.White); //Validate All Tab controls SetToReadStandard1DControls(direction); _barcodeReadFlags = 0; if (_useColor) { _barcodeReadFlags |= BarcodeReadFlags.UseColors; } if (bSearchAllStd1D) { _readBarcodeTypes = BarcodeSearchTypeFlags.Barcode1dReadAnyType; } else if (bSearchAllNoRSS) { _readBarcodeTypes = BarcodeSearchTypeFlags.Barcode1dReadAnyTypeNoRss14; } else { _readBarcodeTypes = ulSearchStd1DType; } _barcodeReadFlags |= uFlags_Std1DPg; _barcodeRead1d = StdBar1D; _barcodeReadPDF = new BarcodeReadPdf(); try { LeadRect area = LeadRect.Empty; if (_useRegion) { area = LeadRect.Empty; } else { if (_readArea == LeadRect.Empty) { area = new LeadRect(0, 0, _viewer.Image.Width, _viewer.Image.Height); } else { area = _readArea; } } RasterCollection <BarcodeData> barcodeData = new RasterCollection <BarcodeData>(); _barcodeEngine = new BarcodeEngine(); barcodeData = _barcodeEngine.Read(_viewer.Image, area, _readBarcodeTypes, _unit, _barcodeReadFlags, _readMaxBarcodesCount, _barcodeRead1d, _barcodeReadPDF, _barcodeReadColor); //string msg; //msg = string.Format("Total Bar Code Symbols Found is: {0}", barcodeData.Count); RasterCollection <BarcodeData> _barcodeDataCollection; _barcodeDataCollection = barcodeData; BarcodeData data = (BarcodeData)_barcodeDataCollection[0]; // Extract the barcode data string byte[] screenData = new byte[data.Data.Length]; for (int dataIndex = 0, screenIndex = 0; dataIndex < data.Data.Length; dataIndex++) { if (data.Data[dataIndex] != 0) { //if 3 then change to 32(space) screenData[screenIndex] = data.Data[dataIndex] < (byte)32 ? (byte)32 : data.Data[dataIndex]; screenIndex++; } } string dataString = BarcodeData.ConvertToStringArray(screenData)[0]; Barcode = dataString; } catch (BarcodeException ex) { if (ex.Code == BarcodeExceptionCode.NotFound) { Barcode = "barcode not found"; return(false); } else { throw; // MessageBox.Show(ex.Message); } } catch //(Exception ex) { throw; //MessageBox.Show(ex.Message); } return(true); }