在 C# 中生成二维码(QR Code),是处理 URL 编码、登录凭证、产品信息等数据的实用方式。借助支持 .NET 的条码库,可以快速生成可扫描的二维码图片,并将其集成到应用程序或文档中。
本文将介绍如何构建一个实用的 C# 二维码生成器:从字符串生成二维码、嵌入Logo,再到将二维码插入 PDF、Word、Excel 等常见文件中。同时还包含 Windows 和 ASP.NET 应用中的使用方法,代码简洁、易于复用。
快速导航
- 1. C# 中生成二维码的实现方式
- 2. 如何用 C# 从字符串生成二维码
- 3. 将二维码插入 PDF、Word、Excel 文档
- 4. 在桌面程序和 Web 中使用二维码
- 5. 常见问题
- 6. 总结
1. C# 中生成二维码的原理
在编写代码之前,我们先了解一下二维码的基本概念。二维码是一种二维矩阵条码,可以存储网址、文本、联系人等各种信息。在 C# 中生成二维码,一般包括以下几个步骤:
- 编码目标内容(通常是字符串)
- 设置二维码参数(如容错等级、大小、边距等)
- 将结果导出为图像
本文采用 Spire.Barcode for .NET 条码库实现在 C# 中生成二维码,简单易用、功能灵活。
使用 NuGet 安装 Spire.Barcode for .NET
PM> Install-Package Spire.Barcode
2. 如何用 C# 从字符串生成二维码
来看一个基础示例:如何用 C# 从字符串生成二维码。借助 Spire.Barcode 提供的 BarcodeSettings
和 BarCodeGenerator
类,可以轻松将任意文本或链接转换为二维码。
关键步骤包括:
- 设置二维码的内容与格式(包括数据、容错等级、尺寸、边距、Logo)
- 生成二维码图像(System.Drawing.Image)
- 保存或嵌入二维码到其他文件或系统
二维码生成示例:
using Spire.Barcode;
using System.Drawing;
using System.Drawing.Imaging;
namespace GenerateQRCode
{
class Program
{
static void Main(string[] args)
{
// 初始化条码设置
BarcodeSettings settings = new BarcodeSettings();
// 指定条码类型为二维码
settings.Type = BarCodeType.QRCode;
// 设置二维码的内容
settings.Data = "https://www.example.com/";
// 设置显示的文字(可选)
settings.Data2D = "扫描访问example.com";
settings.ShowTextOnBottom = true;
settings.TextFont = new Font(FontFamily.GenericSansSerif, 16.0f);
// 设置数据模式和纠错级别
settings.QRCodeDataMode = QRCodeDataMode.Auto;
settings.QRCodeECL = QRCodeECL.H;
// (可选)在二维码中嵌入 logo 图片
settings.QRCodeLogoImage = Image.FromFile("Logo.png");
// 设置条码模块的宽度
settings.X = 3.0f;
// 创建二维码生成器
BarCodeGenerator generator = new BarCodeGenerator(settings);
// 生成二维码图像
Image qr = generator.GenerateImage();
// 保存图像为 PNG 文件
qr.Save("QR Code.png", ImageFormat.Png);
}
}
}
生成的二维码图像:
你可能感兴趣:如何使用 C# 识别二维码
3. 将二维码插入 PDF、Word、Excel 文档
将二维码嵌入到文档中是常见的应用场景,比如生成报告、证书或发票等。以下是三种插入方式:
插入 PDF 文件
PdfDocument pdf = new PdfDocument();
PdfPageBase page = pdf.AppendPage();
page.Canvas.DrawImage(PdfImage.FromImage(qr), 100, 400, 100, 100);
pdf.SaveToFile("output.pdf");
适用于:电子发票、物流标签、认证文档
插入 Word 文档
Document doc = new Document();
Section section = doc.AddSection();
Paragraph para = section.AddParagraph();
DocPicture picture = para.AppendPicture(qr);
doc.SaveToFile("output.docx", FileFormat.Docx);
适用于:合同、个性化信函、员工或学生证
插入 Excel 表格
Workbook book = new Workbook();
Worksheet sheet = book.Worksheets[0];
sheet.Pictures.Add(2, 2, qr); // Cell C3
book.SaveToFile("output.xlsx", ExcelVersion.Version2016);
适用于:客户信息、产品清单、物流追踪等
推荐阅读:如何从 PDF 中读取条码
4. 在桌面程序和 Web 中使用二维码
Windows 桌面应用
在 Windows Forms 应用中,可将二维码图像显示在 PictureBox
控件中,并允许用户另存图像。适用于内部系统或终端设备。
pictureBox1.Image = qr;
ASP.NET 网页应用
通过将图像写入内存流并以图片形式返回,可在网页端实时展示二维码。这种方法轻量、易集成、无需额外框架。
MemoryStream ms = new MemoryStream();
qr.Save(ms, ImageFormat.Png);
return File(ms.ToArray(), "image/png");
5. FAQ
Q:如何用 C# 生成二维码?
A:使用像 Spire.Barcode for .NET 这样的库,设置好内容与参数,几行代码即可生成图像,操作简单。
Q:C# 哪个二维码生成工具最好?
A:Spire.Barcode for .NET 是一个不错的选择,支持多种条码类型、嵌入Logo、并能与 Office 文档很好集成。
Q:二维码尺寸和边距可以自定义吗?
A:当然可以。可通过设置 X
、LeftMargin
和 TopMargin
等属性进行控制。
Q:生成的二维码可以嵌入到哪些地方?
A:支持嵌入到 PDF、Word、Excel 文档,或在 Windows 应用、ASP.NET 页面中显示,使用场景丰富。
6. 总结
使用 C# 创建二维码生成器既简单又高效。通过本教程,你可以快速生成二维码,将其插入常见文档或集成到桌面和 Web 应用中。未来你还可以拓展批量生成、样式自定义、扫码识别等高级功能。
申请免费临时授权,解锁 Spire.Barcode for .NET 全部特性。