如何使用Aspose.BarCode创建条形码

来源:互联网 发布:sftp端口 编辑:程序博客网 时间:2024/05/21 10:29

原文来自:慧都控件网http://www.evget.com/zh-CN/Info/catalog/18049.html

在本文中,我们将使用ASP.NET web services创建条形码。我们还将创建含有条形码的Windows Forms和Console应用程序。该过程会用到Aspose.BarCode这个控件。

这样做有什么好处呢?

Web services的主要优势在于软件与外部应用程序集成。标准化的请求/响应模型,任何基于XML web service的客户端应用程序都可以从中受益。以下是简短的条形码服务的表现形式。客户端不需要在此安装Aspose.BarCode for .NET。他们只需发送两个字符串值(代码电文和符号),就将从服务端获取条形码(字节数组)。

打开Microsoft Visual Studio,并创建一个“ASP.NET Web Service Application”新项目,命名为“BarCodeService”。 添加以下引用。                                              

1.“Add Reference”对话框的System.Drawing from .NET选项卡

2. Aspose.BarCode。

找到 Aspose.BarCode for .NET安装的位置并选择。Visual Studio会添加了一个默认的类“Service1“到Service1.asmx文档的Web Service项目。 打开它,并为这个类添加以下方法。

[C#]

[WebMethod]public byte[] GetBarcode(string strCodetext, string strSymbology){    // Initialize BarCodeBuilder    BarCodeBuilder builder = new BarCodeBuilder();    // Set codetext    builder.CodeText = strCodetext;    // Set barcode symbology    builder.SymbologyType = (Symbology) Enum.Parse(typeof(Symbology), strSymbology, true);    // Create and save the barcode image to memory stream    MemoryStream imgStream = new MemoryStream();    builder.Save(imgStream, ImageFormat.Png);    // Return the barcode image as a byte array    return imgStream.ToArray();} 

[VB.NET]

<WebMethod> _Public Function GetBarcode(ByVal strCodetext As String, ByVal strSymbology As String) As Byte()    ' Initialize BarCodeBuilder    Dim builder As BarCodeBuilder = New BarCodeBuilder()    ' Set codetext    builder.CodeText = strCodetext    ' Set barcode symbology    builder.SymbologyType = CType(System.Enum.Parse(GetType(Symbology), strSymbology, True), Symbology)    ' Create and save the barcode image to memory stream    Dim imgStream As MemoryStream = New MemoryStream()    builder.Save(imgStream, ImageFormat.Png)    ' Return the barcode image as a byte array    Return imgStream.ToArray()End Function 

web方法需要客户端以下两个参数:

1.Codetext

2.Symbology

这些参数为String字符串类型。这些参数被传递到BarCodeBuilder类,然后创建条形码,并以字节数组的形式给客户端发送条形码。

使用Windows Forms应用中的Web Service

打开Visual Studio,并创建一个新类型“Windows Application”的项目。命名项目为“GetBarCodeWinForms”。通过右键单击“References”,选择,然后从菜单中选择““Add Service Reference”为web service添加引用。键入web service的地址。在得到正确的结果之后,在Namespace命名域中输入“BarCodeService”,点击“Ok”按钮以添加引用。

设计形式如下图所示:

它包含以下控件:

1.Textbox:输入代码

2.Combobox:输入符号类型

3.Button:调用web service

4.Picturebox:显示条形码

为代码的按钮单击事件添加以下代码。

[C#]

// Initialize the Barcode Web ServiceBarCodeService.Service1SoapClient barcodeService = new BarCodeService.Service1SoapClient();// Call the GetBarcode web method// Pass codetext and symbology in parameters// Get the barcode image returned from the web method in the form of byte arraybyte[] arrBarcodeImage = barcodeService.GetBarcode(txtCodetext.Text, cmbSymbology.Text);// Create an instance of Image from the byte arrayMemoryStream imgStream = new MemoryStream(arrBarcodeImage);Image imgBarcode = Bitmap.FromStream(imgStream);// Assign the barcode image to the Picturebox controlpicBarcodeImage.Image = imgBarcode;picBarcodeImage.Height = imgBarcode.Height;picBarcodeImage.Width = imgBarcode.Width; 

[VB.NET]

' Initialize the Barcode Web ServiceDim barcodeService As BarCodeService.Service1SoapClient = New BarCodeService.Service1SoapClient()' Call the GetBarcode web method' Pass codetext and symbology in parameters' Get the barcode image returned from the web method in the form of byte arrayDim arrBarcodeImage As Byte() = barcodeService.GetBarcode(txtCodetext.Text, cmbSymbology.Text)' Create an instance of Image from the byte arrayDim imgStream As MemoryStream = New MemoryStream(arrBarcodeImage)Dim imgBarcode As Image = Bitmap.FromStream(imgStream)' Assign the barcode image to the Picturebox controlpicBarcodeImage.Image = imgBarcodepicBarcodeImage.Height = imgBarcode.HeightpicBarcodeImage.Width = imgBarcode.Width

运行该应用程序,指定某些值,点击“Get Barcode”按钮。应用程序将使用条形码web service,并从中获取条形码。条形码将显示在如下窗体中。

从Console Application控制台应用程序使用Web Service

在Visual Studio中创建一个“Console Application”新项目,将项目命名为“GetBarCodeConsole”。 将该引用添加到条码服务中,方法和winforms应用程序中的相同。在main()方法中编写以下代码。

[C#]

try{    // Initialize the Barcode Web Service    BarCodeService.Service1SoapClient c = new GetBarCodeConsole.BarCodeService.Service1SoapClient();    // Call the GetBarcode web method    // Pass codetext and symbology in parameters    // Get the barcode image returned from the web method in the form of byte array    byte[] arrBarcodeImage = c.GetBarcode("console application", "pdf417");    // Save the byte array (barcode image) to disk    FileStream imgWriter = new FileStream("barcode.png", FileMode.Create);    imgWriter.Write(arrBarcodeImage, 0, arrBarcodeImage.Length);    imgWriter.Close();    // Open the barcode image    Process.Start("barcode.png");}catch (Exception ex){    Console.WriteLine(ex.Message);}Console.WriteLine("Press any key to exit....");Console.ReadKey(); 

[VB.NET]

Try    ' Initialize the Barcode Web Service    Dim c As BarCodeService.Service1SoapClient = New GetBarCodeConsole.BarCodeService.Service1SoapClient()    ' Call the GetBarcode web method    ' Pass codetext and symbology in parameters    ' Get the barcode image returned from the web method in the form of byte array    Dim arrBarcodeImage As Byte() = c.GetBarcode("console application", "pdf417")    ' Save the byte array (barcode image) to disk    Dim imgWriter As FileStream = New FileStream("barcode.png", FileMode.Create)    imgWriter.Write(arrBarcodeImage, 0, arrBarcodeImage.Length)    imgWriter.Close()    ' Open the barcode image    Process.Start("barcode.png")Catch ex As Exception    Console.WriteLine(ex.Message)End TryConsole.WriteLine("Press any key to exit....")Console.ReadKey() 

运行该应用程序,它将使用条形码web service,得到条形码,并保存在本地磁盘上。

 

 

原创粉丝点击