Imprimir en una aplicación web ASP.NET Framework con C

This article was translated from English: Does it need improvement?
Translated
View the article in English

A veces, las aplicaciones web necesitan imprimir un documento como salida final. Sin embargo, integrar la función de impresión con una aplicación web puede ser un desafío real. Muchas aplicaciones web utilizan funciones asincrónicas, y una función de impresión sincrónica podría causar problemas potencialmente. ¡Pero hay una solución! IronPrint ofrece la función PrintAsync, una herramienta crucial para aplicaciones web. En este breve tutorial, demostraremos el poder de la función PrintAsync combinada con ASP.NET Core. Esto te mostrará cómo simular una aplicación web del mundo real que imprime un documento como salida final.

como-encabezado:2(Inicio Rápido: Impresión PDF Asincrónica con IronPrint en ASP.NET)

Aquí tienes un ejemplo mínimo que muestra lo fácil que es utilizar la API PrintAsync de IronPrint: solo una línea en tu controlador para iniciar la impresión sin congelar tu aplicación. Comienza rápido sin código repetitivo.

Nuget IconEmpieza a crear PDF con NuGet ahora:

  1. Instalar IronPrint con el gestor de paquetes NuGet

    PM > Install-Package IronPrint

  2. Copie y ejecute este fragmento de código.

    return await IronPrint.Printer.PrintAsync("Basic.pdf");
  3. Despliegue para probar en su entorno real

    Empieza a utilizar IronPrint en tu proyecto hoy mismo con una prueba gratuita
    arrow pointer

Ejemplo de impresión asincrónica de PDF

Este ejemplo demuestra cómo imprimir un archivo PDF de manera asincrónica en un proyecto ASP.NET Web Application (.NET Framework) utilizando el método PrintAsync. Al usar PrintAsync, la operación de impresión se inicia de manera asincrónica, permitiendo que la aplicación se mantenga receptiva, a diferencia de bloquear el hilo con métodos sincrónicos tradicionales de Print.

Agregar un botón de impresión

En tu "Index.cshtml" (o vista de página de inicio), añade un botón que active una acción al hacer clic. Este botón invocará un método ActionResult en tu controlador. Aquí tienes cómo puedes implementarlo:

@{
    ViewBag.Title = "Home Page";
}

<main>
    <section class="row" aria-labelledby="aspnetTitle">
        <h1 id="title">ASP.NET</h1>
        <p>
            <!-- Button that triggers the PrintPdf ActionResult -->
            <a class="btn btn-primary btn-md" onclick="location.href='@Url.Action("PrintPdf", "Home")'">Print PDF</a>
        </p>
    </section>
</main>
@{
    ViewBag.Title = "Home Page";
}

<main>
    <section class="row" aria-labelledby="aspnetTitle">
        <h1 id="title">ASP.NET</h1>
        <p>
            <!-- Button that triggers the PrintPdf ActionResult -->
            <a class="btn btn-primary btn-md" onclick="location.href='@Url.Action("PrintPdf", "Home")'">Print PDF</a>
        </p>
    </section>
</main>
HTML

Página de Íindice


Implementar PrintAsync en el controlador

En tu HomeController, implementarás el método PrintAsync. Este método permite que la operación de impresión ocurra de manera asincrónica, mejorando la capacidad de respuesta de la aplicación.

using IronPrint;
using System.Threading.Tasks;
using System.Web.Mvc;

namespace WebApplication4.Controllers
{
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            return View();
        }

        public ActionResult About()
        {
            ViewBag.Message = "Your application description page.";
            return View();
        }

        public ActionResult Contact()
        {
            return View();
        }

        // Action method to handle the printing operation
        // This makes use of the PrintAsync method to avoid blocking the main thread
        public ActionResult PrintPdf()
        {
            // Wait for the asynchronous print operation to complete
            Printer.PrintAsync("Basic.pdf").Wait();

            // Return some view, for example, a confirmation page or the index page
            return View(); // Replace with an appropriate view
        }
    }
}
using IronPrint;
using System.Threading.Tasks;
using System.Web.Mvc;

namespace WebApplication4.Controllers
{
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            return View();
        }

        public ActionResult About()
        {
            ViewBag.Message = "Your application description page.";
            return View();
        }

        public ActionResult Contact()
        {
            return View();
        }

        // Action method to handle the printing operation
        // This makes use of the PrintAsync method to avoid blocking the main thread
        public ActionResult PrintPdf()
        {
            // Wait for the asynchronous print operation to complete
            Printer.PrintAsync("Basic.pdf").Wait();

            // Return some view, for example, a confirmation page or the index page
            return View(); // Replace with an appropriate view
        }
    }
}
Imports IronPrint
Imports System.Threading.Tasks
Imports System.Web.Mvc

Namespace WebApplication4.Controllers
	Public Class HomeController
		Inherits Controller

		Public Function Index() As ActionResult
			Return View()
		End Function

		Public Function About() As ActionResult
			ViewBag.Message = "Your application description page."
			Return View()
		End Function

		Public Function Contact() As ActionResult
			Return View()
		End Function

		' Action method to handle the printing operation
		' This makes use of the PrintAsync method to avoid blocking the main thread
		Public Function PrintPdf() As ActionResult
			' Wait for the asynchronous print operation to complete
			Printer.PrintAsync("Basic.pdf").Wait()

			' Return some view, for example, a confirmation page or the index page
			Return View() ' Replace with an appropriate view
		End Function
	End Class
End Namespace
$vbLabelText   $csharpLabel

Preguntas Frecuentes

¿Cómo puede imprimir documentos de manera asincrónica en una aplicación web ASP.NET?

Puede usar el método PrintAsync de IronPrint para imprimir documentos de manera asincrónica en una aplicación web ASP.NET. Este método permite iniciar la operación de impresión sin bloquear el hilo principal de la aplicación, manteniendo la capacidad de respuesta.

¿Cuáles son los pasos para integrar una función de impresión en una aplicación web ASP.NET?

Para integrar una función de impresión, debe descargar una biblioteca como IronPrint desde NuGet, importarla en su archivo de clase, agregar un botón de impresión en su interfaz de usuario, implementar el método PrintAsync en su controlador y verificar la funcionalidad probando la operación de impresión.

¿Cómo mejora el método PrintAsync la impresión en aplicaciones web?

El método PrintAsync mejora la impresión al permitir que las operaciones se realicen de manera asincrónica, lo que significa que el hilo principal de la aplicación no se bloquea durante la impresión, mejorando así la capacidad de respuesta de la aplicación y la experiencia del usuario.

¿Cuál es la ventaja de usar funciones asincrónicas en aplicaciones web?

Las funciones asincrónicas permiten la ejecución de tareas sin bloquear el hilo principal de la aplicación, permitiendo que otras operaciones continúen ejecutándose sin problemas y mejorando la capacidad de respuesta y el rendimiento general de la aplicación.

¿Cómo se agrega un botón de impresión en una vista ASP.NET?

En su vista 'Index.cshtml' o página principal, puede agregar un botón con un evento onclick que desencadene un método ActionResult en su controlador, como usar location.href='@Url.Action("PrintPdf", "Home")' para iniciar la impresión.

¿Qué desafíos pueden surgir de la impresión sincrónica en aplicaciones web?

La impresión sincrónica puede bloquear el hilo principal de la aplicación, lo que lleva a una disminución de la capacidad de respuesta y un posible congelamiento de la interfaz de la aplicación hasta que se complete la operación de impresión.

¿Cómo verifica que un documento ha sido impreso en una aplicación ASP.NET?

Después de implementar la funcionalidad de impresión, debe probar presionando el botón de imprimir en su aplicación y verificar si el documento se imprime como se esperaba, asegurándose de que el método PrintAsync funcione correctamente.

¿Cuál es el papel del método de acción PrintPdf en el controlador?

El método de acción PrintPdf en el controlador inicia la operación de impresión utilizando el método PrintAsync, permitiendo que la aplicación maneje el trabajo de impresión sin bloquear el hilo principal, y finalmente devuelve una vista al completarse.

Curtis Chau
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien ...

Leer más
¿Listo para empezar?
Nuget Descargas 34,704 | Version: 2025.11 recién lanzado