基于C#生成条形码操作知识汇总附源码下载

基于C#生成条形码操作知识汇总

什么是条形码?

条形码(英文:Barcode)是用一组粗细不同、间距不同且被平行分成若干个基本单元的直线条及空白,按一定的编码规则,代表不同的字符信息,并经过光电扫描或照相机扫描得到的一种自动识别技术。

C# 中生成条形码的方式

在C#中,可以通过使用各种第三方库和自定义代码的方式来生成条形码。其中主要的几种库包括:

  1. ZXing.Net:这是Google的ZXing项目的.NET移植版本,是一个功能强大、易于使用的开源条形码生成库。

  2. BarcodeLib:这也是一个免费、开源的C#条形码生成库。

  3. Microsoft.ReportingServices.ReportRendering.Barcode:这是Microsoft官方提供的.NET条形码生成库。

使用ZXing.Net生成条形码

下面是使用ZXing.Net生成条形码的示例代码:

using ZXing;
using System.Drawing;

void GenerateBarcode(string content, int width, int height, string filePath)
{
    var barcodeWriter = new BarcodeWriterPixelData
    {
        Format = BarcodeFormat.CODE_128,
        Options = new EncodingOptions
        {
            Height = height,
            Width = width,
            Margin = 0
        }
    };
    var pixelData = barcodeWriter.Write(content);
    using (var bitmap = new Bitmap(pixelData.Width, pixelData.Height, System.Drawing.Imaging.PixelFormat.Format32bppRgb))
    using (var ms = new MemoryStream())
    {
        var bitmapData = bitmap.LockBits(new Rectangle(0, 0, pixelData.Width, pixelData.Height), ImageLockMode.WriteOnly, System.Drawing.Imaging.PixelFormat.Format32bppRgb);
        try
        {
            Marshal.Copy(pixelData.Pixels, 0, bitmapData.Scan0, pixelData.Pixels.Length);
        }
        finally
        {
            bitmap.UnlockBits(bitmapData);
        }

        bitmap.Save(ms, ImageFormat.Png);
        File.WriteAllBytes(filePath, ms.ToArray());
    }
}

其中,content为条形码文字内容,width和height为条形码宽度和高度,filePath表示生成的条形码保存的文件路径。

使用BarcodeLib生成条形码

下面是使用BarcodeLib生成条形码的示例代码:

using BarcodeLib;

void GenerateBarcode(string content, int width, int height, string filePath)
{
    var barcode = new Barcode();
    barcode.IncludeLabel = true;
    barcode.LabelFont = new Font("Arial", 10);
    barcode.LabelPosition = LabelPositions.BOTTOMCENTER;
    var image = barcode.Encode(BarcodeLib.TYPE.CODE128, content, width, height);
    image.Save(filePath, ImageFormat.Png);
}

其中,content为条形码文字内容,width和height为条形码宽度和高度,filePath表示生成的条形码保存的文件路径。

下载示例源码

以上是使用两种常见的C#条形码生成库的示例代码。如果你对这个话题感兴趣,可以下载以下示例代码:

基于C#生成条形码操作知识汇总附源码下载

该示例代码包括使用ZXing.Net和BarcodeLib生成条形码的示例,及其它一些常见的操作。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:基于C#生成条形码操作知识汇总附源码下载 - Python技术站

(0)
上一篇 2023年5月31日
下一篇 2023年5月31日

相关文章

  • 详解LINQ入门(下篇)

    下面我将详细讲解“详解LINQ入门(下篇)”的完整攻略。 一、LINQ基础 1.1 LINQ介绍 LINQ的全称是Language INtegrated Query,即语言集成查询,是微软在.NET Framework 3.5中引入的一项技术。它可以允许我们使用类SQL语句来操作各种数据源,包括XML文档、ADO.NET中的关系型数据库、Linq to SQ…

    C# 2023年6月1日
    00
  • asp.net 反射减少代码书写量

    ASP.NET反射是一个强大的工具,可以帮助我们动态地访问和操作程序集中的类型、成员和代码。使用ASP.NET反射,我们可以在运行时动态地创建对象、调用方法和检索属性和字段的值,从而可以减少代码的书写量,提高我们的开发效率。 下面将介绍ASP.NET反射的完整攻略,包括以下步骤: 1. 引入命名空间 使用ASP.NET反射需要引入System.Reflect…

    C# 2023年5月31日
    00
  • C#实现窗口之间的传值

    C#实现窗口之间的传值是一个重要的技能,特别是在Windows桌面应用程序中常常使用。在本文中,我们将讲解如何实现窗口之间的传值,包括基本概念、技术架构和代码示例等。 一、基本概念 实现窗口之间的传值,我们需要先了解以下几个概念。 窗口之间的传值一般是指在Windows桌面应用程序中,从一个窗口传递数据到另一个窗口或控件的过程。 传值可以是简单的值类型,如i…

    C# 2023年6月1日
    00
  • C#多线程之取消架构介绍

    C#多线程之取消架构介绍攻略 什么是C#多线程取消架构 在C#中,我们可以使用多线程来进行异步编程,但是在实际场景中,有时候由于各种原因,我们需要中途取消一个正在运行的线程。而为了达到这个目的,C#中引入了取消架构(Cancellation Framework),通过这个机制,我们可以实现对多线程操作的取消。在该机制中,我们创建一个CancellationT…

    C# 2023年5月15日
    00
  • ASP.NET Core使用固定窗口限流

    关于“ASP.NET Core使用固定窗口限流”的完整攻略,我会给你一个详细的解释: 什么是固定窗口限流 固定窗口限流是一种常用的限流算法,它将时间分成固定的窗口,每个窗口内的请求次数不能超过一定的阈值。举个例子:如果我们将时间分成1秒钟的窗口,设置每个窗口内最多只能处理10个请求,那么当某个窗口内的请求数超过10个时,则该窗口内的请求需要被限制。 如何使用…

    C# 2023年6月7日
    00
  • Unity 使用tiledmap解析地图的详细过程

    下面是Unity使用Tiled Map解析地图的详细过程。 什么是Tiled Map Tiled Map是一个开源的地图编辑器,可以用来创建2D地图,支持多种地图格式,并可以导出为多种数据格式,如XML、JSON等。Unity可以使用Tiled Map导出的地图数据文件解析出游戏世界中的2D地图。 Unity如何使用Tiled Map解析地图 Unity可以…

    C# 2023年5月31日
    00
  • C# Linq的ElementAt()方法 – 返回序列中指定索引处的元素

    下面是C# Linq的ElementAt()方法的详细讲解和示例: ElementAt()方法的说明 ElementAt()方法是用于从指定集合的指定索引处返回一个元素。它可以接受一个整数作为参数,表示需要返回的元素所在的索引位置。如果索引超出了集合的范围,则会引发ArgumentOutOfRangeException异常。 语法 public static…

    C# 2023年4月19日
    00
  • C#使用Protocol Buffer(ProtoBuf)进行Unity中的Socket通信

    C#使用Protocol Buffer(ProtoBuf)进行Unity中的Socket通信 简介 Protocol Buffer(又称protobuf)是Google开发的一种数据序列化格式,它比XML和JSON更快、更小、更简单。由于最初是用于Google内部的系统和数据通信,并且其生成和解析代码性能优秀,因此被开源出来,可供广泛的应用使用。 Unity…

    C# 2023年6月3日
    00
合作推广
合作推广
分享本页
返回顶部