IRONSOFTWAREHOME

Imprimir em um aplicativo Web ASP.NET Framework com C#

Curtis Chau
Curtis Chau
Updated: 22 de abril de 2026

O método PrintAsync do IronPrint permite impressão de documentos não bloqueante em aplicações web ASP.NET, prevenindo congelamentos de UI enquanto processa pedidos de impressão. Essa abordagem assíncrona garante que aplicativos web responsivos possam lidar com operações de impressão sem bloquear threads.

Aplicações web frequentemente necessitam de impressão de documentos como resultado final. A integração da funcionalidade de impressão com aplicações web apresenta desafios, particularmente quando se trata de operações assíncronas. IronPrint resolve isso com a função PrintAsync. Este tutorial demonstra a implementação de PrintAsync com ASP.NET Core para criar uma aplicação web que imprime documentos sem bloquear.

Antes da implementação, observe que o IronPrint oferece recursos abrangentes, incluindo recuperação de informações da impressora e configurações de impressão personalizadas . Essas funcionalidades o tornam ideal para aplicações ASP.NET empresariais que exigem recursos robustos de impressão.

Introdução Rápida: Impressão Assíncrona de PDF no ASP.NET
  1. Install IronPrint via NuGet: Install-Package IronPrint
  2. Importe IronPrint no arquivo do controlador
  3. Adicione um botão de impressão para acionar o método
  4. Chame await Printer.PrintAsync("file.pdf") na ação do controlador
  5. Verifique a impressão do documento ao pressionar o botão
  1. 1Install IronPrint with NuGet Package Manager

    PM > Install-Package IronPrint

  2. 2Copie e execute este trecho de código.

    return await IronPrint.Printer.PrintAsync("Basic.pdf");
    C#
  3. 3Implante para testar em seu ambiente de produção.

    Comece a usar IronPrint em seu projeto hoje com uma avaliação gratuita
    arrow pointer

Comece com o IronPrint

Start using IronPrint in your project today with a free trial.

Primeiro passo:
arrow pointer

Como implementar a impressão assíncrona de PDFs em ASP.NET?

Este exemplo demonstra a impressão de um arquivo PDF de forma assíncrona em um projeto ASP.NET Web Application (.NET Framework) usando o método PrintAsync. PrintAsync inicia a impressão de forma assíncrona, mantendo a aplicação responsiva em comparação com métodos síncronos que bloqueiam threads Print.

A abordagem assíncrona é crucial em aplicações web onde vários usuários podem acionar operações de impressão simultaneamente. Ao contrário do método síncrono Print, PrintAsync garante que sua aplicação lide com requisições simultâneas sem degradação de desempenho.

Onde devo adicionar o botão de impressão?

No seu arquivo "Index.cshtml" (ou na página inicial), adicione um botão que execute uma ação ao ser clicado. Este botão invoca um método ActionResult no seu controlador:

@{
    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

Interface da aplicação ASP.NET mostrando menu de navegação e botão Imprimir PDF em azul para gerar PDFs


Como configuro o PrintAsync no meu controlador?

No seu HomeController, implemente o método PrintAsync. Este método executa operações de impressão de forma assíncrona, melhorando a capacidade de resposta da aplicação. Antes de implementar, certifique-se de que a configuração da chave de licença para uso em produção esteja correta.

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
        }
    }
}

Para cenários avançados, implemente padrões async/await adequados e personalize a operação de impressão. Aqui está um exemplo aprimorado que demonstra o tratamento de erros e as configurações de impressão personalizadas:

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

namespace WebApplication4.Controllers
{
    public class HomeController : Controller
    {
        // Async action method with proper error handling
        public async Task<ActionResult> PrintPdfAdvanced()
        {
            try
            {
                // Create custom print settings
                var printSettings = new PrintSettings
                {
                    // Select specific printer
                    PrinterName = "Microsoft Print to PDF",
                    // Set paper size
                    PaperSize = PaperSize.A4,
                    // Configure orientation
                    PaperOrientation = PaperOrientation.Portrait,
                    // Set number of copies
                    NumberOfCopies = 1,
                    // Configure DPI for high-quality output
                    Dpi = 300
                };

                // Print asynchronously with custom settings
                await Printer.PrintAsync("Basic.pdf", printSettings);

                // Log successful print operation (optional)
                System.Diagnostics.Debug.WriteLine("Document printed successfully");

                // Return success view or redirect
                TempData["PrintMessage"] = "Document sent to printer successfully!";
                return RedirectToAction("Index");
            }
            catch (Exception ex)
            {
                // Handle printing errors gracefully
                System.Diagnostics.Debug.WriteLine($"Printing error: {ex.Message}");
                TempData["ErrorMessage"] = "Unable to print document. Please try again.";
                return RedirectToAction("Index");
            }
        }
    }
}

Esta implementação aprimorada demonstra conceitos do guia de Configurações de Impressão , incluindo a especificação de nomes de impressoras, a configuração de tamanhos de papel e o tratamento adequado de erros.

Ao trabalhar com a seleção de impressoras em ambientes web, utilize a funcionalidade Obter Nomes de Impressoras para preencher dinamicamente as listas de impressoras disponíveis:

// Get list of available printers
public ActionResult GetAvailablePrinters()
{
    var printers = Printer.GetPrinterNames();
    ViewBag.PrinterList = new SelectList(printers);
    return View();
}

Para cenários que exigem interação do usuário, considere implementar uma abordagem de Impressão com Diálogo , embora esta seja mais adequada para aplicações desktop do que para ambientes web.

Considerações adicionais para implantação em produção

Ao implantar seu aplicativo ASP.NET com o IronPrint, considere os seguintes fatores:

  1. Configuração da licença : Para aplicações ASP.NET , configure sua chave de licença no arquivo Web.config. Consulte o guia "Como configurar a chave de licença no Web.config" para obter instruções de configuração adequadas.

  2. Acesso à impressora : Certifique-se de que a identidade do pool de aplicativos tenha permissões para acessar impressoras locais ou de rede. A documentação "Imprimir seus documentos" fornece os requisitos de acesso à impressora.

  3. Tratamento de erros : Implemente um tratamento de erros robusto para impressoras offline ou documentos inacessíveis. Para questões técnicas, utilize o processo de Solicitação de Engenharia para resolver problemas complexos.

  4. Desempenho : Para impressão de alto volume, implemente um sistema de filas para gerenciar as solicitações de impressão de forma eficiente. O PrintAsync assíncrono é ideal para tais implementações.

Para capacidades de impressão completas, consulte a Referência de API para documentação detalhada de todos os métodos e propriedades no namespace IronPrint.

Perguntas frequentes

Como implementar a impressão assíncrona de PDFs em aplicações ASP.NET Framework?

Você pode implementar a impressão assíncrona de PDFs usando o método `PrintAsync` do IronPrint. Basta adicionar `return await IronPrint.Printer.PrintAsync("seuarquivo.pdf");` na ação do seu controlador. Essa abordagem não bloqueante garante que seu aplicativo web permaneça responsivo enquanto processa as solicitações de impressão, evitando travamentos da interface do usuário durante as operações de impressão de documentos.

Por que devo usar impressão assíncrona em vez de impressão síncrona em aplicações web?

A impressão assíncrona com o método PrintAsync do IronPrint é fundamental para aplicações web onde múltiplos usuários podem acionar operações de impressão simultaneamente. Ao contrário dos métodos Print síncronos que bloqueiam threads, o PrintAsync garante que sua aplicação lide com requisições simultâneas sem perda de desempenho, mantendo a capacidade de resposta mesmo sob carga elevada.

Quais são os passos mínimos para adicionar impressão em PDF ao meu projeto ASP.NET Framework?

O fluxo de trabalho mínimo envolve 5 etapas: 1) Baixe a biblioteca IronPrint para C#, 2) Importe o IronPrint para o seu arquivo de classe, 3) Adicione um botão de impressão à sua view, 4) Implemente o método PrintAsync na ação do seu controller e 5) Verifique se a impressão do documento funciona quando o botão é pressionado. Este processo simplificado requer alterações mínimas no código.

Como adiciono um botão de impressão à minha view ASP.NET?

Na sua página Index.cshtml ou na página inicial, adicione um botão que acione uma ação do controlador. Use HTML como ` . Ao ser clicado, esse botão invocará o método ActionResult PrintPDF no seu controlador Home.

Posso personalizar as configurações de impressão ao usar a impressão assíncrona?

Sim, o IronPrint oferece recursos abrangentes, incluindo configurações de impressão personalizadas e recuperação de informações da impressora. Essas funcionalidades o tornam ideal para aplicações ASP.NET corporativas que exigem uma funcionalidade de impressão robusta, com opções para configurar a seleção da impressora, a orientação da página, as margens e outros parâmetros de impressão.

How can I handle errors during the printing process?

Use try-catch blocks around your PrintAsync calls to catch exceptions and handle them gracefully, providing user feedback or logging as necessary.

What should I consider for deploying an ASP.NET application using IronPrint?

Ensure your application's license configuration, printer access permissions, and error handling mechanisms are properly set up in production.

How can I dynamically populate available printer lists in my application?

Use the GetPrinterNames method from IronPrint to retrieve and dynamically display a list of available printers to users.

What is the role of the PrintAsync method in managing high-volume printing?

PrintAsync supports high-volume printing by enabling a queue system that efficiently manages print requests without blocking the application.

Is it possible to use IronPrint for printing with a dialog in a web environment?

While it's possible to integrate a print dialog in desktop applications, this approach is less suitable for web environments, where asynchronous methods are preferred for best performance.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais bem estruturados e visualmente atraentes.

...
Leia mais

Pronto para começar?

Nuget Downloads 46,090Versão:2026.9recém-lançado

Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.
Não é necessário cartão de crédito nem criação de conta.
Biblioteca NuGet C# para PDF
Instalar com NuGet

Versão: 2026.9

PM > Install-Package IronPrint
nuget.org/packages/IronPrint/
  1. No Solution Explorer, clique com o botão direito do mouse em Referências e selecione Gerenciar Pacotes NuGet.
  2. Selecione Procurar e pesquise "IronPrint".
  3. Selecione o pacote e instale.
DLL de PDF em C#
Baixar DLL

Versão: 2026.9

  1. Baixe e descompacte o IronPrint em um local como ~/Libs dentro do diretório da sua solução.
  2. No Solution Explorer do Visual Studio, clique com o botão direito do mouse em Referências. Selecione Procurar e digite "IronPrint.dll".

Licenças a partir de US$ 749

Key in blue circle

Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.

Your trial license will be sent to your email address

Sem limitações. 100% desbloqueado. Sem cartão de crédito.

bullet_checkedNão é necessário cartão de crédito nem criação de conta.Sem limitações. 100% desbloqueado. Sem cartão de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Agende sua demonstração ao vivo gratuita.
Booking Badge

Aprovado por milhões de engenheiros em todo o mundo.

Logotipos dos clientes da Iron Software
Agende sua consulta sem compromisso.
Preencha o formulário abaixo ou envie um e-mail para sales@ironsoftware.com
Os seus dados serão sempre mantidos em sigilo.
Aprovado por milhões de engenheiros em todo o mundo.
Logotipos dos clientes da Iron Software
Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.
Não é necessário cartão de crédito nem criação de conta.