USO DE IRONBARCODE

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

Actualizado 25 de junio, 2022
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. Pulse Crear Nuevo Proyecto > Seleccione ASP.NET Web Application de las plantillas > Pulse Siguiente > Nombre su Proyecto > Pulse Siguiente > Seleccione MVC > Pulse el Botón Crear. El proyecto se creará como se muestra a continuación.

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

Crear un nuevo proyecto ASP.NET

Añadir modelo

Haga clic con el botón derecho en la carpeta Modelos > Añadir > Clase....

Cómo Imprimir Código de Barras en ASP.NET en C#, Figura 2: Navegar al Diálogo de Agregar Clase

Navegar al Diálogo de añadir Clase

Aparecerá una nueva ventana. Nombre 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
VB   C#

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 para el código de barras.

Añadir controlador

A continuación, se añade un Controller al proyecto. Se comunicará con una 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 añadir el controlador, haga clic con el botón derecho en la carpeta Controladores > Añadir > 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 códigos de barras en ASP.NET en C#, Figura 3: Diálogo Añadir controlador

**Añadir controlador

Escriba el nombre de su 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 funciones para personalizar los códigos de barras, como añadir un logotipo a una imagen de código de barras, añadiendo valor por debajo o por encima del código de barras, añadir anotaciones debajo o encima del código de barrascambiar el tamaño del código de barras, guardarlo en múltiples formatos de imagen etc. Si desea más información, haga clic aquí.

Vaya a la Consola del Gestor 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
VB   C#

try-catch se utiliza para atrapar cualquier excepción en tiempo de ejecución.

La función CreateBarcode de la aplicación Escritor de códigos de barras recibe 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 código de barras generadas. El método Path.Combine combinará la ruta y el nombre de la imagen del código de barras.

En Añadir valor de código de barras por encima del código de barras añadirá el valor del código de barras. IronBarcode proporciona otros ajustes de código de barras como max-height, max-width, barcode, color, etc. Puede explorar y utilizar los distintos parámetros.

En Guardar como JPEG toma la ruta como argumento y guarda los códigos de barras generados en esa ruta concreta.

El método Directory.GetFile obtendrá la imagen del 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 generado.

Los códigos QR también pueden generarse 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".

How to Print Barcode in ASP.NET in C#, Figura 4: Navegar para añadir el cuadro de diálogo Vista

Navegar para añadir 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 códigos de barras en ASP.NET en C#, Figura 5: Diálogo Agregar vista

Añadir Diálogo de Vista

Asigne un nombre a su Vista y haga clic en el botón Añadir. 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
VB   C#

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 Crear formulario

**Ejecute la aplicación web para mostrar el 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 códigos de barras en ASP.NET en C#, Figura 7: Introduzca el contenido de su código de barras

Introduzca el contenido de su código de barras

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

Cómo imprimir códigos de barras en ASP.NET en C#, Figura 8: Generar un código de barras a partir de 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 sólo dos adquiriendo la Iron Suite completa. Visite nuestra página de licencias para más detalles.

< ANTERIOR
Cómo generar un código QR en C# Aplicaciones Windows
SIGUIENTE >
Generador de código de barras .NET Tutorial

¿Listo para empezar? Versión: 2024.7 recién publicada

Descarga gratuita de NuGet Descargas totales: 1,069,531 Ver licencias >
123