HTML para PDF em C# para desenvolvedores .NET (O Guia Definitivo)
Introdução
No mundo impulsionado pela web de hoje, a capacidade de converter conteúdo HTML em documentos PDF (Formato de Documento Portátil) é um recurso crucial para muitas aplicações. Quer seja para gerar arquivos PDF de relatórios, faturas ou arquivar conteúdo da web, a conversão de HTML para PDF simplifica os fluxos de trabalho e garante a formatação consistente de PDFs de alta qualidade. Bibliotecas como IronPDF oferecem uma maneira amigável ao desenvolvedor de lidar com essa conversão, suportando conteúdo dinâmico, formulários HTML e renderização precisa de CSS e JavaScript.
Para desenvolvedores .NET, usar o conversor de HTML para PDF certo impacta a eficiência, simplicidade do código e qualidade da geração de PDF. Bibliotecas modernas permitem que desenvolvedores convertam diretamente strings HTML, páginas da web inteiras ou arquivos HTML em documentos PDF renderizados em apenas algumas linhas de código, possibilitando documentos dinâmicos, cabeçalhos personalizados e versões imprimíveis de conteúdo da web.
O Que Você Vai Aprender
Neste guia, você aprenderá como converter HTML para PDF em C# em várias bibliotecas e explorar suas capacidades de conversão de PDF, incluindo manipulação de documentos PDF, formulários HTML, margens personalizadas e PDFs seguros. Os tópicos que abordaremos neste artigo são:
- Por que Comparar Ferramentas de HTML para PDF?
- IronPDF: Conversão de HTML para PDF
- Aspose: Conversão de HTML para PDF
- iText 9: Conversão de HTML para PDF
- wkhtmltopdf: Conversão de HTML para PDF
- PuppeteerSharp: Conversão de HTML para PDF
- Conclusão Por Que Escolher o IronPDF?
Ao final, você entenderá por que o IronPDF se destaca como um conversor de HTML para PDF amigável ao desenvolvedor e eficiente. Certifique-se de conferir nossos outros guias de comparação, onde analisamos mais detalhadamente como o IronPDF se compara com, Aspose.PDF, iText 9, wkhtmltopdf, e PuppeteerSharp para ver qual se encaixa melhor no seu projeto, e por que o IronPDF se sobressai.
Por que Comparar Ferramentas de HTML para PDF?
Selecionar a ferramenta de conversão de HTML para PDF adequada é essencial para garantir que sua aplicação atenda aos requisitos de desempenho, qualidade e custo. Com várias opções disponíveis, cada uma oferecendo diferentes capacidades de conversão de PDF, uma comparação detalhada ajuda na tomada de uma decisão informada. Aqui estão os critérios de avaliação chave a considerar:
- Complexidade de Integração: Quão facilmente a biblioteca se integra com seus projetos .NET existentes, como usar o Gerenciador de Pacotes NuGet para instalação simples e configuração de integração de API.
- Simplicidade do Código: A facilidade de escrever e manter o código-fonte, incluindo exemplos de código mínimos, como apenas algumas linhas para converter strings HTML ou páginas da web inteiras em documentos PDF gerados.
- Precisão de Renderização: A capacidade do mecanismo de renderização para lidar com precisão o código HTML, execução de JavaScript, impressão de CSS, formulários HTML e outros conteúdos dinâmicos enquanto produz PDFs de alta qualidade.
- Desempenho em Escala: Quão bem o conversor de PDF se desempenha sob carga pesada ao gerar arquivos PDF de várias páginas HTML ou conteúdo dinâmico.
- Licenciamento e Custo-Benefício: Os modelos de preços, como licença comercial, e adequação ao orçamento do seu projeto.
Ao avaliar esses fatores, os desenvolvedores podem escolher uma ferramenta que atende tanto aos requisitos técnicos quanto às restrições financeiras, quer esteja trabalhando em projetos .NET Core ou .NET Framework no Visual Studio.
IronPDF: Conversão de HTML para PDF

IronPDF é uma biblioteca .NET completa, projetada especificamente para desenvolvedores. Ele fornece métodos prontos para uso para converter HTML strings, arquivos locais e URLs ao vivo em PDFs com configuração mínima. Seu mecanismo de renderização baseado no Chrome garante alta precisão, incluindo suporte para CSS e JavaScript. IronPDF é comercial, mas oferece forte suporte e uma API direta.
HTML String para PDF
Converter HTML de uma string para um PDF é simples com IronPDF. Esta abordagem é ideal para geração de conteúdo dinâmico ou pequenos trechos de HTML.
Exemplo:
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello, World!</h1>");
pdf.SaveAs("output.pdf");
}
}
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello, World!</h1>");
pdf.SaveAs("output.pdf");
}
}
Documento PDF Gerado

Explicação:
ChromePdfRenderer: A classeChromePdfRendereré a ferramenta principal para converter HTML em PDF no IronPDF. Ele vem pré-configurado para lidar com a maioria dos casos de uso com configuração mínima.RenderHtmlAsPdf: Este método recebe uma string HTML como entrada e gera um documento PDF.SaveAs: O PDF gerado é salvo no caminho especificado (output.pdf).
Arquivo HTML Local para PDF
Para aplicativos que precisam converter um arquivo HTML local (com recursos externos como CSS ou JavaScript), o IronPDF facilita.
Exemplo:
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlFileAsPdf("template.html");
pdf.SaveAs("report.pdf");
}
}
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlFileAsPdf("template.html");
pdf.SaveAs("report.pdf");
}
}
Arquivo HTML de Entrada

Saída

Explicação:
- RenderHtmlFileAsPdf: Recebe um arquivo HTML local e o converte em PDF.
- Lida com recursos vinculados automaticamente, como arquivos externos de CSS e JavaScript.
URL para PDF
IronPDF é especialmente poderoso ao converter conteúdo dinâmico da web de URLs, incluindo páginas que usam JavaScript.
Exemplo:
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
renderer.RenderingOptions.WaitFor.RenderDelay(3000); // Wait up to 3 seconds for JS to load
PdfDocument pdf = renderer.RenderUrlAsPdf("https://apple.com");
pdf.SaveAs("url-to-pdf.pdf");
}
}
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
renderer.RenderingOptions.WaitFor.RenderDelay(3000); // Wait up to 3 seconds for JS to load
PdfDocument pdf = renderer.RenderUrlAsPdf("https://apple.com");
pdf.SaveAs("url-to-pdf.pdf");
}
}
Saída

Explicação:
- RenderUrlAsPdf: Busca o conteúdo da URL, incluindo elementos renderizados em JavaScript, e os converte em PDF.
Veredito / Quando Usar
IronPDF é perfeito para desenvolvedores que precisam de fácil integração com API, código mínimo e suporte para manipular documentos PDF, criar documentos dinâmicos, formulários HTML, cabeçalhos personalizados e versões imprimíveis de conteúdo da web. Ideal para projetos .NET Core ou .NET Framework no Visual Studio.
Aspose: Conversão de HTML para PDF

Aspose.PDF é outra poderosa biblioteca para manipulação de PDF, com suporte para converter HTML em PDF. Vamos ver como a Aspose lida com cada cenário de conversão:
String HTML para PDF
Aspose requer um pouco mais de configuração ao converter strings HTML em comparação ao IronPDF.
Exemplo:
using Aspose.Html;
using Aspose.Html.Saving;
Document doc = new Document();
Page page = doc.getPages().Add();
HtmlFragment htmlFragment = new HtmlFragment("<h1>HTML String</h1>");
page.getParagraphs().Add(htmlFragment);
doc.Save("HTMLStringUsingDOM.pdf");
using Aspose.Html;
using Aspose.Html.Saving;
Document doc = new Document();
Page page = doc.getPages().Add();
HtmlFragment htmlFragment = new HtmlFragment("<h1>HTML String</h1>");
page.getParagraphs().Add(htmlFragment);
doc.Save("HTMLStringUsingDOM.pdf");
Saída

Explicação:
- Document doc: Cria um novo documento para salvar a string HTML convertida.
- Page page: Esta linha adiciona uma nova página ao documento vazio que criamos.
- HtmlFragment htmlFragment: Esta é a string HTML que estamos convertendo.
- page.getParagraphs().Add(htmlFragment): Adiciona o HTML ao documento.
- doc.Save: Salva o documento com o conteúdo HTML como um documento PDF.
Arquivo HTML Local para PDF
A Aspose também lida com a conversão de arquivos HTML locais para PDFs, mas requer mais configuração que o IronPDF.
Exemplo:
using Aspose.Html;
using Aspose.Html.Converters;
using Aspose.Html.Saving;
var document = new HTMLDocument("document.html");
var options = new PdfSaveOptions();
Converter.ConvertHTML(document, options, "output.pdf");
using Aspose.Html;
using Aspose.Html.Converters;
using Aspose.Html.Saving;
var document = new HTMLDocument("document.html");
var options = new PdfSaveOptions();
Converter.ConvertHTML(document, options, "output.pdf");
Entrada HTML:

Saída:

Explicação:
- var document = new HTMLDocument("document.html"): Carrega o arquivo HTML.
- var options: Cria um novo objeto PdfSaveOptions.
- Converter.ConvertHTML(): Converte o HTML em PDF.
URL para PDF
A Aspose oferece funcionalidade semelhante para URLs, mas requer configuração extra.
Exemplo:
using System.IO;
using System;
using System.Net.Http;
using Aspose.Pdf;
HttpClient client = new HttpClient();
HttpResponseMessage response = await client.GetAsync("https://www.apple.com");
response.EnsureSuccessStatusCode();
string responseFromServer = await response.Content.ReadAsStringAsync();
MemoryStream stream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(responseFromServer));
HtmlLoadOptions options = new HtmlLoadOptions("https://www.apple.com");
Document pdfDocument = new Document(stream, options);
pdfDocument.Save("WebPageToPDF_out.pdf");
using System.IO;
using System;
using System.Net.Http;
using Aspose.Pdf;
HttpClient client = new HttpClient();
HttpResponseMessage response = await client.GetAsync("https://www.apple.com");
response.EnsureSuccessStatusCode();
string responseFromServer = await response.Content.ReadAsStringAsync();
MemoryStream stream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(responseFromServer));
HtmlLoadOptions options = new HtmlLoadOptions("https://www.apple.com");
Document pdfDocument = new Document(stream, options);
pdfDocument.Save("WebPageToPDF_out.pdf");
Saída

Explicação:
- A variável
dataDircontém o diretório onde o PDF gerado será salvo. - Um
WebRequesté criado para acessar o URL da página principal da Wikipedia, e credenciais padrão são usadas para a solicitação. - O método
GetResponse()envia a solicitação e recupera a resposta como um HttpWebResponse. - Um fluxo é obtido da resposta e um StreamReader lê todo o conteúdo HTML da página na string
responseFromServer. - O conteúdo HTML de
responseFromServeré convertido em um array de bytes e em seguida carregado em umMemoryStream. HtmlLoadOptionsé usado para especificar a URL base para links relativos e outras configurações.- Um
Aspose.Pdf.Documenté criado a partir do fluxo de memória contendo o HTML, e o documento é salvo como PDF no diretório especificado.
Veredito / Quando Usar
Aspose.PDF é melhor para projetos empresariais que requerem manipulação avançada de PDF além da conversão. É poderoso, mas menos simplificado para tarefas rápidas de conversão de HTML para PDF.
iText 9: Conversão de HTML para PDF

iText 9 é a última versão da biblioteca iText PDF, oferecendo recursos aprimorados para gerar e manipular documentos PDF em aplicações .NET. Ele introduz uma API mais simplificada e extensível, melhorando o desempenho e proporcionando melhor suporte para os padrões modernos de PDF.
String HTML para PDF
Aqui está um exemplo básico de como converter uma string HTML em um documento PDF usando iText 9.
Exemplo:
using iText.Html2pdf;
using System.IO;
class Program
{
static void Main()
{
string html = "<h1>Hello World</h1><p>This is a simple PDF generated from HTML.</p>";
string outputFile = "SimpleHtmlToPdf.pdf";
using (var pdfStream = new FileStream(outputFile, FileMode.Create))
{
HtmlConverter.ConvertToPdf(html, pdfStream);
}
System.Console.WriteLine("PDF generated: " + outputFile);
}
}
using iText.Html2pdf;
using System.IO;
class Program
{
static void Main()
{
string html = "<h1>Hello World</h1><p>This is a simple PDF generated from HTML.</p>";
string outputFile = "SimpleHtmlToPdf.pdf";
using (var pdfStream = new FileStream(outputFile, FileMode.Create))
{
HtmlConverter.ConvertToPdf(html, pdfStream);
}
System.Console.WriteLine("PDF generated: " + outputFile);
}
}
Saída

Arquivo HTML Local para PDF
iText 9 pode converter tipos de arquivos HTML para PDF usando a classe HtmlConverter.ConvertToPdf.
Exemplo:
using iText.Html2pdf;
using System.IO;
class Program
{
static void Main()
{
string htmlFile = "document.html";
string outputPdf = "html-file-to-pdf.pdf";
// Read HTML content from file
string htmlContent = File.ReadAllText(htmlFile);
// Convert HTML string to PDF
HtmlConverter.ConvertToPdf(htmlContent, new FileStream(outputPdf, FileMode.Create));
System.Console.WriteLine("PDF generated: " + outputPdf);
}
}
using iText.Html2pdf;
using System.IO;
class Program
{
static void Main()
{
string htmlFile = "document.html";
string outputPdf = "html-file-to-pdf.pdf";
// Read HTML content from file
string htmlContent = File.ReadAllText(htmlFile);
// Convert HTML string to PDF
HtmlConverter.ConvertToPdf(htmlContent, new FileStream(outputPdf, FileMode.Create));
System.Console.WriteLine("PDF generated: " + outputPdf);
}
}
Saída

Explicação:
- HtmlConverter: Converte diretamente um arquivo HTML para um PDF.
URL para PDF
iText7 também suporta a conversão de conteúdo de URLs.
Exemplo:
using iText.Html2pdf;
using System;
using System.IO;
using System.Net.Http;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
string url = "https://apple.com";
string outputPdf = "url-to-pdf.pdf";
using var httpClient = new HttpClient();
// Fetch the HTML content from the URL
string htmlContent = await httpClient.GetStringAsync(url);
// Convert HTML content to PDF
HtmlConverter.ConvertToPdf(htmlContent, new FileStream(outputPdf, FileMode.Create));
Console.WriteLine("PDF generated: " + outputPdf);
}
}
using iText.Html2pdf;
using System;
using System.IO;
using System.Net.Http;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
string url = "https://apple.com";
string outputPdf = "url-to-pdf.pdf";
using var httpClient = new HttpClient();
// Fetch the HTML content from the URL
string htmlContent = await httpClient.GetStringAsync(url);
// Convert HTML content to PDF
HtmlConverter.ConvertToPdf(htmlContent, new FileStream(outputPdf, FileMode.Create));
Console.WriteLine("PDF generated: " + outputPdf);
}
}
Saída

Explicação:
- HttpClient.GetStringAsync(url): Faz o download do conteúdo HTML real da URL.
- HtmlConverter.ConvertToPdf(htmlContent, …): Converte a string HTML capturada em um PDF renderizado.
Veredito / Quando Usar
O iText 9 é adequado para desenvolvedores que precisam de uma solução robusta e de nível empresarial para criação, manipulação e conversão de HTML para PDF. Funciona bem quando se requer controle preciso sobre o PDF gerado, integração com fluxos de trabalho iText existentes ou recursos avançados de PDF como assinaturas digitais e formulários. No entanto, para tarefas simples de HTML para PDF, o iText 9 é mais pesado e complexo do que bibliotecas simplificadas como o IronPDF.
wkhtmltopdf: Conversão de HTML para PDF

Status de Arquivamento & Manutenção
É importante notar que wkhtmltopdf não é mais mantido ativamente. Seu repositório no GitHub foi oficialmente arquivado em janeiro de 2023 e marcado como somente leitura, o que significa que não estão sendo aplicadas futuras atualizações, correções de bugs ou patches de segurança.
Implicações para desenvolvedores: Embora o wkhtmltopdf ainda possa ser eficaz para casos de uso muito básicos, seu status não mantido e motor de renderização desatualizado o tornam uma escolha arriscada especialmente para ambientes de produção ou aplicativos que lidam com conteúdo HTML dinâmico ou externo.
O wkhtmltopdf é uma ferramenta de linha de comando que converte arquivos HTML para PDF usando renderização Webkit. Veja como funciona para diferentes cenários:
String HTML para PDF
wkhtmltopdf requer a conversão de strings HTML escrevendo-as primeiro em um arquivo.
Exemplo:
using System;
using System.IO;
using System.Diagnostics;
class Program
{
static void Main(string[] args)
{
// HTML string to be converted to PDF
string html = "<html><body><h1>Hello, World!</h1></body></html>";
// Write HTML string to temporary file
string tempHtmlFile = Path.Combine(Path.GetTempPath(), "temp.html");
File.WriteAllText(tempHtmlFile, html);
// Set output PDF path
string outputPdfFile = Path.Combine(Path.GetTempPath(), "html-string-to-pdf.pdf");
// Execute wkhtmltopdf command
Process process = new Process();
process.StartInfo.FileName = "wkhtmltopdf";
process.StartInfo.Arguments = $"\"{tempHtmlFile}\" \"{outputPdfFile}\"";
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.Start();
process.WaitForExit();
// Clean up the temporary HTML file
File.Delete(tempHtmlFile);
Console.WriteLine($"PDF saved to: {outputPdfFile}");
}
}
using System;
using System.IO;
using System.Diagnostics;
class Program
{
static void Main(string[] args)
{
// HTML string to be converted to PDF
string html = "<html><body><h1>Hello, World!</h1></body></html>";
// Write HTML string to temporary file
string tempHtmlFile = Path.Combine(Path.GetTempPath(), "temp.html");
File.WriteAllText(tempHtmlFile, html);
// Set output PDF path
string outputPdfFile = Path.Combine(Path.GetTempPath(), "html-string-to-pdf.pdf");
// Execute wkhtmltopdf command
Process process = new Process();
process.StartInfo.FileName = "wkhtmltopdf";
process.StartInfo.Arguments = $"\"{tempHtmlFile}\" \"{outputPdfFile}\"";
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.Start();
process.WaitForExit();
// Clean up the temporary HTML file
File.Delete(tempHtmlFile);
Console.WriteLine($"PDF saved to: {outputPdfFile}");
}
}
Saída

Explicação:
- wkhtmltopdf requer um arquivo de entrada, então primeiro escrevemos a string HTML em um arquivo temporário (temp.html).
- Em seguida, usamos a classe Process para executar o comando do wkhtmltopdf, passando o caminho do arquivo do HTML temporário e o caminho do PDF desejado como argumentos.
- Após a conversão, deletamos o arquivo HTML temporário para limpeza.
Arquivo HTML Local para PDF
Para converter um arquivo HTML local para PDF usando wkhtmltopdf, você pode apontar diretamente para o caminho do arquivo HTML.
Exemplo:
using System;
using System.Diagnostics;
class Program
{
static void Main(string[] args)
{
// Path to the local HTML file
string htmlFilePath = @"C:\path\to\your\document.html";
// Path for the output PDF file
string outputPdfFile = @"C:\path\to\output\html-file-to-pdf.pdf";
// Execute wkhtmltopdf command
Process process = new Process();
process.StartInfo.FileName = "wkhtmltopdf";
process.StartInfo.Arguments = $"\"{htmlFilePath}\" \"{outputPdfFile}\"";
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.Start();
process.WaitForExit();
Console.WriteLine($"PDF saved to: {outputPdfFile}");
}
}
using System;
using System.Diagnostics;
class Program
{
static void Main(string[] args)
{
// Path to the local HTML file
string htmlFilePath = @"C:\path\to\your\document.html";
// Path for the output PDF file
string outputPdfFile = @"C:\path\to\output\html-file-to-pdf.pdf";
// Execute wkhtmltopdf command
Process process = new Process();
process.StartInfo.FileName = "wkhtmltopdf";
process.StartInfo.Arguments = $"\"{htmlFilePath}\" \"{outputPdfFile}\"";
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.Start();
process.WaitForExit();
Console.WriteLine($"PDF saved to: {outputPdfFile}");
}
}
Saída

Explicação:
- Este exemplo simplesmente fornece o caminho para o arquivo HTML local (template.html) e o caminho de saída para o PDF.
- wkhtmltopdf lida diretamente com arquivos locais, tornando o comando direto.
URL para PDF
Converter uma URL para PDF é fácil com o wkhtmltopdf. Basta passar a URL diretamente para o comando.
Exemplo:
using System;
using System.Diagnostics;
class Program
{
static void Main(string[] args)
{
// URL to be converted to PDF
string url = "https://apple.com";
// Path for the output PDF file
string outputPdfFile = @"C:\path\to\output\url-to-pdf.pdf";
// Execute wkhtmltopdf command
Process process = new Process();
process.StartInfo.FileName = "wkhtmltopdf";
process.StartInfo.Arguments = $"\"{url}\" \"{outputPdfFile}\"";
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.Start();
process.WaitForExit();
Console.WriteLine($"PDF saved to: {outputPdfFile}");
}
}
using System;
using System.Diagnostics;
class Program
{
static void Main(string[] args)
{
// URL to be converted to PDF
string url = "https://apple.com";
// Path for the output PDF file
string outputPdfFile = @"C:\path\to\output\url-to-pdf.pdf";
// Execute wkhtmltopdf command
Process process = new Process();
process.StartInfo.FileName = "wkhtmltopdf";
process.StartInfo.Arguments = $"\"{url}\" \"{outputPdfFile}\"";
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.Start();
process.WaitForExit();
Console.WriteLine($"PDF saved to: {outputPdfFile}");
}
}
Saída

Explicação:
- Neste exemplo,
wkhtmltopdfaceita diretamente URLs como entrada. - O URL é passado como um argumento para
wkhtmltopdf, e a saída é salva como PDF no caminho especificado.
PuppeteerSharp: Conversão de HTML para PDF

PuppeteerSharp é um wrapper .NET para o Puppeteer do Google, proporcionando controle sobre o Chrome/Chromium headless. Ele se destaca na renderização de páginas dinâmicas e pesadas em JavaScript, mas requer o download e gerenciamento de uma instância do Chromium, o que adiciona sobrecarga. É de código aberto sob a licença Apache 2.0.
String HTML para PDF
O Puppeteer é projetado para renderizar páginas inteiras, então converter uma string HTML requer escrevê-la em um arquivo ou renderizá-la diretamente em um navegador.
Exemplo:
using PuppeteerSharp;
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// Download the browser if necessary
await new BrowserFetcher().DownloadAsync();
var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true });
var page = await browser.NewPageAsync();
string htmlContent = "<h1>Hello, World!</h1><p>This is a PDF generated from HTML string.</p>";
await page.SetContentAsync(htmlContent);
// Save the page as a PDF
await page.PdfAsync("html-string-to-pdf.pdf");
await browser.CloseAsync();
}
}
using PuppeteerSharp;
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// Download the browser if necessary
await new BrowserFetcher().DownloadAsync();
var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true });
var page = await browser.NewPageAsync();
string htmlContent = "<h1>Hello, World!</h1><p>This is a PDF generated from HTML string.</p>";
await page.SetContentAsync(htmlContent);
// Save the page as a PDF
await page.PdfAsync("html-string-to-pdf.pdf");
await browser.CloseAsync();
}
}
Saída

Explicação:
- Puppeteer.LaunchAsync: Inicia uma nova instância do Chromium no modo headless.
- page.SetContentAsync: Carrega a string HTML na página do navegador.
- page.PdfAsync: Converte o HTML carregado em PDF e salva em um arquivo.
Arquivo HTML Local para PDF
Para converter um arquivo HTML local em PDF usando o PuppeteerSharp, você pode carregar o arquivo em um navegador headless e gerar o PDF.
Exemplo:
using PuppeteerSharp;
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// Download the browser if necessary
await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);
var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true });
var page = await browser.NewPageAsync();
// Load the local HTML file
await page.GoToAsync("file:///path/to/your/template.html");
// Save the page as a PDF
await page.PdfAsync("html-file-to-pdf.pdf");
await browser.CloseAsync();
}
}
using PuppeteerSharp;
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// Download the browser if necessary
await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);
var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true });
var page = await browser.NewPageAsync();
// Load the local HTML file
await page.GoToAsync("file:///path/to/your/template.html");
// Save the page as a PDF
await page.PdfAsync("html-file-to-pdf.pdf");
await browser.CloseAsync();
}
}
Saída

Explicação:
- page.GoToAsync: Carrega o arquivo HTML local (certifique-se de usar o caminho
[file://]()correto). - page.PdfAsync: Converte o conteúdo do arquivo HTML local em um PDF.
URL para PDF
Converter uma URL para um PDF é uma das principais características do PuppeteerSharp, pois ele pode lidar com páginas complexas com JavaScript.
Exemplo:
using PuppeteerSharp;
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// Download the browser if necessary
await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);
var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true });
var page = await browser.NewPageAsync();
// Navigate to the URL
await page.GoToAsync("https://example.com");
// Save the page as a PDF
await page.PdfAsync("url-to-pdf.pdf");
await browser.CloseAsync();
}
}
using PuppeteerSharp;
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// Download the browser if necessary
await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);
var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true });
var page = await browser.NewPageAsync();
// Navigate to the URL
await page.GoToAsync("https://example.com");
// Save the page as a PDF
await page.PdfAsync("url-to-pdf.pdf");
await browser.CloseAsync();
}
}
Saída

Explicação:
- page.GoToAsync: Navega para a URL especificada.
- page.PdfAsync: Converte a página web na URL em um PDF e salva.
Veredito / Quando Usar
PuppeteerSharp é ideal quando você precisa de uma renderização perfeita de aplicativos web modernos e pesados em JavaScript. É mais complexo que o IronPDF, mas se destaca no manuseio de conteúdo web dinâmico.
Por que escolher o IronPDF?
IronPDF se destaca por sua facilidade de uso, flexibilidade e integração perfeita com aplicativos .NET. É simples de implementar, suporta renderização de HTML, CSS e JavaScript, e não requer configuração adicional ou dependências externas. Além da conversão de HTML para PDF, o IronPDF oferece uma ampla gama de recursos para criar documentos PDF de vários tipos de arquivo, editar e adicionar a documentos PDF existentes, marca d'água, segurança de arquivo PDF e mais! Para ver mais dessa biblioteca em ação, não deixe de conferir os Guias de Como Fazer que demonstram cada um de seus recursos em funcionamento.
Conclusão
Quando se trata de converter arquivos HTML para PDF em C#, há várias ferramentas poderosas disponíveis, cada uma oferecendo recursos e capacidades únicas. IronPDF, Aspose, iText 9, wkhtmltopdf, e PuppeteerSharp oferecem soluções robustas para transformar conteúdo HTML em documentos PDF de nível profissional. No entanto, escolher a ferramenta certa para seu projeto depende de fatores como facilidade de integração, suporte para conteúdo dinâmico, desempenho e flexibilidade.
| Ferramenta | String HTML para PDF | Arquivo HTML para PDF | URL para PDF | Notas |
|---|---|---|---|---|
IronPDF |
Simples com `RenderHtmlAsPdf` para strings HTML. Fácil de usar e integra-se perfeitamente com aplicativos .NET. | Usa `RenderHtmlFileAsPdf`, lida automaticamente com recursos vinculados (CSS, JS). | Usa `RenderUrlAsPdf`, suporta páginas pesadas em JavaScript e conteúdo dinâmico. | Totalmente integrado ao .NET, tornando-o ideal para desenvolvedores .NET. Suporta strings HTML, arquivos e URLs. |
![]() Aspose |
Requer mais configuração. Usa `HtmlFragment` em um objeto `Document` para converter strings HTML. | Requer `HtmlDocument` e `PdfSaveOptions` para a conversão de arquivos HTML locais. Necessita de mais configuração que o IronPDF. | Requer uma configuração extra usando `WebRequest` para buscar conteúdo antes de converter com `HtmlLoadOptions`. | Robusto para várias manipulações de documentos, mas a configuração pode ser mais envolvida. Bom para necessidades de PDF mais complexas. |
![]() iText7 |
Usa `HtmlConverter.ConvertToPdf` para converter strings HTML em PDF. | Usa `HtmlConverter.ConvertToPdf` para converter arquivos HTML locais em PDFs. | Semelhante ao manuseio de arquivos locais, usa `HtmlConverter.ConvertToPdf`. | Ótimo para desenvolvedores que precisam de mais controle sobre a manipulação de PDFs além da conversão de HTML para PDF. |
![]() wkhtmltopdf |
Converte strings HTML escrevendo-as primeiro em um arquivo. Usa a ferramenta de linha de comando para gerar PDFs. | Converte diretamente arquivos HTML locais em PDFs apontando para caminhos de arquivos. | Converte diretamente URLs em PDFs passando a URL para a ferramenta de linha de comando. | Principalmente uma ferramenta de linha de comando, pode exigir etapas extras para integração no .NET. Melhor para conversões simples. |
![]() PuppeteerSharp |
Usa `page.SetContentAsync` para carregar a string HTML e depois `page.PdfAsync` para gerar um PDF. | Carrega um arquivo HTML local via `page.GoToAsync` e depois o converte em um PDF. | Carrega uma URL e a converte em um PDF usando `page.GoToAsync` e `page.PdfAsync`. | Mais adequado para páginas dinâmicas, especialmente conteúdo pesado de JavaScript. Requer baixar e iniciar o Chromium. |
-
IronPDF se destaca por sua simplicidade, integração direta com .NET e capacidade de lidar com HTML complexo, incluindo páginas renderizadas em JavaScript. É perfeito para desenvolvedores que buscam uma solução fácil de usar com configuração mínima.
-
Aspose oferece extensas funcionalidades de manipulação de PDF, mas suas capacidades de conversão de HTML para PDF exigem mais configuração, especialmente para o manuseio de arquivos locais e recursos externos.
- iText 9 fornece uma base sólida para quem deseja criar documentos PDF, embora possa exigir codificação adicional para converter HTML em PDF, especialmente para conteúdo dinâmico. É uma ótima escolha para projetos onde a manipulação personalizada de PDF é necessária.
wkhtmltopdf é ideal para conversão básica de HTML para PDF com uma interface de linha de comando, mas carece da integração e flexibilidade de uma biblioteca completa do .NET.
- PuppeteerSharp, aproveitando o Chrome headless, é a ferramenta ideal para renderizar páginas da web complexas e dinâmicas e convertê-las em PDFs, especialmente quando se lida com conteúdo pesado em JavaScript.
Para a maioria dos desenvolvedores .NET que procuram uma solução completa e simples, IronPDF vale a pena experimentar hoje para viver suas poderosas funcionalidades você mesmo. Desde a geração de novos documentos PDF até a edição de PDFs existentes, explore toda a gama de recursos do IronPDF por si mesmo. Basta instalar o IronPDF e usar a versão de teste gratuita para experimentá-lo você mesmo. Veja como ele pode elevar seus fluxos de trabalho de PDF hoje.
Em última análise, a ferramenta certa depende de seus requisitos específicos, mas com as opções discutidas aqui, você está bem equipado para encontrar a solução perfeita para o seu projeto.
Por favor, note: Aspose, iText, wkhtmltopdf e PuppeteerSharp são marcas registradas de seus respectivos proprietários. Este site não é afiliado, endossado ou patrocinado por Aspose, iText, wkhtmltopdf ou Puppeteer. Todos os nomes de produtos, logotipos e marcas são propriedade de seus respectivos proprietários. As comparações são fornecidas apenas para fins informativos e baseiam-se em informações disponíveis publicamente no momento da redação.



