條形碼以機器可讀的形式直觀地表示數據。通常,它包含有關產品或公司的數據或信息,以數字和/或平行線圖案的形式編碼。在ASP.NET MVC中,我們可以生成各種類型的條碼,如Data Matrix、Aztec、Code 128等。在本文中,我們將學習如何在ASP.NET MVC應用程序中生成和顯示條碼圖像。按照上述步驟後,我們將擁有自己的 ASP.NET MVC 條碼生成器。讓我們開始吧。
文章應涵蓋以下主題:
ASP.NET MVC 條形碼生成器的功能
我們的 ASP.NET 條形碼生成器將具有以下功能。
- 生成以下類型的條形碼符號:
- Code128
- 代碼11
- 代碼39
- 二維碼
- 數據矩陣
- EAN13
- EAN8
- ITF14
- PDF417
- 將生成的條碼圖片保存為以下格式:
- PNG
- JPEG格式
- 骨形態發生蛋白
- 電磁場
- SVG
- 預覽生成的條形碼圖像。
- 將生成的條形碼圖像下載到本地磁盤。
用於在 ASP.NET MVC 中生成和顯示條碼圖像的 .NET API
為了生成條碼圖像並在 ASP.NET MVC 應用程序中顯示它們,我們將使用 Aspose.BarCode for .NET API。它允許我們生成和識別範圍廣泛的 1D 和 2D 條形碼類型。請 下載 API 的 DLL 或使用 NuGet 安裝它。
PM> Install-Package Aspose.BarCode
在 ASP.NET MVC 中生成和顯示條碼圖像的步驟
我們可以按照以下步驟在 ASP.NET MVC 應用程序中生成和顯示條碼圖像:
- 首先,創建一個新項目並選擇 ASP.NET Web Application (.NET Framework) 項目模板。
- 接下來,在創建新的 ASP.NET Web 應用程序對話框中,選擇 MVC,然後選擇創建。
- 然後,打開 NuGet 包管理器並安裝 Aspose.BarCode for .NET 包。
- 接下來,創建一個新文件夾“Images”來保存生成的條碼圖像。
- 現在,在“Models”文件夾中創建一個名為“Barcode”的模型來存儲條碼信息。
// 條碼基本信息
public class Barcode
{
public string Text { get; set; }
public BarcodeType BarcodeType { get; set; }
public BarCodeImageFormat ImageType { get; set; }
}
- 此外,添加枚舉以列出支持的條碼符號體系。它可以添加到“Models”文件夾下的一個單獨的類中,也可以添加到Barcode.cs類文件中。
// 條碼符號
public enum BarcodeType
{
Code128,
Code11,
Code32,
QR,
Datamatrix,
EAN13,
EAN8,
ITF14,
PDF417
}
- 同樣,添加枚舉以列出支持的圖像格式。
// 圖片格式
public enum ImageType
{
Png,
Jpeg,
Bmp,
Emf,
Svg
}
- 接下來,打開 Views/Home/index.cshtml 並將其內容替換為以下腳本。
@using BarcodeGeneratorMVC.Models
@model Barcode
@{
ViewBag.Title = "Home Page";
}
<div class="row">
<div class="col-lg-6">
<h2>Generate Barcode</h2>
@using (Html.BeginForm())
{
<div class="form-group">
@Html.Label("Select Barcode Type:", new { @class = "col-md-12 control-label" })
<div class="col-md-12">
@Html.DropDownListFor(model => model.BarcodeType,
new SelectList(Enum.GetValues(typeof(BarcodeType))),
"Select Barcode", new { @class = "form-control" })
</div>
</div>
<div class="form-group">
@Html.Label("Enter Your Text:", new { @class = "col-md-12 control-label" })
<div class="col-md-12">
@Html.EditorFor(m => m.Text, new { @class = "form-control" })
</div>
</div>
<div class="form-group">
@Html.Label("Select Image Format:", new { @class = "col-md-12 control-label" })
<div class="col-md-12">
@Html.RadioButtonFor(model => model.ImageType, ImageType.Png) @Html.Label("PNG")
@Html.RadioButtonFor(model => model.ImageType, ImageType.Jpeg) @Html.Label("JPG")
@Html.RadioButtonFor(model => model.ImageType, ImageType.Bmp) @Html.Label("BMP")
@Html.RadioButtonFor(model => model.ImageType, ImageType.Emf) @Html.Label("EMF")
@Html.RadioButtonFor(model => model.ImageType, ImageType.Svg) @Html.Label("SVG")
</div>
</div>
<div class="form-group">
<div class="col-md-12">
<input type="submit" class="btn btn-default" value="Generate Barcode" />
</div>
</div>
}
</div>
<div class="col-lg-6">
<h2>View Barcode Image</h2>
@{
if (!string.IsNullOrEmpty(@ViewBag.ImagePath))
{
<div class="form-group">
<div class="col-md-12">
<img src=@Url.Content(@ViewBag.ImagePath) alt="Barcode Image" />
</div>
</div>
<div class="form-group">
<div class="col-md-12">
@Html.ActionLink("Download Image", "Download", "Home", new
{ // routeValues
ImagePath = @ViewBag.ImagePath,
ImageName = @ViewBag.ImageName
},
null)
</div>
</div>
}
}
</div>
<hr />
</div>
- 然後,打開“HomeController”類並添加一個新的操作結果來處理髮布請求。
[HttpPost]
public ActionResult Index(Barcode barcode)
{
string codeText = barcode.Text;
string imageName = barcode.Text + "." + barcode.ImageType;
string imagePath = "/Images/" + imageName;
string imageServerPath = Server.MapPath("~" + imagePath);
var encodeType = EncodeTypes.Code128;
switch (barcode.BarcodeType)
{
case BarcodeType.Code128:
encodeType = EncodeTypes.Code128;
break;
case BarcodeType.ITF14:
encodeType = EncodeTypes.ITF14;
break;
case BarcodeType.EAN13:
encodeType = EncodeTypes.EAN13;
break;
case BarcodeType.Datamatrix:
encodeType = EncodeTypes.DataMatrix;
break;
case BarcodeType.Code32:
encodeType = EncodeTypes.Code32;
break;
case BarcodeType.Code11:
encodeType = EncodeTypes.Code11;
break;
case BarcodeType.PDF417:
encodeType = EncodeTypes.Pdf417;
break;
case BarcodeType.EAN8:
encodeType = EncodeTypes.EAN8;
break;
case BarcodeType.QR:
encodeType = EncodeTypes.QR;
break;
}
using (Stream str = new FileStream(imageServerPath, FileMode.Create, FileAccess.Write))
{
BarcodeGenerator gen = new BarcodeGenerator(encodeType, codeText);
gen.Save(str, barcode.ImageType);
}
ViewBag.ImagePath = imagePath;
ViewBag.ImageName = imageName;
return View();
}
- 之後,在“HomeController”中添加一個新的action result來處理圖片下載請求。
public ActionResult Download(string ImagePath, string ImageName)
{
string contentType = "application/img";
return File(ImagePath, contentType, Path.GetFileName(ImageName));
}
- 最後,運行應用程序。
演示 ASP.NET MVC 條碼生成器
以下是我們剛剛創建的 ASP.NET MVC 條碼生成器應用程序的演示。
下載源代碼
您可以從 GitHub 下載 ASP.NET MVC 條碼生成器應用程序的完整源代碼。
獲得免費許可證
您可以 獲得免費的臨時許可證 來試用該庫,而沒有評估限制。
結論
在本文中,我們學習瞭如何在 ASP.NET MVC 應用程序中生成和顯示條形碼圖像。我們還了解瞭如何以編程方式下載生成的條形碼圖像。此外,您可以使用文檔了解更多關於 Aspose.BarCode for .NET API 的信息。如有任何歧義,請隨時在論壇上與我們聯繫。