Exemplo em C# de conversão de HTML para PDF com estilos CSS usando iTextSharp versus IronPDF
Full Comparison
Looking for a detailed feature-by-feature breakdown? See how IronPDF stacks up against Itext on pricing, HTML support, and licensing.
Converter HTML para PDF é uma tarefa crucial em muitos fluxos de trabalho modernos de desenvolvimento de software, seja para gerar relatórios, faturas ou criar documentação. Como desenvolvedor C#, você tem à sua disposição diversas bibliotecas para agilizar esse processo.
Neste artigo, compararemos duas das bibliotecas mais populares do ecossistema .NET : IronPDF e iTextSharp . Ambas as bibliotecas oferecem funcionalidades robustas, mas diferem em áreas importantes como facilidade de uso, ferramentas de criação de PDF, suporte a estilos CSS e licenciamento. Seja você um iniciante ou um desenvolvedor experiente, este guia o ajudará a entender os principais recursos de cada ferramenta e a decidir qual delas melhor se adapta às suas necessidades e aos requisitos do seu projeto.
Quer acompanhar? Baixe a versão de avaliação gratuita do IronPDF para explorar você mesmo os poderosos recursos do programa.
Comparando as melhores bibliotecas: iTextSharp e IronPDF
Tanto o iTextSharp quanto o IronPDF fornecem aos desenvolvedores as ferramentas necessárias para a conversão de HTML para PDF em C#. No entanto, cada um tem seus pontos fortes e fracos.
-
O iTextSharp é uma biblioteca de código aberto que existe há bastante tempo. Oferece flexibilidade e amplas opções de personalização, mas pode ser um pouco complexo de configurar e usar, especialmente ao lidar com renderização avançada de HTML e CSS. No entanto, é importante notar que o iTextSharp é um produto antigo e agora recebe apenas atualizações relacionadas à segurança.
- O IronPDF , por outro lado, é um produto comercial desenvolvido pela Iron Software. É conhecido por sua interface amigável, suporte robusto a CSS e facilidade de uso. Ele se integra perfeitamente com aplicativos C#, tornando-se uma excelente opção para desenvolvedores que precisam de geração de PDFs rápida e eficiente sem sacrificar a qualidade.
Antes de explorarmos como converter HTML para o formato PDF com essas duas bibliotecas, vamos primeiro analisar um exemplo básico de comparação que mostra a diferença em como elas lidam com a conversão de conteúdo HTML/CSS e JavaScript de páginas da web em um documento PDF.

Como pode ser observado nos documentos PDF resultantes, isso demonstra como o iTextSharp só consegue processar o conteúdo HTML bruto da URL fornecida, enquanto o IronPDF é capaz de manter o layout e o estilo CSS originais, garantindo que o documento PDF gerado se assemelhe bastante à página web original.
Guia de Instalação Passo a Passo
Configurando o iTextSharp
- Instalar via Console NuGet : Para começar a usar o iTextSharp, você pode instalá-lo diretamente do NuGet. Abra seu projeto do Visual Studio, acesse o Gerenciador de Pacotes NuGet e execute o seguinte comando:
Install-Package iTextSharp

- Instalar via Gerenciador de Pacotes NuGet : Como alternativa, você pode instalá-lo através do gerenciador de pacotes NuGet na tela da Solução. Para isso, acesse "Ferramentas > Gerenciador de Pacotes NuGet > Gerenciar Pacotes NuGet para a Solução".

Em seguida, procure a biblioteca iTextSharp e clique em "Instalar".

- Adicionar referências: Após a instalação, adicione as referências necessárias ao seu projeto, principalmente aquelas relacionadas à conversão de HTML para PDF.
using iTextSharp.text.pdf;
using iTextSharp.text.html.simpleparser;
using iTextSharp.text.pdf;
using iTextSharp.text.html.simpleparser;
Imports iTextSharp.text.pdf
Imports iTextSharp.text.html.simpleparser
Configurando o IronPDF
- Instalar via Console NuGet : Para começar a usar o IronPDF, você pode instalá-lo diretamente do NuGet. Abra seu projeto do Visual Studio, acesse o Gerenciador de Pacotes NuGet e execute o seguinte comando:
Install-Package IronPdf
-
Instalar via Gerenciador de Pacotes NuGet : Como alternativa, você pode instalar o IronPDF através do gerenciador de pacotes NuGet na tela de Solução, assim como fizemos nos passos anteriores para o iTextSharp. No entanto, desta vez, procure por IronPDF antes de clicar em "Instalar".

- Adicionar referências: Após a instalação, importe o IronPDF para o seu projeto:
using IronPdf;
using IronPdf;
Imports IronPdf
É importante lembrar que o IronPDF requer uma chave de licença para uso comercial/uso fora do desenvolvimento.
Implementando a conversão de HTML para PDF
Usando o iTextSharp
Após configurar o iTextSharp, certifique-se de ter o pacote itextscharp.xmlworker instalado em seu projeto antes de começar a criar PDFs a partir de conteúdo HTML. No entanto, você enfrentará desafios com HTML mais complexo, especialmente quando estilos CSS estiverem envolvidos. Em comparação com o IronPDF, o iTextSharp tende a exigir um esforço adicional para alcançar um estilo perfeito. É importante lembrar que o iTextSharp lida apenas com HTML/CSS2 básico (sem flexbox, sem grid, CSS limitado).
using System;
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.tool.xml;
// Register provider for specific code pages
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
// Define HTML content with CSS styling
string html = @"
<html>
<head>
<style>
body { font-family: Arial; color: #333; }
h1 { background: #3498db; color: #fff; padding: 10px; }
table { width: 100%; border-collapse: collapse; margin-top: 15px; }
th, td { border: 1px solid #ccc; padding: 6px; }
th { background: #2980b9; color: #fff; }
.footer { margin-top: 20px; font-size: 12px; color: #777; text-align: center; }
</style>
</head>
<body>
<h1>April Report</h1>
<p>Here’s a quick overview of this month’s performance metrics.</p>
<table>
<tr><th>Metric</th><th>Value</th></tr>
<tr><td>Features</td><td>12</td></tr>
<tr><td>Bugs Fixed</td><td>89</td></tr>
</table>
<p class='footer'>Generated by iTextSharp</p>
</body>
</html>";
// Create PDF from HTML content
using (FileStream stream = new FileStream("report.pdf", FileMode.Create))
{
Document pdfDoc = new Document(PageSize.A4, 25, 25, 30, 30);
PdfWriter writer = PdfWriter.GetInstance(pdfDoc, stream);
pdfDoc.Open();
using (StringReader sr = new StringReader(html))
{
// Use XMLWorkerHelper to parse and add HTML content to the PDF document
XMLWorkerHelper.GetInstance().ParseXHtml(writer, pdfDoc, sr);
}
pdfDoc.Close();
writer.Close();
}
Console.WriteLine("PDF generation completed successfully.");
using System;
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.tool.xml;
// Register provider for specific code pages
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
// Define HTML content with CSS styling
string html = @"
<html>
<head>
<style>
body { font-family: Arial; color: #333; }
h1 { background: #3498db; color: #fff; padding: 10px; }
table { width: 100%; border-collapse: collapse; margin-top: 15px; }
th, td { border: 1px solid #ccc; padding: 6px; }
th { background: #2980b9; color: #fff; }
.footer { margin-top: 20px; font-size: 12px; color: #777; text-align: center; }
</style>
</head>
<body>
<h1>April Report</h1>
<p>Here’s a quick overview of this month’s performance metrics.</p>
<table>
<tr><th>Metric</th><th>Value</th></tr>
<tr><td>Features</td><td>12</td></tr>
<tr><td>Bugs Fixed</td><td>89</td></tr>
</table>
<p class='footer'>Generated by iTextSharp</p>
</body>
</html>";
// Create PDF from HTML content
using (FileStream stream = new FileStream("report.pdf", FileMode.Create))
{
Document pdfDoc = new Document(PageSize.A4, 25, 25, 30, 30);
PdfWriter writer = PdfWriter.GetInstance(pdfDoc, stream);
pdfDoc.Open();
using (StringReader sr = new StringReader(html))
{
// Use XMLWorkerHelper to parse and add HTML content to the PDF document
XMLWorkerHelper.GetInstance().ParseXHtml(writer, pdfDoc, sr);
}
pdfDoc.Close();
writer.Close();
}
Console.WriteLine("PDF generation completed successfully.");
Imports System
Imports System.IO
Imports iTextSharp.text
Imports iTextSharp.text.pdf
Imports iTextSharp.tool.xml
' Register provider for specific code pages
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance)
' Define HTML content with CSS styling
Dim html As String = "
<html>
<head>
<style>
body { font-family: Arial; color: #333; }
h1 { background: #3498db; color: #fff; padding: 10px; }
table { width: 100%; border-collapse: collapse; margin-top: 15px; }
th, td { border: 1px solid #ccc; padding: 6px; }
th { background: #2980b9; color: #fff; }
.footer { margin-top: 20px; font-size: 12px; color: #777; text-align: center; }
</style>
</head>
<body>
<h1>April Report</h1>
<p>Here’s a quick overview of this month’s performance metrics.</p>
<table>
<tr><th>Metric</th><th>Value</th></tr>
<tr><td>Features</td><td>12</td></tr>
<tr><td>Bugs Fixed</td><td>89</td></tr>
</table>
<p class='footer'>Generated by iTextSharp</p>
</body>
</html>"
' Create PDF from HTML content
Using stream As New FileStream("report.pdf", FileMode.Create)
Dim pdfDoc As New Document(PageSize.A4, 25, 25, 30, 30)
Dim writer As PdfWriter = PdfWriter.GetInstance(pdfDoc, stream)
pdfDoc.Open()
Using sr As New StringReader(html)
' Use XMLWorkerHelper to parse and add HTML content to the PDF document
XMLWorkerHelper.GetInstance().ParseXHtml(writer, pdfDoc, sr)
End Using
pdfDoc.Close()
writer.Close()
End Using
Console.WriteLine("PDF generation completed successfully.")
Arquivo PDF de saída

Usando o IronPDF
O IronPDF simplifica o processo de geração de PDFs, sendo capaz de converter facilmente conteúdo HTML em novos documentos PDF com apenas algumas linhas de código, como demonstrado no exemplo de código abaixo. É capaz de trabalhar com documentos HTML avançados que incluem arquivos CSS usados para estilização, strings HTML e conteúdo web com uso intensivo de CSS/JavaScript.
Aqui está um exemplo simples que inclui CSS embutido:
using IronPdf;
class Program
{
static void Main()
{
// Define HTML content with inline CSS styling
var content = @"
<html>
<head>
<style>
body {
font-family: 'Segoe UI', sans-serif;
margin: 40px;
background-color: #f8f9fa;
}
h1 {
color: #2c3e50;
border-bottom: 2px solid #2980b9;
padding-bottom: 10px;
}
table {
width: 100%;
border-collapse: collapse;
margin-top: 20px;
}
table, th, td {
border: 1px solid #ccc;
}
th {
background-color: #2980b9;
color: white;
padding: 10px;
}
td {
padding: 10px;
background-color: #ecf0f1;
}
.footer {
margin-top: 40px;
text-align: center;
font-size: 0.9em;
color: #7f8c8d;
}
img {
width: 120px;
float: right;
}
</style>
</head>
<body>
<img src='https://ironpdf.com/img/svgs/iron-pdf-logo.svg' alt='Company Logo' />
<h1>Monthly Report - April 2025</h1>
<p>This report outlines performance statistics and key updates for the development team.</p>
<table>
<tr>
<th>Metric</th>
<th>Value</th>
<th>Change</th>
</tr>
<tr>
<td>Feature Releases</td>
<td>12</td>
<td style='color: green;'>+20%</td>
</tr>
<tr>
<td>Bugs Resolved</td>
<td>89</td>
<td style='color: green;'>+45%</td>
</tr>
<tr>
<td>Downtime</td>
<td>2 hrs</td>
<td style='color: red;'>+15%</td>
</tr>
</table>
<div class='footer'>
Generated with IronPDF | © 2025 DevCorp
</div>
</body>
</html>";
// Use ChromePdfRenderer to render the HTML content as a PDF
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(content);
pdf.SaveAs("AdvancedStyledReport.pdf");
}
}
using IronPdf;
class Program
{
static void Main()
{
// Define HTML content with inline CSS styling
var content = @"
<html>
<head>
<style>
body {
font-family: 'Segoe UI', sans-serif;
margin: 40px;
background-color: #f8f9fa;
}
h1 {
color: #2c3e50;
border-bottom: 2px solid #2980b9;
padding-bottom: 10px;
}
table {
width: 100%;
border-collapse: collapse;
margin-top: 20px;
}
table, th, td {
border: 1px solid #ccc;
}
th {
background-color: #2980b9;
color: white;
padding: 10px;
}
td {
padding: 10px;
background-color: #ecf0f1;
}
.footer {
margin-top: 40px;
text-align: center;
font-size: 0.9em;
color: #7f8c8d;
}
img {
width: 120px;
float: right;
}
</style>
</head>
<body>
<img src='https://ironpdf.com/img/svgs/iron-pdf-logo.svg' alt='Company Logo' />
<h1>Monthly Report - April 2025</h1>
<p>This report outlines performance statistics and key updates for the development team.</p>
<table>
<tr>
<th>Metric</th>
<th>Value</th>
<th>Change</th>
</tr>
<tr>
<td>Feature Releases</td>
<td>12</td>
<td style='color: green;'>+20%</td>
</tr>
<tr>
<td>Bugs Resolved</td>
<td>89</td>
<td style='color: green;'>+45%</td>
</tr>
<tr>
<td>Downtime</td>
<td>2 hrs</td>
<td style='color: red;'>+15%</td>
</tr>
</table>
<div class='footer'>
Generated with IronPDF | © 2025 DevCorp
</div>
</body>
</html>";
// Use ChromePdfRenderer to render the HTML content as a PDF
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(content);
pdf.SaveAs("AdvancedStyledReport.pdf");
}
}
Imports IronPdf
Friend Class Program
Shared Sub Main()
' Define HTML content with inline CSS styling
Dim content = "
<html>
<head>
<style>
body {
font-family: 'Segoe UI', sans-serif;
margin: 40px;
background-color: #f8f9fa;
}
h1 {
color: #2c3e50;
border-bottom: 2px solid #2980b9;
padding-bottom: 10px;
}
table {
width: 100%;
border-collapse: collapse;
margin-top: 20px;
}
table, th, td {
border: 1px solid #ccc;
}
th {
background-color: #2980b9;
color: white;
padding: 10px;
}
td {
padding: 10px;
background-color: #ecf0f1;
}
.footer {
margin-top: 40px;
text-align: center;
font-size: 0.9em;
color: #7f8c8d;
}
img {
width: 120px;
float: right;
}
</style>
</head>
<body>
<img src='https://ironpdf.com/img/svgs/iron-pdf-logo.svg' alt='Company Logo' />
<h1>Monthly Report - April 2025</h1>
<p>This report outlines performance statistics and key updates for the development team.</p>
<table>
<tr>
<th>Metric</th>
<th>Value</th>
<th>Change</th>
</tr>
<tr>
<td>Feature Releases</td>
<td>12</td>
<td style='color: green;'>+20%</td>
</tr>
<tr>
<td>Bugs Resolved</td>
<td>89</td>
<td style='color: green;'>+45%</td>
</tr>
<tr>
<td>Downtime</td>
<td>2 hrs</td>
<td style='color: red;'>+15%</td>
</tr>
</table>
<div class='footer'>
Generated with IronPDF | © 2025 DevCorp
</div>
</body>
</html>"
' Use ChromePdfRenderer to render the HTML content as a PDF
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(content)
pdf.SaveAs("AdvancedStyledReport.pdf")
End Sub
End Class
Arquivo PDF de saída

Com o IronPDF, você pode esperar um arquivo PDF refinado com estilo CSS preciso, como visto no exemplo de código acima, tornando-o uma escolha frequente para muitos desenvolvedores que trabalham com arquivos HTML complexos, strings e muito mais. Além das simples conversões de documentos HTML para PDF, o IronPDF é capaz de realizar tarefas avançadas de manipulação e segurança de PDFs. Isso a torna uma excelente biblioteca de PDFs completa.
Principais diferenças e panorama da concorrência
Ao avaliar o iTextSharp e o IronPDF, é importante considerar não apenas seus recursos, mas também o cenário competitivo. Outros concorrentes, como Apryse e Aspose.PDF, oferecem soluções semelhantes de conversão de HTML para PDF, mas com suas próprias vantagens e desvantagens em termos de preço e funcionalidade.
| Recurso | IronPDF | iTextSharp | Apryse | Aspose.PDF |
|---|---|---|---|---|
| Facilidade de uso | Alto | Médio | Alto | Médio |
| Suporte a CSS | Full | Parcial | Full | Completo |
| Licenciamento | Commercial | Código aberto | Commercial | Comercial |
| Apoiar | Excelente | Comunidade | Premium | Premium |
| Preços | De $799 | Licença gratuita/comercial | Com base em cotações | A partir de US$ 1.679 por ano |
O IronPDF se destaca por seu suporte abrangente para HTML5 e CSS3 modernos, o que é fundamental para a maioria dos desenvolvedores atualmente. O suporte abrangente para manipulação de documentos PDF, o controle sobre a criação de documentos PDF, a facilidade no processo de conversão e muito mais fazem do IronPDF uma biblioteca PDF popular.
Conclusão e recomendações
Em conclusão, tanto o IronPDF quanto o iTextSharp oferecem recursos robustos para conversão de HTML para PDF em C#, mas atendem a diferentes tipos de desenvolvedores. Se você busca uma solução de código aberto com forte suporte da comunidade, o iTextSharp pode ser a escolha certa. No entanto, para desenvolvedores que precisam de facilidade de uso, suporte robusto a CSS e uma solução comercial, o IronPDF oferece uma experiência muito mais simplificada e rica em recursos. Se você procura uma ferramenta que automatize a geração de faturas, crie documentos PDF personalizados ou converta páginas da web inteiras em arquivos PDF, o IronPDF tem a solução ideal.
Experimente hoje mesmo os recursos intuitivos do IronPDF – baixe a versão de avaliação gratuita para ver em primeira mão como a conversão de HTML para PDF pode ser fácil.
Perguntas frequentes
Como posso converter HTML para PDF em C#?
Você pode usar o IronPDF para converter HTML em PDF usando o método RenderHtmlAsPdf para strings HTML ou RenderHtmlFileAsPdf para arquivos HTML. Esta biblioteca é compatível com HTML5 e CSS3 modernos, garantindo estilo e renderização precisos.
Quais são as principais vantagens de usar o IronPDF para conversão de HTML para PDF?
O IronPDF oferece suporte robusto para HTML5 e CSS3 modernos, tornando-o ideal para lidar com conteúdo web complexo. Sua API amigável permite integração perfeita com C# e também suporta conteúdo com uso intensivo de JavaScript, garantindo que páginas web dinâmicas sejam convertidas com precisão.
Por que um desenvolvedor escolheria o iTextSharp em vez do IronPDF?
Um desenvolvedor pode optar pelo iTextSharp se preferir uma solução de código aberto com opções flexíveis de personalização. O iTextSharp, agora conhecido como iText7, é adequado para aqueles que possuem a experiência necessária para lidar com sua complexidade, especialmente quando envolve HTML e CSS avançados.
O IronPDF consegue lidar com JavaScript em conteúdo HTML?
Sim, o IronPDF consegue processar JavaScript em conteúdo HTML devido às suas capacidades avançadas de renderização, tornando-o uma opção adequada para converter páginas web dinâmicas e interativas em PDFs.
Como faço para instalar o IronPDF em um projeto C#?
Você pode instalar o IronPDF através do Gerenciador de Pacotes NuGet no Visual Studio. Use o comando Install-Package IronPDF no Console do Gerenciador de Pacotes ou pesquise por IronPDF na interface do Gerenciador de Pacotes NuGet.
O que deve ser levado em consideração ao escolher entre IronPDF e iTextSharp?
Ao escolher entre os dois, considere sua necessidade de facilidade de uso, suporte a CSS e JavaScript, requisitos de licenciamento e a complexidade do conteúdo HTML. O IronPDF se destaca em tecnologias web modernas e integração perfeita, enquanto o iTextSharp é uma boa opção para quem prefere uma solução de código aberto.
Existe algum requisito de licenciamento para o IronPDF?
Sim, o IronPDF requer uma licença comercial para uso fora de ambientes de desenvolvimento. As licenças podem ser adquiridas com base no nível de suporte e nos recursos necessários.
Quais são alguns problemas comuns ao converter HTML para PDF com o iTextSharp?
Problemas comuns com o iTextSharp incluem o processamento de HTML e CSS complexos, que podem exigir configurações e personalizações adicionais. Os desenvolvedores frequentemente precisam ajustar seu código para garantir a estilização e a renderização adequadas de conteúdo web avançado.
Como o IronPDF se compara a outras bibliotecas de PDF como o Aspose.PDF?
O IronPDF oferece facilidade de uso e suporte abrangente para padrões web modernos, semelhante ao Aspose.PDF. Seu preço competitivo e conjunto de recursos o tornam uma ótima opção para desenvolvedores que precisam de conversão confiável de HTML para PDF, mantendo a qualidade e o desempenho.



