Изображение штрих-кода не сканируется

Я создал штрих-коды для этикеток в моем приложении asp.net mvc. Теперь я вставляю это изображение в лист Excel для печати этикеток. Проблема в том, что сканер штрих-кода не может прочитать штрих-код.

Я создаю штрих-код Code 39, как показано ниже:

string barcodeName = string.Format("{0}{1}", orderItem.StyleNumber + "-" + orderItem.Color + "-" + itemDetail.Size, ".png");
string barcode = orderItem.StyleNumber + "-" + orderItem.Color + "-" + itemDetail.Size;
//Settings for the Image
string TypeFaceName = "IDAutomationHC39M"; // this is the name of font from which your barcode is generated.
string imageLocation = HttpContext.Current.Server.MapPath("~/Bine/Assets/Barcode Images");

//The format of the image file
ImageFormat format = ImageFormat.Png;

string path = Path.Combine(HttpContext.Current.Server.MapPath("~/Bine/Assets/Barcode Images"), barcodeName);


//REFERENCING A FONT 
PrivateFontCollection fnts = new PrivateFontCollection();
fnts.AddFontFile("IDAutomationHC39M.ttf");// this is the name of font from which your barcode is generated.
FontFamily fntfam = new FontFamily(TypeFaceName, fnts);
System.Drawing.Font fnt = new System.Drawing.Font(fntfam, 10);
fnts.AddFontFile("Arial.ttf");
FontFamily fntfam2 = new FontFamily("Arial", fnts);
//DRAWING THE IMAGE  
int w = barcode.Length * 40;
Bitmap bmp = new Bitmap(w, 100);           //Canvas size
Graphics g = Graphics.FromImage(bmp);
// Create the Point and Brushes for the barcode
PointF oPoint = new PointF(2f, 2f);
SolidBrush oBrushWrite = new SolidBrush(Color.Black);
SolidBrush oBrush = new SolidBrush(Color.White);

// Create the actual barcode image
// with a rectangle filled with white color

g.FillRectangle(oBrush, 0, 0, w, 80);
// Put prefix and sufix of an asterisk (*),
// in order to be a valid barcode
g.DrawString("*" + barcode + "*", fnt, oBrushWrite, oPoint);

bmp.Save(path, format); //Saving the Image file
bmp.Dispose(); //Releasing all resources (Image file)

Изображения штрих-кода успешно созданы и сохранены в папке. Затем я создаю лист Excel и вставляю эти изображения, как показано ниже:

string imgName = String.Format("{0}{1}", stList[x].Text + "-" + stList[x].Color + "-" + stList[x].Size, ".png");
string path = Path.Combine(HttpContext.Current.Server.MapPath("~/Bine/Assets/Barcode Images"), imgName);
Microsoft.Office.Interop.Excel.Range oRange = (Microsoft.Office.Interop.Excel.Range)ws.Cells[rw+3, cl];
float Left = (float)((double)oRange.Left);
float Top = (float)((double)oRange.Top);
const float ImageWidth = 200;
const float ImageHeight = 26;

ws.Shapes.AddPicture(path, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoCTrue, Left, Top, ImageWidth, ImageHeight);

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

Я проверил свой сканер и он работает нормально, так как я создал аналогичный штрих-код онлайн из Интернета, взял распечатку, и они отлично отсканированы.

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

Я боролся с этим за последние пару дней. Пожалуйста, порекомендуйте.

1 ответ

Решение

Ваш штрих-код, вероятно, не читает из-за масштабирования изображения, которое делает его нечетким. Вместо того, чтобы вставлять изображения в Excel, вы должны поместить текст штрих-кода в ячейки и установить шрифт ячейки на ваш шрифт штрих-кода. Это приведет к четким, читаемым штрих-кодам.

Другие вопросы по тегам