Saltar al pie de página
USO DE IRONBARCODE
Cómo imprimir un código de barras en ASP.NET

Cómo Imprimir un Código de Barras en ASP.NET en C#

Este artículo demostrará cómo imprimir imágenes de código de barras en aplicaciones web ASP.NET usando C#. El marco de MVC se utilizará para este ejemplo, pero también puedes usar Formularios Web de ASP.NET, Formularios de Windows o Web API según tus necesidades.

Un conocimiento básico del marco de MVC de ASP.NET te dará una mejor comprensión de este artículo.


Crear un proyecto MVC

Abra Microsoft Visual Studio. Haz clic en Crear Nuevo Proyecto > Selecciona Aplicación Web ASP.NET de las plantillas > Pulsa Siguiente > Nombra tu Proyecto > Pulsa Siguiente > Selecciona MVC > Haz 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

Agregar modelo

Haz clic derecho en la carpeta Models > Añadir > Clase....

Cómo imprimir un código de barras en ASP.NET en C#, Figura 2: Navegar al diálogo para añadir Clase Navegar al diálogo para añadir Clase

Aparecerá una nueva ventana. Nombra tu clase como BarcodeModel.

Escribe el siguiente código en la clase del modelo.

using System.ComponentModel.DataAnnotations;

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

    [Display(Name = "Barcode Content")]
    public string BarcodeContent { get; set; }
}
using System.ComponentModel.DataAnnotations;

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

    [Display(Name = "Barcode Content")]
    public string BarcodeContent { get; set; }
}
Imports System.ComponentModel.DataAnnotations

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.

Agregar controlador

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

Para añadir el Controlador, haz clic derecho en la carpeta Controllers > Añadir > Controlador. Aparecerá una nueva ventana. Selecciona Controlador MVC 5 Vacío. Haz 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: Añadir diálogo de Controlador Añadir diálogo de 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ódigo de barras.

Instalar la biblioteca de códigos de barras

Se recomienda la biblioteca IronBarcode como una biblioteca de terceros para generar códigos de barras. Es gratuita para el desarrollo y proporciona múltiples características para personalizar códigos de barras, como agregar un logotipo a una imagen de código de barras, añadir un valor debajo o encima del código de barras, añadir anotaciones debajo o encima del código de barras, redimensionar el código de barras, guardar el código de barras en múltiples formatos de imagen, etc. Para más detalles, por favor haz clic aquí.

Ve a la Consola del Gestor de Paquetes. Escribe el siguiente comando y presiona Enter.

Install-Package BarCode

Este comando instalará la biblioteca IronBarcode en el proyecto.

Generar el código de barras

A continuación, añade el siguiente código de muestra al controlador.

using System.IO;
using System.Linq;
using System.Web.Mvc;
using IronBarCode;

public class BarcodeController : Controller
{
    [HttpPost]
    public ActionResult CreateBarcode(BarcodeModel model)
    {
        try
        {
            // Create a barcode with the specified content and encoding
            var MyBarCode = BarcodeWriter.CreateBarcode(model.BarcodeContent, BarcodeEncoding.Code128);

            // Define the path where the barcode image will be saved
            string path = Server.MapPath("~/Files/");
            string filepath = Path.Combine(path, model.FileName);

            // Add the barcode value text above the barcode
            MyBarCode.AddBarcodeValueTextAboveBarcode();

            // Save the generated barcode as a JPEG file
            MyBarCode.SaveAsJpeg(filepath);

            // Retrieve the first file from the directory as a sample image
            string image = Directory.GetFiles(path).FirstOrDefault();

            // Pass the image path to the view
            ViewBag.FileName = image;
            return View();
        }
        catch
        {
            // Handle any exceptions that occur
            return View();
        }
    }
}
using System.IO;
using System.Linq;
using System.Web.Mvc;
using IronBarCode;

public class BarcodeController : Controller
{
    [HttpPost]
    public ActionResult CreateBarcode(BarcodeModel model)
    {
        try
        {
            // Create a barcode with the specified content and encoding
            var MyBarCode = BarcodeWriter.CreateBarcode(model.BarcodeContent, BarcodeEncoding.Code128);

            // Define the path where the barcode image will be saved
            string path = Server.MapPath("~/Files/");
            string filepath = Path.Combine(path, model.FileName);

            // Add the barcode value text above the barcode
            MyBarCode.AddBarcodeValueTextAboveBarcode();

            // Save the generated barcode as a JPEG file
            MyBarCode.SaveAsJpeg(filepath);

            // Retrieve the first file from the directory as a sample image
            string image = Directory.GetFiles(path).FirstOrDefault();

            // Pass the image path to the view
            ViewBag.FileName = image;
            return View();
        }
        catch
        {
            // Handle any exceptions that occur
            return View();
        }
    }
}
Imports System.IO
Imports System.Linq
Imports System.Web.Mvc
Imports IronBarCode

Public Class BarcodeController
	Inherits Controller

	<HttpPost>
	Public Function CreateBarcode(ByVal model As BarcodeModel) As ActionResult
		Try
			' Create a barcode with the specified content and encoding
			Dim MyBarCode = BarcodeWriter.CreateBarcode(model.BarcodeContent, BarcodeEncoding.Code128)

			' Define the path where the barcode image will be saved
			Dim path As String = Server.MapPath("~/Files/")
			Dim filepath As String = System.IO.Path.Combine(path, model.FileName)

			' Add the barcode value text above the barcode
			MyBarCode.AddBarcodeValueTextAboveBarcode()

			' Save the generated barcode as a JPEG file
			MyBarCode.SaveAsJpeg(filepath)

			' Retrieve the first file from the directory as a sample image
			Dim image As String = Directory.GetFiles(path).FirstOrDefault()

			' Pass the image path to the view
			ViewBag.FileName = image
			Return View()
		Catch
			' Handle any exceptions that occur
			Return View()
		End Try
	End Function
End Class
$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 altura máxima, ancho máximo, y así sucesivamente.
  • La función Server.MapPath se utiliza para mapear 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.
  • La función AddBarcodeValueTextAboveBarcode añadirá el valor del código de barras. IronBarcode proporciona otras configuraciones de códigos de barras, como max-height, max-width, barcode, color, y más. Puedes explorar y hacer uso de los diversos parámetros.
  • La función SaveAsJpeg toma la ruta como argumento y guarda los códigos de barras generados en esa ruta en particular.
  • El método Directory.GetFiles obtendrá la imagen del código de barras recién generada.
  • Se utiliza ViewBag.FileName 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.

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

Agregar vista

El siguiente paso es proporcionar el lado del cliente para esta aplicación web ASP.NET añadiendo una nueva Vista. Haz clic derecho en el nombre del método del Controlador y haz clic en el botón "Add View".

Cómo imprimir un código de barras en ASP.NET en C#, Figura 4: Navegar al diálogo para añadir Vista Navegar al diálogo para añadir Vista

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

Aparecerá un nuevo aviso como se muestra a continuación.

Cómo imprimir un código de barras en ASP.NET en C#, Figura 5: Añadir diálogo de Vista Añadir diálogo de Vista

Nombra tu Vista y haz clic en el botón Añadir. Se creará un nuevo archivo .cshtml.

Añade el siguiente código dentro de tu vista recién 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")
}
HTML

A continuación, haz clic derecho dentro de la Vista y haz clic en el botón Ejecutar en el Navegador.

Resultado

Cómo imprimir un código de barras en ASP.NET en C#, Figura 6: Ejecutar la aplicación web para mostrar el formulario de Creación Ejecutar la aplicación web para mostrar el formulario de Creación

Introduce el nombre y contenido de tu imagen de código de barras como se muestra:

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

Haz 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 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 desde una URL

Resumen

Este tutorial demostró cómo generar códigos de barras utilizando ASP.NET en C#, combinado con el marco MVC. Se utiliza Microsoft Visual Studio como el IDE. IronPDF es una biblioteca de terceros que es gratuita para el desarrollo y compatible con todas las versiones del .NET Framework, incluida la versión recientemente lanzada. IronBarcode es rápido y proporciona múltiples características para trabajar con códigos de barras. También puede generar códigos QR especificando diferentes tipos.

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

Preguntas Frecuentes

¿Cómo puedo generar e imprimir imágenes de códigos de barras en ASP.NET MVC usando C#?

Puedes usar la biblioteca IronBarcode para generar e imprimir imágenes de códigos de barras en aplicaciones ASP.NET MVC. Esto implica crear un proyecto MVC, instalar IronBarcode a través de la Consola del Administrador de Paquetes, y usar el método `BarcodeWriter.CreateBarcode` para generar códigos de barras.

¿Qué pasos están involucrados en crear un nuevo proyecto MVC para imprimir códigos de barras?

Para crear un nuevo proyecto MVC para imprimir códigos de barras, abre Microsoft Visual Studio, selecciona 'Crear nuevo proyecto', elige 'Aplicación web ASP.NET' y selecciona 'MVC' de las plantillas disponibles.

¿Cómo instalo la biblioteca IronBarcode para generar códigos de barras en C#?

Instala la biblioteca IronBarcode abriendo la Consola del Administrador de Paquetes en Visual Studio y ejecutando el comando: Install-Package IronBarcode.

¿Cómo guardo una imagen de código de barras generada en C#?

Puedes guardar una imagen de código de barras generada usando el método `SaveAsJpeg` proporcionado por IronBarcode, especificando la ruta del archivo donde se debe guardar la imagen.

¿Puedo personalizar imágenes de códigos de barras en aplicaciones ASP.NET?

Sí, IronBarcode permite la personalización de imágenes de códigos de barras, incluyendo agregar logotipos, anotaciones y cambiar el tamaño y las dimensiones para ajustarlas a tus necesidades.

¿Cómo puedo mostrar un código de barras generado en una vista MVC?

Para mostrar un código de barras generado en una vista MVC, crea una Vista en tu proyecto y pasa la ruta de la imagen del código de barras a la vista usando `ViewBag`. Esto permite la visualización del código de barras en el lado del cliente.

¿Qué debo hacer si encuentro errores durante la generación de códigos de barras?

Usa un bloque try-catch en tu código C# para manejar cualquier excepción en tiempo de ejecución que pueda ocurrir durante el proceso de generación de códigos de barras, asegurando un manejo de errores robusto.

¿Es posible generar códigos QR usando el mismo método que los códigos de barras?

Sí, utilizando IronBarcode, puedes generar códigos QR configurando el esquema de codificación a `QRCode` en el método `BarcodeWriter.CreateBarcode`.

¿Qué otras bibliotecas de software Iron se recomiendan para la gestión de documentos?

Aparte de IronBarcode, Iron Software ofrece otras bibliotecas como IronPDF, IronXL e IronOCR. Estas bibliotecas proporcionan soluciones integrales para tareas de gestión de documentos.

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 para pruebas de productos, desarrollo de productos e investigación, Jordi agrega un valor inmenso a la mejora continua del producto. La experiencia variada lo mantiene ...
Leer más