Member 12964836 Ответов: 0

Я сгенерировал изображение штрих-кода, но не сканирую его через сканер. mvc.net


Я сгенерировал изображение для штрих-кода в MVC, но когда я печатаю этот штрих-код, то он сопит, сканируясь при сканировании через сканер.

Что я уже пробовал:

Я пытался

Контроллер- - - >
barcodecs objbar = new barcodecs();
          for (int i = model.From; i <= model.To; i++)
          {
              Barcode objprod = new Barcode()
              {
                  BookId = model.From,
                  BarCode1 = objbar.generateBarcode(),
                  BarCodeImage = objbar.getBarcodeImage(objbar.generateBarcode(), Convert.ToString(model.BookId)),
              };
              model.From++;
              db.Barcodes.Add(objprod);
              db.SaveChanges();
          }
          return RedirectToAction("BarCode", "BarCode");




Штрих-код.КС--&ГТ;
public string generateBarcode()
      {
          try
          {
              string[] charPool = "1-2-3-4-5-6-7-8-9-0".Split('-');
              StringBuilder rs = new StringBuilder();
              int length = 6;
              Random rnd = new Random();
              while (length-- > 0)
              {
                  int index = (int)(rnd.NextDouble() * charPool.Length);
                  if (charPool[index] != "-")
                  {
                      rs.Append(charPool[index]);
                      charPool[index] = "-";
                  }
                  else
                      length++;
              }
              return rs.ToString();
          }
          catch (Exception ex)
          {
              //ErrorLog.WriteErrorLog("Barcode", ex.ToString(), ex.Message);
          }
          return "";
      }
      public Byte[] getBarcodeImage(string barcode, string file)
      {
          try
          {
              BarCode39 _barcode = new BarCode39();
              int barSize =25;
              string fontFile = HttpContext.Current.Server.MapPath("~/fonts/FREE3OF9.TTF");
              return (_barcode.Code39(barcode, barSize, true, file, fontFile));
          }
          catch (Exception ex)
          {

          }
          return null;
      }



BarCode39.КС--&ГТ;
private const int _itemSepHeight = 3;
      SizeF _titleSize = SizeF.Empty;
      SizeF _barCodeSize = SizeF.Empty;
      SizeF _codeStringSize = SizeF.Empty;
      public BarCode39()
      {
          _titleFont = new Font("Arial", 10);
          _codeStringFont = new Font("Arial", 10);
      }
      #region Barcode Title
      private string _titleString = null;
      private Font _titleFont = null;
      public string Title
      {
          get { return _titleString; }
          set { _titleString = value; }
      }
      public Font TitleFont
      {
          get { return _titleFont; }
          set { _titleFont = value; }
      }
      #endregion
      #region Barcode code string
      private bool _showCodeString = false;
      private Font _codeStringFont = null;
      public bool ShowCodeString
      {
          get { return _showCodeString; }
          set { _showCodeString = value; }
      }
      public Font CodeStringFont
      {
          get { return _codeStringFont; }
          set { _codeStringFont = value; }
      }
      #endregion
      #region Barcode Font
      private Font _c39Font = null;
      private float _c39FontSize = 12;
      private string _c39FontFileName = null;
      private string _c39FontFamilyName = null;
      public string FontFileName
      {
          get { return _c39FontFileName; }
          set { _c39FontFileName = value; }
      }
      public string FontFamilyName
      {
          get { return _c39FontFamilyName; }
          set { _c39FontFamilyName = value; }
      }
      public float FontSize
      {
          get { return _c39FontSize; }
          set { _c39FontSize = value; }
      }
      private Font Code39Font
      {
          get
          {
              if (_c39Font == null)
              {
                  // Load the barcode font
                  PrivateFontCollection pfc = new PrivateFontCollection();
                  pfc.AddFontFile(_c39FontFileName);
                  FontFamily family = new FontFamily(_c39FontFamilyName, pfc);
                  _c39Font = new Font(family, _c39FontSize);
              }
              return _c39Font;
          }
      }
      #endregion
      #region Barcode Generation
      public byte[] Code39(string code, int barSize, bool showCodeString, string title, string fontFile)
      {
          // Create stream....
          MemoryStream ms = new MemoryStream();
          FontFamilyName = "Free 3 of 9";//ConfigurationSettings.AppSettings["BarCodeFontFamily"];
          FontFileName = fontFile;//@"C:\Documents and Settings\narottam.sharma\Desktop\Barcode\WSBarCode\Code39Font\FREE3OF9.TTF";// ConfigurationSettings.AppSettings["BarCodeFontFile"];
          FontSize = barSize;
          ShowCodeString = showCodeString;
          if (title + "" != "")
              Title = title;
          Bitmap objBitmap = GenerateBarcode(code);
          objBitmap.Save(ms, ImageFormat.Png);

          //return bytes....
          return ms.GetBuffer();
      }
      public Bitmap GenerateBarcode(string barCode)
      {
          int bcodeWidth =0;
          int bcodeHeight = 0;
          // Get the image container...
          Bitmap bcodeBitmap = CreateImageContainer(barCode, ref bcodeWidth, ref bcodeHeight);
          Graphics objGraphics = Graphics.FromImage(bcodeBitmap);

          // Fill the background
          objGraphics.FillRectangle(new SolidBrush(Color.White), new Rectangle(0, 0, bcodeWidth, bcodeHeight));
          int vpos = 0;
          // Draw the title string
          if (_titleString != null)
          {
              objGraphics.DrawString(_titleString, _titleFont, new SolidBrush(Color.Black), XCentered((int)_titleSize.Width, bcodeWidth), vpos);
              vpos += (((int)_titleSize.Height) + _itemSepHeight);
          }
          // Draw the barcode
          objGraphics.DrawString(barCode, Code39Font, new SolidBrush(Color.Black), XCentered((int)_barCodeSize.Width, bcodeWidth), vpos);
          // Draw the barcode string
          if (_showCodeString)
          {
              vpos += (((int)_barCodeSize.Height));
              objGraphics.DrawString(barCode, _codeStringFont, new SolidBrush(Color.Black), XCentered((int)_codeStringSize.Width, bcodeWidth), vpos);
          }
          // return the image...
          return bcodeBitmap;
      }
      private Bitmap CreateImageContainer(string barCode, ref int bcodeWidth, ref int bcodeHeight)
      {
          Graphics objGraphics;

          // Create a temporary bitmap...
          Bitmap tmpBitmap = new Bitmap(1, 1, PixelFormat.Format32bppArgb);
          objGraphics = Graphics.FromImage(tmpBitmap);

          // calculate size of the barcode items...
          if (_titleString != null)
          {
              _titleSize = objGraphics.MeasureString(_titleString, _titleFont);
              bcodeWidth = (int)_titleSize.Width;
              bcodeHeight = (int)_titleSize.Height + _itemSepHeight;
          }
          _barCodeSize = objGraphics.MeasureString(barCode, Code39Font);
          bcodeWidth = Max(bcodeWidth, (int)_barCodeSize.Width);
          bcodeHeight += (int)_barCodeSize.Height;
          if (_showCodeString)
          {
              _codeStringSize = objGraphics.MeasureString(barCode, _codeStringFont);
              bcodeWidth = Max(bcodeWidth, (int)_codeStringSize.Width);
              bcodeHeight += (_itemSepHeight + (int)_codeStringSize.Height);
          }
          // dispose temporary objects...
          objGraphics.Dispose();
          tmpBitmap.Dispose();
          return (new Bitmap(bcodeWidth, bcodeHeight, PixelFormat.Format32bppArgb));
      }

      #endregion
      #region Auxiliary Methods
      private int Max(int v1, int v2)
      {
          return (v1 > v2 ? v1 : v2);
      }
      private int XCentered(int localWidth, int globalWidth)
      {
          return ((globalWidth - localWidth) / 2);
      }
      #endregion
  }

Richard MacCutchan

Где сканер и где код, который можно с него считывать?

Member 12964836

У меня также есть сканер и принтер,но проблема в том ,что изображение успешно создается, но я не знаю, как распечатать это изображение через принтер штрих-кода.

Richard MacCutchan

Вам нужно будет ознакомиться с документацией к принтеру штрих-кодов.

Member 12964836

У меня также есть сканер и принтер,но проблема в том ,что изображение успешно создается, но я не знаю, как распечатать это изображение через принтер штрих-кода.

0 Ответов