USO DE IRONBARCODE

Cómo imprimir códigos de barras en ASP.NET en C#

Jordi Bardia
Jordi Bardia
25 de junio, 2022
Actualizado 20 de enero, 2024
Compartir:

Este artículo demostrará cómo imprimir imágenes de código de barras en Aplicaciones Web ASP.NET usando C#. Para este ejemplo se utilizará el MVC Framework, pero también puede utilizar ASP.NET Web Forms, Windows Forms o Web API según sus necesidades.

Un conocimiento básico de ASP.NET MVC Framework le permitirá comprender mejor este artículo.


Crear un proyecto MVC

Abra Microsoft Visual Studio. Haga clic en Crear nuevo proyecto > Seleccione Aplicación web de ASP.NET de las plantillas > Presione Siguiente > Nombre su proyecto > Presione Siguiente > Seleccione MVC > Haga clic en el botón Crear. El proyecto se creará como se muestra a continuación.

Cómo imprimir un código de barras en ASP.NET en C#, Figura 1: Crear un nuevo proyecto ASP.NET

Crea un nuevo proyecto ASP.NET

Añadir modelo

Haga clic derecho en la carpeta Models > Agregar > Clase....

Cómo imprimir un código de barras en ASP.NET en C#, Figura 2: Navegar para agregar el cuadro de diálogo de clase

Navegar a agregar diálogo de Clase

Aparecerá una nueva ventana. Nombre a su clase como BarcodeModel.

Escribe el siguiente código en la clase modelo.

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
$vbLabelText   $csharpLabel

El FileName se utilizará para obtener el nombre de la imagen del código de barras del usuario. El BarcodeContent se utiliza para tomar el contenido del código de barras.

Añadir controlador

A continuación, se agrega un Controller al proyecto. Se comunicará con un View y un Model utilizando el modelo MVC. El código para generar códigos de barras consta de sólo dos o tres líneas. Por lo tanto, no es necesaria una clase aparte; en su lugar, el código se añade dentro del Controlador.

Para agregar el controlador, haz clic derecho en la carpeta Controllers > Agregar > Controlador. Aparecerá una nueva ventana. Seleccione MVC 5 Controlador vacío. Haga clic en el botón Añadir. Aparecerá un nuevo cuadro.

Cómo imprimir un código de barras en ASP.NET en C#, Figura 3: Diálogo para agregar controlador

Agregar cuadro de diálogo del controlador

Escribe el nombre de tu controlador, por ejemplo, BarcodeController. Haz clic en el botón Añadir. Se generará un nuevo controlador.

El siguiente paso es instalar la biblioteca de códigos de barras.

Instalar la biblioteca de códigos de barras

Se recomienda la biblioteca IronBarcode como biblioteca de terceros para generar códigos de barras. Es gratuito para el desarrollo y ofrece múltiples funcionalidades para personalizar códigos de barras, como agregar un logotipo a una imagen de código de barras, agregar valor debajo o encima del código de barras, agregar anotaciones debajo o encima del código de barras, cambiar el tamaño del código de barras, guardar el código de barras en múltiples formatos de imagen, etc. Para más detalles, por favor haga clic aquí.

Vaya a la Consola del Administrador de Paquetes. Escriba el siguiente comando y pulse Intro.

Install-Package BarCode

Este comando instalará la librería IronBarcode en el proyecto.

Generar el código de barras

A continuación, añada el siguiente código de ejemplo al controlador.

[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
$vbLabelText   $csharpLabel

Se utiliza try-catch para capturar cualquier excepción en tiempo de ejecución.

La función CreateBarcode proporcionada por la clase BarcodeWriter toma dos argumentos: el contenido del código de barras y el esquema de codificación. Además, también acepta otros 11 argumentos opcionales que incluyen la altura máxima, la anchura máxima, etc.

La función Server.MapPath se utiliza para asignar la ruta donde se guardarán las imágenes de los códigos de barras generados. El método Path.Combine combinará la ruta y el nombre de la imagen del código de barras.

La función AddBarcodeValueTextAboveBarcode añadirá el valor del código de barras. IronBarcode ofrece otros ajustes de código de barras como max-height, max-width, barcode, color, etcétera. Puede explorar y utilizar los distintos parámetros.

La función SaveAsJpeg toma la ruta como argumento y guarda los códigos de barras generados en esa ruta particular.

El método Directory.GetFile obtendrá la imagen de código de barras recién generada.

ViewBag.FileName se utiliza para enviar la ruta de la imagen del código de barras a la vista para mostrar la imagen del código de barras generada.

Los códigos QR también se pueden generar de la misma manera cambiando el esquema de codificación de Code128 a QRCode.

Añadir vista

El siguiente paso es proporcionar el lado del cliente para esta Aplicación Web ASP.NET añadiendo una nueva Vista. Haga clic con el botón derecho en el nombre del método del controlador y haga clic en el botón "Añadir vista".

Cómo imprimir un código de barras en ASP.NET en C#, Figura 4: Navegar al cuadro de diálogo Agregar vista

Navegar para añadir el diálogo de vista

Aparecerá una nueva ventana. Seleccione Vista MVC 5 y haga clic en el botón Añadir.

Aparecerá un nuevo mensaje como el que se muestra a continuación.

Cómo imprimir un código de barras en ASP.NET en C#: Figura 5: Agregar diálogo de vista

Agregar diálogo de vista

Nombre su Vista y haga clic en el botón Agregar. Se creará un nuevo archivo .cshtml.

Añade el siguiente código dentro de tu nueva vista generada.

@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
$vbLabelText   $csharpLabel

A continuación, haga clic con el botón derecho del ratón dentro de la Vista y haga clic en el botón Ejecutar en el navegador.

Salida

Cómo Imprimir Código de Barras en ASP.NET en C#, Figura 6: Ejecutar Aplicación Web para mostrar el formulario de Creación

Ejecutar aplicación web para mostrar formulario de creación

Introduzca el nombre de la imagen del código de barras y el contenido del código de barras como se muestra a continuación:

Cómo imprimir un código de barras en ASP.NET en C#, Figura 7: Ingrese el contenido de su código de barras

Ingresa el contenido de tu código de barras

Haga clic en el botón Create. La imagen del código de barras se generará y se mostrará en la pantalla como se muestra a continuación.

Cómo imprimir un código de barras en ASP.NET en C#, Figura 8: Generar un código de barras desde una URL

Generar un código de barras a partir de una URL

Resumen

Este tutorial muestra cómo generar códigos de barras utilizando ASP.NET en C#, combinado con el MVC Framework. Como IDE se utiliza Microsoft Visual Studio. IronPDF es una biblioteca de terceros gratuita para el desarrollo y compatible con todas las versiones de .NET Framework, incluida la versión recién lanzada. IronBarcode es rápido y ofrece múltiples funciones para trabajar con códigos de barras. También puede generar códigos QR especificando diferentes tipos.

Existen otras muchas bibliotecas útiles, como IronPDF para trabajar con documentos PDF, IronXL para trabajar con documentos Excel e IronOCR para trabajar con OCR. Actualmente, puede obtener las cinco bibliotecas por el precio de solo dos al comprar el completo Iron Suite. Visite nuestra página de licencias para más detalles.

Jordi Bardia
Ingeniero de software
Jordi es más competente en Python, C# y C++, cuando no está aprovechando sus habilidades en Iron Software; está programando juegos. Compartiendo responsabilidades en las pruebas de productos, el desarrollo de productos y la investigación, Jordi añade un inmenso valor a la mejora continua de los productos. La variada experiencia le mantiene desafiado y comprometido, y dice que es uno de sus aspectos favoritos de trabajar con Iron Software. Jordi creció en Miami, Florida, y estudió Informática y Estadística en la Universidad de Florida.
< ANTERIOR
Cómo generar un código QR en C# Aplicaciones Windows
SIGUIENTE >
Generador de código de barras .NET Tutorial