最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#使用BarcodeLib生成條形碼的完整代碼

 更新時(shí)間:2025年06月04日 10:43:58   作者:小碼編匠  
現(xiàn)代工業(yè)、物流、零售等領(lǐng)域,條形碼作為信息識(shí)別的重要手段被廣泛應(yīng)用,BarcodeLib是一個(gè)開(kāi)源的C#庫(kù),專為大家提供便捷、高效的條形碼生成功能,本文將詳細(xì)介紹如何在WinForm項(xiàng)目中集成和使用BarcodeLib庫(kù),幫助大家快速實(shí)現(xiàn)條形碼的生成與顯示,需要的朋友可以參考下

前言

現(xiàn)代工業(yè)、物流、零售等領(lǐng)域,條形碼作為信息識(shí)別的重要手段被廣泛應(yīng)用。BarcodeLib 是一個(gè)開(kāi)源的 C# 庫(kù),專為大家提供便捷、高效的條形碼生成功能。它支持多種常見(jiàn)的條碼格式,并具備良好的可定制性和性能表現(xiàn)。

本文將詳細(xì)介紹如何在 WinForm 項(xiàng)目中集成和使用 BarcodeLib 庫(kù),展示完整的代碼示例與運(yùn)行效果,幫助大家快速實(shí)現(xiàn)條形碼的生成與顯示。

一、BarcodeLib 簡(jiǎn)介

BarcodeLib 是一個(gè)功能強(qiáng)大且易于使用的條形碼生成庫(kù),適用于 .NET 平臺(tái)開(kāi)發(fā)。其主要特點(diǎn)包括:

支持多種常見(jiàn)條形碼格式(如 Code 128、EAN-13、UPC-A、Code 39、Postnet 等)

提供豐富的樣式設(shè)置選項(xiàng)(顏色、字體、尺寸等)

高性能生成機(jī)制,適合企業(yè)級(jí)應(yīng)用

開(kāi)源免費(fèi),便于擴(kuò)展和定制

二、準(zhǔn)備工作

安裝 BarcodeLib

創(chuàng)建一個(gè)新的 WinForm 應(yīng)用程序項(xiàng)目后,使用 NuGet 安裝 BarcodeLib

Install-Package BarcodeLib

該庫(kù)基于 SkiaSharp 渲染圖像,因此也依賴于 SkiaSharp 的相關(guān)包,請(qǐng)確保項(xiàng)目中已正確引用以下命名空間:

using BarcodeStandard;
using SkiaSharp;

三、Barcode 類的核心屬性說(shuō)明

以下是 Barcode 類中一些關(guān)鍵屬性:

屬性名稱描述
RawData要編碼的原始數(shù)據(jù)
EncodedValue編碼后的值(只讀)
EncodedType條碼類型(如 UPC-A, EAN-13 等)
ForeColor / BackColor條碼線條顏色 / 背景顏色
LabelFont標(biāo)簽字體設(shè)置
Width / Height圖像寬度 / 高度
IncludeLabel是否顯示標(biāo)簽
AlternateLabel自定義標(biāo)簽文本

這些屬性高度自定義條形碼的外觀和行為。

四、支持的條碼類型枚舉 (Type)

BarcodeLib 支持以下條碼格式(部分列舉):

public enum Type
{
    Unspecified,
    UpcA,
    Ean13,
    Code39,
    PostNet,
    Code128,
    // ...其他格式省略
}

可以根據(jù)實(shí)際需求選擇合適的條碼類型進(jìn)行生成。

五、界面設(shè)計(jì)

在 WinForm 界面中添加以下控件:

  • TextBox:用于輸入條碼內(nèi)容,命名為 txtCode

  • Button:用于觸發(fā)生成操作,命名為 btnGenerate,文本設(shè)為"生成條碼"

  • PictureBox:用于顯示生成的條碼圖像,命名為 picBarcode

六、示例代碼

示例一:基礎(chǔ)條碼生成

using BarcodeStandard;
using SkiaSharp;

namespace AppBarcodeLib
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void btnGenerate_Click(object sender, EventArgs e)
        {
            string input = txtCode.Text;
            if (string.IsNullOrWhiteSpace(input))
            {
                MessageBox.Show("請(qǐng)輸入條碼內(nèi)容", "錯(cuò)誤", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            try
            {
                Barcode b = new Barcode();
                b.IncludeLabel = true;

                SKImage skImage = b.Encode(BarcodeStandard.Type.Code128, input, SKColors.Black, SKColors.White, 300, 100);

                using (SKData data = skImage.Encode())
                {
                    using (MemoryStream stream = new MemoryStream(data.ToArray()))
                    {
                        picBarcode.Image = Image.FromStream(stream);
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show($"生成條碼時(shí)發(fā)生錯(cuò)誤: {ex.Message}", "錯(cuò)誤", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
    }
}

示例二:自定義樣式生成

using System;
using System.Drawing;
using System.Windows.Forms;
using BarcodeStandard;
using SkiaSharp;

namespace AppBarcodeLib
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }

        public void GenerateBarcode()
        {
            Barcode barcode = new Barcode
            {
                RawData = txtCode.Text,
                EncodedType = Type.Ean13,
                Width = 300,
                Height = 150
            };

            barcode.ForeColor = SKColors.Blue;
            barcode.BackColor = SKColors.LightGray;
            barcode.IncludeLabel = true;
            barcode.AlternateLabel = "Custom Text";

            barcode.LabelFont = new SKFont
            {
                Typeface = SKTypeface.FromFamilyName("Times New Roman", SKFontStyle.Bold),
                Size = 32
            };

            SKImage skImage = barcode.Encode(txtCode.Text);

            using (SKData data = skImage.Encode())
            {
                using (MemoryStream stream = new MemoryStream(data.ToArray()))
                {
                    System.Drawing.Image windowsImage = System.Drawing.Image.FromStream(stream);
                    picBarcode.Image = windowsImage;
                }
            }
        }

        private void btnGenerate_Click(object sender, EventArgs e)
        {
            GenerateBarcode();
        }
    }
}

總結(jié)

通過(guò)本文的學(xué)習(xí),我們了解了如何使用 BarcodeLib 庫(kù)在 WinForm 項(xiàng)目中生成條形碼,并掌握了基本的條碼類型、樣式設(shè)置以及圖像輸出方法。

該庫(kù)不僅支持多種主流條碼格式,還提供了豐富的 API 和良好的性能,非常適合用于需要嵌入條碼生成功能的企業(yè)級(jí)應(yīng)用程序。無(wú)論是簡(jiǎn)單的條碼打印還是復(fù)雜的定制化顯示,BarcodeLib 都能滿足你的需求。

關(guān)鍵詞:BarcodeLib,WinForm,條形碼生成,Code 128,EAN-13,Code 39,SkiaSharp,C#,圖像處理,開(kāi)源庫(kù)

最后

以上就是C#使用BarcodeLib生成條形碼的完整代碼的詳細(xì)內(nèi)容,更多關(guān)于C# BarcodeLib生成條形碼的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論

孙吴县| 廉江市| 洛浦县| 松阳县| 华宁县| 漳浦县| 光泽县| 文登市| 合作市| 曲靖市| 成都市| 凯里市| 蕉岭县| 靖边县| 象州县| 绥江县| 余江县| 曲阳县| 克拉玛依市| 贵定县| 浦县| 天全县| 古丈县| 阜城县| 毕节市| 牙克石市| 黄大仙区| 长沙县| 新晃| 十堰市| 礼泉县| 德安县| 辰溪县| 崇义县| 中山市| 滨海县| 昭觉县| 牙克石市| 绥宁县| 射洪县| 芦山县|