5
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”,则可以很好地读取条形码。所以我认为这不是扫描仪问题,任何人都知道,该代码有什么问题?请指教。

4

3 回答 3

3

如果您只使用数字,您可以尝试 3 of 9 基本字体(没有扩展)。从 Write 打印相同的条形码并比较它们,以查看您的解决方案是构建完整的条形码还是被截断。

于 2013-04-27T06:05:05.087 回答
0

1.如果您使用由“*”停止和开始字符包围的支持字符,则问题可能出在条码大小或打印分辨率上。2.确保每个字符的大小是相同的字体大小。混合尺寸不起作用。3.当尝试改变条的颜色时,记住颜色越深越好。粉彩不太好。红色是禁忌。这是给您的参考:asp.net 条形码生成器使用 3 of 9 font

于 2015-01-16T03:20:52.803 回答
-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.
}
于 2013-11-01T08:59:19.743 回答