使用IRONBARCODE

如何在ASP.NET中使用C#打印条形码

更新 2024年一月20日
分享:

本文将演示如何在 ASP.NET Web 应用程序中使用 C# 打印条形码图像。本示例将使用 MVC 框架,但您也可以根据需要使用 ASP.NET Web 窗体、Windows 窗体或 Web API。

掌握 ASP.NET MVC 框架的基本知识将有助于更好地理解本文。


创建一个 MVC 项目

打开 Microsoft Visual Studio。单击 "创建新项目" > 从模板中选择 ASP.NET Web 应用程序 > 按 "下一步" > 给项目命名 > 按 "下一步" > 选择 MVC > 单击 "创建"按钮。项目将如下图所示创建。

如何在 ASP.NET 中用 C# 打印条形码,图 1:创建一个新的 ASP.NET 项目

创建一个新的 ASP.NET 项目

添加模型

右键单击 "模型 "文件夹 > 添加 > 类...

如何在 ASP.NET 中用 C# 打印条形码,图 2:导航至添加类对话框

导航至添加类别对话框

将出现一个新窗口。将您的类命名为 BarcodeModel

在模型类中编写以下代码。

public class BarcodeModel
{
    [Display(Name ="Barcode File Name")]
    public string FileName { get; set; }

    [Display(Name = "Barcode Content")]
    public string BarcodeContent { get; set; }
}
public class BarcodeModel
{
    [Display(Name ="Barcode File Name")]
    public string FileName { get; set; }

    [Display(Name = "Barcode Content")]
    public string BarcodeContent { get; set; }
}
Public Class BarcodeModel
	<Display(Name :="Barcode File Name")>
	Public Property FileName() As String

	<Display(Name := "Barcode Content")>
	Public Property BarcodeContent() As String
End Class
VB   C#

文件名 "用于从用户处获取条形码图像名称。BarcodeContent "用于获取条形码的内容。

添加控制器

接下来,在项目中添加一个 Controller 。它将使用 MVC 模型与 "视图 "和 "模型 "通信。生成条形码的代码只有两三行。因此,不需要单独的类,而是将代码添加到控制器中。

要添加控制器,请右键单击控制器文件夹 > 添加 > 控制器。将出现一个新窗口。选择 MVC 5 Controller Empty。单击添加按钮。将出现一个新框。

如何在 ASP.NET 中用 C# 打印条形码,图 3:添加控制器对话框

添加控制器对话框

写入控制器名称,例如 BarcodeController。点击添加按钮。一个新的控制器就会生成。

下一步是安装条形码库。

安装条码库

推荐使用 IronBarcode 库作为生成条形码的第三方库。它可免费用于开发,并提供多种自定义条形码的功能,如添加 为条形码图像添加徽标在条形码下方或上方添加值、 在条形码下方或上方添加注释调整条形码大小,将条形码保存在 多种图像格式等。更多详情,请点击此处。

转到软件包管理器控制台。键入以下命令并按 Enter。

Install-Package BarCode

该命令将在项目中安装 IronBarcode 库。

生成条形码

接下来,在控制器中添加以下示例代码。

[HttpPost]
public ActionResult CreateBarcode(BarcodeModel model)
{
    try
    {
        var MyBarCode = IronBarCode.BarcodeWriter.CreateBarcode(model.BarcodeContent, BarcodeEncoding.Code128);
        string path = Server.MapPath("~/Files/");
        string filepath = Path.Combine(path, model.FileName);
        MyBarCode.AddBarcodeValueTextAboveBarcode();
        MyBarCode.SaveAsJpeg(filepath);
        string image = Directory.GetFiles(path).FirstOrDefault();
        ViewBag.fileName = image;
        return View();
    }
    catch
    {
        return View();
    }
}
[HttpPost]
public ActionResult CreateBarcode(BarcodeModel model)
{
    try
    {
        var MyBarCode = IronBarCode.BarcodeWriter.CreateBarcode(model.BarcodeContent, BarcodeEncoding.Code128);
        string path = Server.MapPath("~/Files/");
        string filepath = Path.Combine(path, model.FileName);
        MyBarCode.AddBarcodeValueTextAboveBarcode();
        MyBarCode.SaveAsJpeg(filepath);
        string image = Directory.GetFiles(path).FirstOrDefault();
        ViewBag.fileName = image;
        return View();
    }
    catch
    {
        return View();
    }
}
<HttpPost>
Public Function CreateBarcode(ByVal model As BarcodeModel) As ActionResult
	Try
		Dim MyBarCode = IronBarCode.BarcodeWriter.CreateBarcode(model.BarcodeContent, BarcodeEncoding.Code128)
		Dim path As String = Server.MapPath("~/Files/")
		Dim filepath As String = System.IO.Path.Combine(path, model.FileName)
		MyBarCode.AddBarcodeValueTextAboveBarcode()
		MyBarCode.SaveAsJpeg(filepath)
		Dim image As String = Directory.GetFiles(path).FirstOrDefault()
		ViewBag.fileName = image
		Return View()
	Catch
		Return View()
	End Try
End Function
VB   C#

try-catch "用于捕获任何运行时异常。

创建条形码 "函数由 条码写入器 类需要两个参数:条形码内容和编码方案。此外,它还接受其他 11 个可选参数,包括最大高度、最大宽度等。

Server.MapPath "函数用于映射生成的条形码图像的保存路径。Path.Combine "方法将合并路径和条形码图像名称。

路径 添加高于条码的条码值文本 函数将添加条码值。IronBarcode 还提供其他条码设置,如 "最大高度"、"最大宽度"、"条码"、"颜色 "等。您可以探索并使用各种参数。

参数 保存为 Jpeg 函数将路径作为参数,并将生成的条形码保存在该特定路径中。

Directory.GetFile "方法将获取新生成的条形码图像。

ViewBag.FileName "用于将条形码图像的路径发送到视图,以显示生成的条形码图像。

通过将编码方案从 Code128 更改为 QRCode.

添加查看

下一步是通过添加一个新的视图为该 ASP.NET Web 应用程序提供客户端。右键单击控制器方法的名称,然后单击 "添加视图 "按钮。

如何在 ASP.NET 中用 C# 打印条形码,图 4:导航至添加视图对话框

导航添加查看对话框

将出现一个新窗口。选择 MVC 5 视图,然后单击添加按钮。

如下图所示,会出现一个新的提示。

如何在 ASP.NET 中用 C# 打印条形码,图 5:添加视图对话框

添加视图对话框

为视图命名,然后单击添加按钮。一个新的 .cshtml 文件将被创建。

在新生成的视图中添加以下代码。

@model GenerateBarcodeMVC.Models.BarcodeModel

@{
ViewBag.DisplayBarcode = false;
}

<h2>Create</h2>

@using (Html.BeginForm())
{
@Html.AntiForgeryToken()

<div class="form-horizontal">
    <h4>GenerateBarcode</h4>
    <hr />
    @Html.ValidationSummary(true, "", new { @class = "text-danger" })
    <div class="form-group">
        @Html.LabelFor(model => model.FileName, htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.EditorFor(model => model.FileName, new { htmlAttributes = new { @class = "form-control" } })
            @Html.ValidationMessageFor(model => model.FileName, "", new { @class = "text-danger" })
        </div>
    </div>

    <div class="form-group">
        @Html.LabelFor(model => model.BarcodeContent, htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.EditorFor(model => model.BarcodeContent, new { htmlAttributes = new { @class = "form-control" } })
            @Html.ValidationMessageFor(model => model.BarcodeContent, "", new { @class = "text-danger" })
        </div>
    </div>

    <div class="form-group">
        <div class="col-md-offset-2 col-md-10">
            <img src="~/Files/@Path.GetFileName(ViewBag.FileName)" alt="Barcode"  />
        </div>
    </div>

    <div class="form-group">
        <div class="col-md-offset-2 col-md-10">
            <input type="submit" value="Create" class="btn btn-default" />
        </div>
    </div>
</div>
}

@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
@model GenerateBarcodeMVC.Models.BarcodeModel

@{
ViewBag.DisplayBarcode = false;
}

<h2>Create</h2>

@using (Html.BeginForm())
{
@Html.AntiForgeryToken()

<div class="form-horizontal">
    <h4>GenerateBarcode</h4>
    <hr />
    @Html.ValidationSummary(true, "", new { @class = "text-danger" })
    <div class="form-group">
        @Html.LabelFor(model => model.FileName, htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.EditorFor(model => model.FileName, new { htmlAttributes = new { @class = "form-control" } })
            @Html.ValidationMessageFor(model => model.FileName, "", new { @class = "text-danger" })
        </div>
    </div>

    <div class="form-group">
        @Html.LabelFor(model => model.BarcodeContent, htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.EditorFor(model => model.BarcodeContent, new { htmlAttributes = new { @class = "form-control" } })
            @Html.ValidationMessageFor(model => model.BarcodeContent, "", new { @class = "text-danger" })
        </div>
    </div>

    <div class="form-group">
        <div class="col-md-offset-2 col-md-10">
            <img src="~/Files/@Path.GetFileName(ViewBag.FileName)" alt="Barcode"  />
        </div>
    </div>

    <div class="form-group">
        <div class="col-md-offset-2 col-md-10">
            <input type="submit" value="Create" class="btn btn-default" />
        </div>
    </div>
</div>
}

@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
model ReadOnly Property () As GenerateBarcodeMVC.Models.BarcodeModel
ViewBag.DisplayBarcode = False
End Property

'INSTANT VB TODO TASK: The following line could not be converted:
(Of h2) Create</h2> [using](Html.BeginForm())
If True Then
'INSTANT VB WARNING: Instant VB cannot determine whether both operands of this division are integer types - if they are then you should use the VB integer division operator:
Html.AntiForgeryToken() <div class="form-horizontal"> (Of h4) GenerateBarcode</h4> <hr /> Html.ValidationSummary(True, "", New With {Key .class = "text-danger"}) <div class="form-group"> Html.LabelFor(Function(model) model.FileName, htmlAttributes:= New With {Key .class = "control-label col-md-2"}) <div class="col-md-10"> Html.EditorFor(Function(model) model.FileName, New With {
	Key .htmlAttributes = New With {Key .class = "form-control"}
}) Html.ValidationMessageFor(Function(model) model.FileName, "", New With {Key .class = "text-danger"}) </div> </div> <div class="form-group"> Html.LabelFor(Function(model) model.BarcodeContent, htmlAttributes:= New With {Key .class = "control-label col-md-2"}) <div class="col-md-10"> Html.EditorFor(Function(model) model.BarcodeContent, New With {
	Key .htmlAttributes = New With {Key .class = "form-control"}
}) Html.ValidationMessageFor(Function(model) model.BarcodeContent, "", New With {Key .class = "text-danger"}) </div> </div> <div class="form-group"> <div class="col-md-offset-2 col-md-10"> <img src="~/Files/@Path.GetFileName(ViewBag.FileName)" alt="Barcode" /> </div> </div> <div class="form-group"> <div class="col-md-offset-2 col-md-10"> <input type="submit" value="Create" class="btn btn-default" /> </div> </div> </div>
End If
Dim Scripts As section
If True Then
Scripts.Render("~/bundles/jqueryval")
End If
VB   C#

接下来,右键单击视图,然后单击 "运行到浏览器 "按钮。

输出

如何在 ASP.NET 中用 C# 打印条形码,图 6:运行 Web 应用程序以显示创建表格

运行网络应用程序以显示创建表格

输入条形码图像名称和条形码内容,如下所示:

如何在 ASP.NET 中用 C# 打印条形码,图 7:输入您的条形码内容

输入条形码内容

单击创建按钮。条形码图像将生成并显示在屏幕上,如下图所示。

如何在 ASP.NET 中用 C# 打印条形码,图 8:从 URL 生成条形码

从 URL 生成条形码

摘要

本教程演示了如何使用 ASP.NET C# 和 MVC 框架生成条形码。使用 Microsoft Visual Studio 作为集成开发环境。IronPDF 是一个第三方库,可免费用于开发并兼容所有版本的 .NET Framework,包括最新发布的版本。IronBarcode 运行速度快,提供多种条形码处理功能。它还可以 生成二维码 指定不同的类型。

还有其他许多有用的库,如处理 PDF 文档的 IronPDF、处理 Excel 文档的 IronXL 和处理 OCR 的 IronOCR。目前,只要购买完整的 Iron Suite,就能以两个库的价格获得所有五个库。访问 我们的许可页面 了解更多详情。

< 前一页
如何在C# Windows应用程序中生成二维码
下一步 >
条形码生成器 .NET 教程

准备开始了吗? 版本: 2024.8 刚刚发布

免费NuGet下载 总下载量: 1,167,541 查看许可证 >