public Bitmap CreateBarcode(string data)
{
data = "55536";
string barcodeData = "*" + data + "*";
Bitmap barcode = new Bitmap(1, 1);
Font threeOfNine = new Font("Free 3 of 9 Extended", 31, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
Font arial = new Font("Arial", 13,
System.Drawing.FontStyle.Regular,
System.Drawing.GraphicsUnit.Point);
Graphics graphics = Graphics.FromImage(barcode);
SizeF dataSize = graphics.MeasureString(barcodeData, threeOfNine);
dataSize.Height = 70;
barcode = new Bitmap(barcode, dataSize.ToSize());
graphics = Graphics.FromImage(barcode);
graphics.Clear(Color.White);
graphics.TextRenderingHint = TextRenderingHint.SingleBitPerPixel;
graphics.DrawString(barcodeData, threeOfNine, new SolidBrush(Color.Black), 0, 0);
graphics.DrawString(data, arial, new SolidBrush(Color.Black), 50, 40);
graphics.Flush();
threeOfNine.Dispose();
graphics.Dispose();
return barcode;
}
我使用上面的代码生成条形码,但我的扫描仪无法读取生成的条形码(适用于55536)。 但是,如果我将数据值切换为“1111”或“2222”,则可以很好地读取条形码。 所以我认为这不是扫描仪问题,任何人都知道,该代码有什么问题? 请建议。
答案 0 :(得分:3)
如果您只使用数字,则可以尝试9种基本字体中的3种(不带扩展名)。从Write中打印相同的条形码并进行比较,以查看您的解决方案是否构建完整的条形码或是否被截断。
答案 1 :(得分:0)
1.如果您正在使用由“*”停止并启动字符包围的受支持字符,则问题可能是条形码的大小或打印的分辨率。 2.确保每个字符的大小是相同的字体大小。混合尺寸不起作用。 3.在尝试更改条形颜色时,请记住颜色越深越好。粉彩不太好。红色是禁忌。 以下是您的参考:asp.net barcode generator using 3 of 9 font。
答案 2 :(得分:-2)
尝试使用前缀和后缀:
为什么要在
中传递数据public Bitmap CreateBarcode(string data)
{
data="55536"; //dont pass the data from here pass it from outside method for eg. call it from the button click or whatever control you are using.
}