将数字转换为Barcode Ean 13并将其保存为sql作为图像

时间:2016-11-20 19:42:34

标签: c# barcode

我是新来的。我正在尝试找到一个教程,我可以将数字示例5201000001100转换为条形码ean 13并将其保存为sql作为图像。 我在互联网上做了很多研究,但我没有找到ean 13.我发现只有一些字体可以创建我的号码代码39或代码128.

2 个答案:

答案 0 :(得分:1)

重要

您问题中的EAN 13代码5201000001100 无效

最后一位是从前面的数字计算的校验和。它用于检查阅读器是否正确读取了代码。

520100000110的有效校验和为2,因此整个代码应为5201000001102。

现在进入解决方案。

使用免费图书馆

只需安装此NuGet包:

https://www.nuget.org/packages/Zen.Barcode.Rendering.Framework/

使用方法:

Image codeImage = BarcodeDrawFactory.CodeQr.Draw("001234567890", 3, 3);

使用字体

您可以使用此EAN13字体:

http://www.fontpalace.com/font-details/EAN-13/

将其安装在您的计算机上,从文本中创建图像并将其作为BLOB保存到数据库中。

另外,正如@DirkTrilsbeek建议的那样,您需要自己生成校验和。以下是如何做到这一点:

https://en.wikipedia.org/wiki/Check_digit#EAN_.28GLN.2CGTIN.2C_EAN_numbers_administered_by_GS1.29

校验和是条形码的最后一位数字。您可以使用以下函数生成它:

string appendChecksum(string code)
{
    var sum = 0;

    for(var i = code.Length; i >= 1; i--)
    {
        var d = Convert.ToInt32(code.Substring(i - 1, 1));
        var f = i % 2 == 0 ? 3 : 1;
        sum += d * f;
    }
    var checksum = (10 - (sum % 10)) % 10; 

    return code + checksum;
}

输入是代码,返回值是附加校验和的代码。

使用商业图书馆

Aspose也有这个(商业但非常好)的库:

http://www.aspose.com/products/barcode/net

使用此免费项目

http://www.codeproject.com/Articles/10162/Creating-EAN-Barcodes-with-C

您必须从Windows窗体项目中提取相关部分,但至少它是免费的。

答案 1 :(得分:0)

如前所述,您可以找到从文本代码生成条形码的字体。

您需要实现一种算法,通过该算法将您的EAN代码转换为某些文本字符串,字体可以使用该字符串生成条形码。 可以在此处找到对算法的解释:https://grandzebu.net/informatique/codbar-en/ean13.htm

最后,我不会选择将图像存储在数据库中,而是选择EAN13代码本身。获得上述算法后,您可以通过生成代码并使用EAN13字体打印来简单地重现EAN13条形码。

几个月前,我创建了一个从EAN13代码生成这样一个编码字符串的类。如果使用EAN13字体打印该编码字符串,则应打印可读条形码。 你可以在github上找到这个小项目:https://github.com/fgheysels/Ean13