Ir para o conteúdo do rodapé
USANDO O IRONPDF

Como Converter Vistas ASP.NET MVC para PDF: IronPDF vs iTextSharp

Full Comparison

Looking for a detailed feature-by-feature breakdown? See how IronPDF stacks up against Itext on pricing, HTML support, and licensing.

View Full Comparison

Converter views do ASP.NET MVC em documentos PDF é um requisito fundamental em aplicações web modernas. Seja para gerar faturas, relatórios ou certificados, o desafio é claro: como transformar visualizações do Razor em arquivos PDF profissionais que preservem a formatação e o estilo? Este guia compara a biblioteca iTextSharp, já legada, com o IronPDF — a solução moderna baseada no Chromium — para que você possa escolher a ferramenta certa para o seu fluxo de trabalho de geração de PDFs.

IronPDF vs iTextSharp MVC View to PDF File in C#: Imagem 1 - IronPDF

Por que você precisa converter visualizações MVC para PDF?

As empresas dependem da geração de PDFs para inúmeras operações críticas. Os sistemas de faturamento precisam de documentos de cobrança invioláveis. Os departamentos de RH geram certificados de emprego e contratos. As equipes de vendas elaboram orçamentos e propostas. As plataformas educacionais emitem certificados de conclusão. Cada cenário exige a geração de PDFs no servidor, que mantenham a formatação consistente em todos os dispositivos e plataformas.

De acordo com a documentação do ASP.NET Core , as views Razor fornecem um excelente sistema de templates para gerar conteúdo dinâmico que pode ser convertido em PDF. A questão fundamental é qual biblioteca oferece a solução mais precisa, fácil de manter e legalmente adequada.

IronPDF vs iTextSharp MVC View to PDF File in C#: Imagem 2 - Recursos

Como o iTextSharp lida com a conversão de MVC para PDF?

O iTextSharp tem sido um elemento básico na geração de PDFs em .NET por mais de uma década. Originalmente adaptada da biblioteca Java iText, ela fornece controle de baixo nível sobre a criação de PDFs. Não entanto, sua abordagem à conversão de HTML mostra sua idade, principalmente quando se trata de conteúdo web moderno.

Instalando o iTextSharp

Para adicionar o iTextSharp ao seu projeto ASP.NET Core MVC, instale o pacote NuGet usando o Console do Gerenciador de Pacotes:

Install-Package iTextSharp
Install-Package iTextSharp
SHELL

IronPDF vs iTextSharp MVC View to PDF File in C#: Imagem 3 - Instalar iTextSharp

Implementação básica com iTextSharp

Aqui está um exemplo completo mostrando como converter uma visualização MVC em PDF usando a classe XMLWorkerHelper do iTextSharp no seu projeto ASP.NET MVC:

using iTextSharp.text;
using iTextSharp.tool.xml;
using iTextSharp.text.pdf;
using System.IO;

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View();
    }

    public ActionResult GeneratePDF()
    {
        // Create a simple invoice HTML
        string invoiceHtml = @"
            <h1>Invoice #1001</h1>
            <p>Date: " + DateTime.Nãow.ToString("MM/dd/yyyy") + @"</p>
            <table border='1'>
                <tr><th>Item</th><th>Price</th></tr>
                <tr><td>Product A</td><td>$99.99</td></tr>
                <tr><td>Product B</td><td>$149.99</td></tr>
            </table>
            <p><strong>Total: $249.98</strong></p>";

        // Create PDF document using iTextSharp
        using var stream = new MemoryStream();
        var document = new Document(PageSize.A4);
        PdfWriter writer = PdfWriter.GetInstance(document, stream);
        document.Open();

        using (var srHtml = new StringReader(invoiceHtml))
        {
            XMLWorkerHelper.GetInstance().ParseXHtml(writer, document, srHtml);
        }

        document.Close();

        // Return the PDF file
        return new FileContentResult(stream.ToArray(), "application/pdf")
        {
            FileDownloadName = "invoice.pdf"
        };
    }
}
using iTextSharp.text;
using iTextSharp.tool.xml;
using iTextSharp.text.pdf;
using System.IO;

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View();
    }

    public ActionResult GeneratePDF()
    {
        // Create a simple invoice HTML
        string invoiceHtml = @"
            <h1>Invoice #1001</h1>
            <p>Date: " + DateTime.Nãow.ToString("MM/dd/yyyy") + @"</p>
            <table border='1'>
                <tr><th>Item</th><th>Price</th></tr>
                <tr><td>Product A</td><td>$99.99</td></tr>
                <tr><td>Product B</td><td>$149.99</td></tr>
            </table>
            <p><strong>Total: $249.98</strong></p>";

        // Create PDF document using iTextSharp
        using var stream = new MemoryStream();
        var document = new Document(PageSize.A4);
        PdfWriter writer = PdfWriter.GetInstance(document, stream);
        document.Open();

        using (var srHtml = new StringReader(invoiceHtml))
        {
            XMLWorkerHelper.GetInstance().ParseXHtml(writer, document, srHtml);
        }

        document.Close();

        // Return the PDF file
        return new FileContentResult(stream.ToArray(), "application/pdf")
        {
            FileDownloadName = "invoice.pdf"
        };
    }
}
Imports iTextSharp.text
Imports iTextSharp.tool.xml
Imports iTextSharp.text.pdf
Imports System.IO

Public Class HomeController
    Inherits Controller

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

    Public Function GeneratePDF() As ActionResult
        ' Create a simple invoice HTML
        Dim invoiceHtml As String = "
            <h1>Invoice #1001</h1>
            <p>Date: " & DateTime.Now.ToString("MM/dd/yyyy") & "</p>
            <table border='1'>
                <tr><th>Item</th><th>Price</th></tr>
                <tr><td>Product A</td><td>$99.99</td></tr>
                <tr><td>Product B</td><td>$149.99</td></tr>
            </table>
            <p><strong>Total: $249.98</strong></p>"

        ' Create PDF document using iTextSharp
        Using stream As New MemoryStream()
            Dim document As New Document(PageSize.A4)
            Dim writer As PdfWriter = PdfWriter.GetInstance(document, stream)
            document.Open()

            Using srHtml As New StringReader(invoiceHtml)
                XMLWorkerHelper.GetInstance().ParseXHtml(writer, document, srHtml)
            End Using

            document.Close()

            ' Return the PDF file
            Return New FileContentResult(stream.ToArray(), "application/pdf") With {
                .FileDownloadName = "invoice.pdf"
            }
        End Using
    End Function
End Class
$vbLabelText   $csharpLabel

Este exemplo cria um documento PDF básico a partir de conteúdo HTML. A classe XMLWorkerHelper processa a string HTML e adiciona elementos ao documento PDF usando o modelo de objeto. O PdfWriter lida com o processo real de geração de PDF, enquanto o Document gerencia a estrutura da página.

Saída

IronPDF vs iTextSharp MVC View to PDF File in C#: Imagem 4 - Saída PDF

Quais são as principais limitações do iTextSharp?

A classe XMLWorkerHelper suporta tags HTML básicas e CSS inline. Propriedades CSS3 modernas, layouts flexbox e sistemas de grid não são renderizados. O conteúdo dependente de JavaScript desaparece completamente. Efeitos de estilo complexos, como gradientes, sombras e transformações, são ignorados. Nem mesmo as classes padrão do Bootstrap são aplicadas, deixando as visualizações cuidadosamente elaboradas com uma aparência simples e pouco profissional.

Muitos desenvolvedores relataram essas limitações no Stack Overflow , o que leva à frustração ao tentar converter visualizações MVC em PDF com o iTextSharp.

Talvez o mais preocupante seja o modelo de licenciamento do iTextSharp. A biblioteca utiliza a licença AGPL, que exige que você torne todo o seu aplicativo de código aberto se usar a versão gratuita. As licenças comerciais começam em vários milhares de dólares por ano, o que as torna proibitivamente caras para muitas empresas. Essa restrição de licenciamento levou muitos desenvolvedores a buscar alternativas que se alinhem melhor às necessidades do desenvolvimento comercial. Conforme discutido na documentação do .NET da Microsoft , escolher bibliotecas com licenças apropriadas é fundamental para projetos comerciais.

IronPDF vs iTextSharp MVC View to PDF File in C#: Imagem 5 - IronPDF vs iTextSharp MVC View to PDF

Como converter views MVC em PDF usando uma biblioteca moderna?

IronPDF representa uma abordagem moderna para geração de PDFs em ASP.NET Core MVC. Baseado no mecanismo de renderização Chromium, ele converte HTML em PDF exatamente como aparece no Google Chrome, preservando todo o estilo, a execução de JavaScript e os elementos de design responsivo.

Como instalar o IronPDF?

Adicione o IronPDF ao seu projeto através do Console do Gerenciador de Pacotes NuGet :

Install-Package IronPdf
Install-Package IronPdf
SHELL

IronPDF vs iTextSharp MVC View to PDF File in C#: Imagem 6 - Instalação

Implementação moderna com IronPDF

A mesma fatura criada acima agora utiliza CSS moderno e renderização HTML5 completa com o ChromePdfRenderer do IronPDF :

using IronPdf;

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View();
    }

    public ActionResult GenerateModernPDF()
    {
        // Create a styled invoice HTML with modern CSS
        string invoiceHtml = @"
            <style>
                body { font-family: 'Segoe UI', Arial; padding: 40px; }
                .invoice-header {
                    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
                    color: white;
                    padding: 30px;
                    border-radius: 10px;
                }
                table {
                    width: 100%;
                    border-collapse: collapse;
                    margin: 20px 0;
                }
                th {
                    background-color: #f3f4f6;
                    padding: 12px;
                    text-align: left;
                }
                td {
                    padding: 12px;
                    border-bottom: 1px solid #e5e7eb;
                }
                .total {
                    font-size: 24px;
                    color: #10b981;
                    text-align: right;
                    margin-top: 20px;
                }
            </style>
            <div class='invoice-header'>
                <h1>Invoice #1001</h1>
                <p>Date: " + DateTime.Nãow.ToString("MMMM dd, yyyy") + @"</p>
            </div>
            <table>
                <tr><th>Item</th><th>Quantity</th><th>Price</th></tr>
                <tr><td>Premium Package</td><td>1</td><td>$99.99</td></tr>
                <tr><td>Professional Services</td><td>2</td><td>$149.99</td></tr>
            </table>
            <div class='total'>Total: $249.98</div>
            <p>Page numbers and additional content can be added to each page.</p>";

        // Use Chromium engine for rendering
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(invoiceHtml);

        // Set content disposition for download
        Response.Headers.Append("Content-Disposition", "attachment; filename=modern-invoice.pdf");

        // Return the PDF file with binary data
        return new FileContentResult(pdf.BinaryData, "application/pdf");
    }
}
using IronPdf;

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View();
    }

    public ActionResult GenerateModernPDF()
    {
        // Create a styled invoice HTML with modern CSS
        string invoiceHtml = @"
            <style>
                body { font-family: 'Segoe UI', Arial; padding: 40px; }
                .invoice-header {
                    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
                    color: white;
                    padding: 30px;
                    border-radius: 10px;
                }
                table {
                    width: 100%;
                    border-collapse: collapse;
                    margin: 20px 0;
                }
                th {
                    background-color: #f3f4f6;
                    padding: 12px;
                    text-align: left;
                }
                td {
                    padding: 12px;
                    border-bottom: 1px solid #e5e7eb;
                }
                .total {
                    font-size: 24px;
                    color: #10b981;
                    text-align: right;
                    margin-top: 20px;
                }
            </style>
            <div class='invoice-header'>
                <h1>Invoice #1001</h1>
                <p>Date: " + DateTime.Nãow.ToString("MMMM dd, yyyy") + @"</p>
            </div>
            <table>
                <tr><th>Item</th><th>Quantity</th><th>Price</th></tr>
                <tr><td>Premium Package</td><td>1</td><td>$99.99</td></tr>
                <tr><td>Professional Services</td><td>2</td><td>$149.99</td></tr>
            </table>
            <div class='total'>Total: $249.98</div>
            <p>Page numbers and additional content can be added to each page.</p>";

        // Use Chromium engine for rendering
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(invoiceHtml);

        // Set content disposition for download
        Response.Headers.Append("Content-Disposition", "attachment; filename=modern-invoice.pdf");

        // Return the PDF file with binary data
        return new FileContentResult(pdf.BinaryData, "application/pdf");
    }
}
Imports IronPdf

Public Class HomeController
    Inherits Controller

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

    Public Function GenerateModernPDF() As ActionResult
        ' Create a styled invoice HTML with modern CSS
        Dim invoiceHtml As String = "
            <style>
                body { font-family: 'Segoe UI', Arial; padding: 40px; }
                .invoice-header {
                    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
                    color: white;
                    padding: 30px;
                    border-radius: 10px;
                }
                table {
                    width: 100%;
                    border-collapse: collapse;
                    margin: 20px 0;
                }
                th {
                    background-color: #f3f4f6;
                    padding: 12px;
                    text-align: left;
                }
                td {
                    padding: 12px;
                    border-bottom: 1px solid #e5e7eb;
                }
                .total {
                    font-size: 24px;
                    color: #10b981;
                    text-align: right;
                    margin-top: 20px;
                }
            </style>
            <div class='invoice-header'>
                <h1>Invoice #1001</h1>
                <p>Date: " & DateTime.Now.ToString("MMMM dd, yyyy") & "</p>
            </div>
            <table>
                <tr><th>Item</th><th>Quantity</th><th>Price</th></tr>
                <tr><td>Premium Package</td><td>1</td><td>$99.99</td></tr>
                <tr><td>Professional Services</td><td>2</td><td>$149.99</td></tr>
            </table>
            <div class='total'>Total: $249.98</div>
            <p>Page numbers and additional content can be added to each page.</p>"

        ' Use Chromium engine for rendering
        Dim renderer As New ChromePdfRenderer()
        Dim pdf = renderer.RenderHtmlAsPdf(invoiceHtml)

        ' Set content disposition for download
        Response.Headers.Append("Content-Disposition", "attachment; filename=modern-invoice.pdf")

        ' Return the PDF file with binary data
        Return New FileContentResult(pdf.BinaryData, "application/pdf")
    End Function
End Class
$vbLabelText   $csharpLabel

O ChromePdfRenderer converte o HTML exatamente como o Chrome o exibiria. Fundos com gradientes, fontes modernas e estilos sofisticados são renderizados com precisão. O renderizador lida com propriedades CSS complexas que o iTextSharp não consegue processar, incluindo flexbox, layouts de grade e transformações CSS renderizadas como frames estáticos. O método RenderHtmlAsPdf torna a conversão de HTML para PDF no MVC simplificada.

Saída

IronPDF vs iTextSharp MVC View to PDF File in C#: Imagem 7 - Saída IronPDF

Inicie seu teste gratuito e experimente a geração moderna de PDFs com o mecanismo de renderização baseado no Chrome.

IronPDF vs iTextSharp MVC View to PDF File in C#: Imagem 8 - Compatibilidade multiplataforma

Como escolher entre essas duas bibliotecas de PDF?

Ao comparar o iTextSharp e o IronPDF para conversão de visualizações .NET MVC, diversos fatores diferenciam claramente essas bibliotecas em termos de qualidade de renderização, experiência do desenvolvedor e licenciamento.

Comparação de recursos

Comparação de recursos entre iTextSharp e IronPDF
Recurso iTextSharp IronPDF
Suporte a HTML5 Limitado Completo
Renderização CSS3 Somente o básico Completo
Execução de JavaScript Não Sim
Suporte a Flexbox/Grid Não Sim
Compatibilidade com Bootstrap Parcial Completo
Suporte a fontes da Web Limitado Completo
Gráficos SVG Não Sim
Design responsivo Não Sim
Complexidade da API Nível baixo De alto nível

Considerações sobre licenciamento

A diferença nas licenças entre essas bibliotecas impacta significativamente o desenvolvimento comercial. A licença AGPL do iTextSharp cria obrigações legais que muitas empresas não podem aceitar. Utilizar a versão gratuita exige que você torne todo o seu aplicativo de código aberto, incluindo a lógica de negócios proprietária. Essa restrição torna o iTextSharp inadequado para a maioria dos projetos comerciais, a menos que você compre uma licença comercial cara.

IronPDF oferece licenciamento comercial simplificado a partir de $799 para um único desenvolvedor. A licença inclui um ano de atualizações e suporte, sem obrigação de tornar seu aplicativo de código aberto. Este modelo de preços transparente está alinhado com os orçamentos típicos de desenvolvimento de software, tornando a geração profissional de PDFs acessível a empresas de todos os portes ao converterem visualizações MVC em PDF em C#.

IronPDF vs iTextSharp MVC View to PDF File in C#: Imagem 9 - Licenciamento

Análise da Qualidade da Produção

A diferença na qualidade da renderização torna-se imediatamente aparente ao comparar as saídas. O iTextSharp produz PDFs básicos que se assemelham a documentos do início dos anos 2000. As tabelas não possuem formatação adequada, as fontes utilizam os padrões do sistema por padrão e os elementos de design modernos desaparecem completamente. Os PDFs resultantes têm uma aparência pouco profissional e não correspondem à identidade visual da sua aplicação.

O IronPDF gera PDFs com qualidade de imagem perfeita que correspondem ao design do seu site. Os gradientes são renderizados com precisão, as fontes personalizadas são exibidas corretamente e os layouts complexos mantêm sua estrutura. O mecanismo Chromium garante que seus PDFs tenham a mesma aparência que a visualização na web, preservando a identidade da marca e a aparência profissional em todos os documentos gerados.

Quais recursos avançados o renderizador de PDF oferece?

Além da conversão básica de HTML, o IronPDF oferece recursos de nível empresarial que aceleram a geração de PDFs profissionais. A documentação completa da API demonstra as amplas capacidades da biblioteca para converter visualizações MVC em PDF.

Cabeçalhos e rodapés

Adicione cabeçalhos e rodapés profissionais com conteúdo dinâmico:

var renderer = new ChromePdfRenderer
{
    RenderingOptions = new ChromePdfRenderOptions
    {
        HtmlHeader = new HtmlHeaderFooter
        {
            MaxHeight = 25,
            HtmlFragment = "<div style='text-align: center'>Company Name</div>"
        },
        HtmlFooter = new HtmlHeaderFooter
        {
            MaxHeight = 20,
            HtmlFragment = "<center>Page {page} of {total-pages}</center>"
        }
    }
};
var renderer = new ChromePdfRenderer
{
    RenderingOptions = new ChromePdfRenderOptions
    {
        HtmlHeader = new HtmlHeaderFooter
        {
            MaxHeight = 25,
            HtmlFragment = "<div style='text-align: center'>Company Name</div>"
        },
        HtmlFooter = new HtmlHeaderFooter
        {
            MaxHeight = 20,
            HtmlFragment = "<center>Page {page} of {total-pages}</center>"
        }
    }
};
Dim renderer = New ChromePdfRenderer With {
    .RenderingOptions = New ChromePdfRenderOptions With {
        .HtmlHeader = New HtmlHeaderFooter With {
            .MaxHeight = 25,
            .HtmlFragment = "<div style='text-align: center'>Company Name</div>"
        },
        .HtmlFooter = New HtmlHeaderFooter With {
            .MaxHeight = 20,
            .HtmlFragment = "<center>Page {page} of {total-pages}</center>"
        }
    }
}
$vbLabelText   $csharpLabel

Essa configuração adiciona uma identidade visual consistente a todas as páginas. Os placeholders {page} e {total-pages} automaticamente se preenchem com os valores corretos, garantindo paginação precisa em todo o documento. Para mais opções de configuração, consulte o guia de cabeçalhos e rodapés .

Segurança e Criptografia

Proteja documentos confidenciais com senhas e permissões usando os recursos de segurança do IronPDF:

var pdf = renderer.RenderHtmlAsPdf(html);

// Add password protection
pdf.SecuritySettings.UserPassword = "user123";
pdf.SecuritySettings.OwnerPassword = "owner456";

// Set permissions
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.CompletoPrintRights;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
var pdf = renderer.RenderHtmlAsPdf(html);

// Add password protection
pdf.SecuritySettings.UserPassword = "user123";
pdf.SecuritySettings.OwnerPassword = "owner456";

// Set permissions
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.CompletoPrintRights;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
Dim pdf = renderer.RenderHtmlAsPdf(html)

' Add password protection
pdf.SecuritySettings.UserPassword = "user123"
pdf.SecuritySettings.OwnerPassword = "owner456"

' Set permissions
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.CompletoPrintRights
pdf.SecuritySettings.AllowUserCopyPasteContent = False
$vbLabelText   $csharpLabel

Essas configurações de segurança impedem o acesso não autorizado e controlam como os destinatários podem interagir com seus PDFs ao converter visualizações MVC em PDF. Você pode restringir a impressão, a cópia e a edição, mantendo o controle total do proprietário. Saiba mais na documentação de segurança em PDF .

Saída

IronPDF vs iTextSharp MVC View to PDF File in C#: Imagem 10 - Saída PDF Segura

Manipulação de campos de formulário

O IronPDF converte formulários HTML em formulários PDF interativos sem a necessidade de ferramentas adicionais:

string formHtml = @"
    <form>
        <label>Name:</label>
        <input type='checkbox'> Accept Terms
        <select name='country'>
            <option>USA</option>
            <option>Canada</option>
        </select>
    </form>";

var pdf = renderer.RenderHtmlAsPdf(formHtml);
string formHtml = @"
    <form>
        <label>Name:</label>
        <input type='checkbox'> Accept Terms
        <select name='country'>
            <option>USA</option>
            <option>Canada</option>
        </select>
    </form>";

var pdf = renderer.RenderHtmlAsPdf(formHtml);
Imports System

Dim formHtml As String = "
    <form>
        <label>Name:</label>
        <input type='checkbox'> Accept Terms
        <select name='country'>
            <option>USA</option>
            <option>Canada</option>
        </select>
    </form>"

Dim pdf = renderer.RenderHtmlAsPdf(formHtml)
$vbLabelText   $csharpLabel

O PDF resultante mantém a interatividade do formulário, permitindo que os usuários preencham os campos diretamente em seu leitor de PDF. Essa funcionalidade elimina a necessidade de ferramentas separadas para criação de formulários, simplificando o fluxo de trabalho de documentos. Consulte a documentação dos formulários para obter mais opções.

Saída

IronPDF vs iTextSharp MVC View to PDF File in C#: Imagem 11 - Saída do Formulário

Como resolver problemas comuns na geração de PDFs?

Mesmo com bibliotecas modernas, certos desafios exigem soluções específicas para garantir a melhor saída em PDF. Os padrões a seguir abordam os problemas mais frequentes que os desenvolvedores encontram ao converter visualizações MVC em PDF.

Otimização de renderização CSS

Para obter os melhores resultados com CSS complexo ao converter arquivos HTML para o formato PDF, use consultas de mídia de impressão:

renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
$vbLabelText   $csharpLabel

Essa configuração aplica regras CSS específicas para impressão, otimizando os layouts para saída em PDF em vez de exibição na tela. A combinação disso com folhas de estilo otimizadas para impressão oferece controle preciso sobre quebras de página, margens e tipografia. O guia de tipos de mídia CSS explica opções adicionais de renderização.

Tempo de execução do JavaScript

Ao converter conteúdo dinâmico, aguarde a conclusão da execução do JavaScript antes de capturar o PDF. Isso garante que todas as chamadas AJAX e manipulações do DOM sejam concluídas:

renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.RenderDelay = 500; // milliseconds
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.RenderDelay = 500; // milliseconds
$vbLabelText   $csharpLabel

Essa configuração garante que as chamadas AJAX sejam concluídas e as manipulações do DOM terminem antes do início da geração do PDF, capturando o estado totalmente renderizado da sua visualização MVC. Para bibliotecas de gráficos e outros conteúdos que dependem muito de operações assíncronas, pode ser necessário aumentar o valor do atraso.

Saída

IronPDF vs iTextSharp MVC View to PDF File in C#: Imagem 12 - Saída da Execução do JavaScript

Incorporação de fontes e formatação de documentos

Garanta que as fontes personalizadas sejam renderizadas corretamente incorporando-as diretamente no seu HTML usando URIs de dados codificados em base64:

@font-face {
    font-family: 'CustomFont';
    src: url(data:font/woff2;base64,[base64-encoded-font]) format('woff2');
}

Incorporar fontes diretamente no HTML garante uma renderização consistente em todos os ambientes, eliminando problemas de fontes ausentes em documentos PDF gerados. Esta abordagem funciona igualmente bem, quer você utilize uma renderização baseada em URL via RenderUrlAsPdf ou uma renderização baseada em string via RenderHtmlAsPdf.

Para obter padrões de configuração adicionais, incluindo tamanho da página, orientação e controle de margens, visite a documentação de opções de renderização do IronPDF . Você também pode consultar projetos de exemplo no GitHub que demonstram padrões comuns de integração MVC.

Quais são os seus próximos passos?

Embora o iTextSharp tenha atendido bem à comunidade .NET por muitos anos, o desenvolvimento web moderno exige uma geração de PDFs mais robusta. O mecanismo de renderização do IronPDF, baseado no Chrome, oferece precisão perfeita em nível de pixel e suporte completo ao CSS3, requisitos essenciais para as aplicações ASP.NET MVC atuais. Sua API de alto nível, documentação completa e licenciamento acessível tornam-no a escolha ideal para projetos ASP.NET Core MVC.

Para aprofundar a geração de PDFs em sua aplicação:

Perguntas frequentes

Qual é a finalidade de converter views MVC para PDF?

Converter visualizações MVC para PDF permite que os desenvolvedores gerem documentos imprimíveis e facilmente compartilháveis diretamente de aplicativos da web, preservando o layout e o design da visualização original.

O que é o IronPDF?

IronPDF é uma biblioteca .NET que facilita a criação, edição e conversão de documentos PDF em aplicações .NET, oferecendo uma maneira fácil de integrar a funcionalidade de PDF.

Como o IronPDF simplifica a conversão de views MVC para PDF?

O IronPDF simplifica o processo, permitindo que os desenvolvedores renderizem visualizações HTML e MVC diretamente para o formato PDF sem a necessidade de codificação complexa, preservando o layout e o design originais.

Quais são as limitações do iTextSharp para conversão de PDF em MVC?

O XMLWorkerHelper do iTextSharp não suporta CSS3 moderno, flexbox, layouts grid, execução de JavaScript ou estilização Bootstrap. Sua licença AGPL também exige que você abra o código do seu aplicativo se usar a versão gratuita.

O IronPDF pode renderizar JavaScript antes de gerar o PDF?

Sim, o IronPDF suporta a execução de JavaScript durante a renderização. Você pode habilitá-lo com EnableJavaScript e controlar o atraso de renderização usando WaitFor.RenderDelay para garantir que o conteúdo dinâmico esteja totalmente carregado.

Quais são os requisitos de sistema para usar o IronPDF?

IronPDF suporta .NET 6, .NET 7, .NET 8, .NET Core e .NET Framework 4.6.2+. Ele funciona no Windows, Linux e macOS.

É possível personalizar a saída em PDF ao converter visualizações MVC?

Sim, com o IronPDF, desenvolvedores podem personalizar a saída em PDF ajustando configurações como tamanho da página, orientação, margens, cabeçalhos, rodapés, configurações de segurança e tipo de mídia CSS.

O IronPDF suporta estilização CSS para conversão de PDF?

IronPDF suporta a estilização CSS3 completa através de seu mecanismo de renderização Chromium, garantindo que o PDF convertido mantenha a aparência visual do HTML ou visualização MVC original, incluindo fontes, cores, gradientes e layout.

Como o desempenho do IronPDF se compara ao iTextSharp?

IronPDF usa o motor Chromium para renderização, o que adiciona sobrecarga de inicialização, mas oferece precisão de renderização muito superior. Para cenários de alto volume, o IronPDF suporta renderização assíncrona e pode ser otimizado com instâncias de renderizador seguras para threads.

Onde posso encontrar a documentação do IronPDF?

A documentação completa para IronPDF está disponível em https://ironpdf.com/how-to/, incluindo guias, tutoriais e referências de API para auxiliar desenvolvedores na implementação.

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

Leia mais

Equipe de suporte de ferro

Estamos online 24 horas por dia, 5 dias por semana.
Bater papo
E-mail
Liga para mim