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

HtmlToPdfDocument C# - Alternativa ao DinkToPdf | IronPDF

Se você estiver trabalhando com HtmlToPdfDocument C# no DinkToPdf e estiver enfrentando suporte limitado a CSS, dependências externas ou problemas de desempenho, saiba que não está sozinho. Muitos desenvolvedores .NET procuram um conversor de HTML para PDF que suporte CSS moderno, fontes da web e execução de JavaScript sem a necessidade de configuração de bibliotecas nativas ou ferramentas de linha de comando. Este guia mostra como substituir o DinkToPdf pelo IronPDF — uma biblioteca .NET com um mecanismo de renderização baseado no Chromium que converte arquivos HTML, páginas da web e strings HTML em PDFs de alta qualidade com apenas algumas linhas de código.

  1. Instale IronPDF com o Gerenciador de Pacotes NuGet

    PM > Install-Package IronPdf
  2. Copie e execute este trecho de código.

    IronPdf.ChromePdfRenderer
           .StaticRenderHtmlAsPdf("<h1>Hello World</h1>")
           .SaveAs("output.pdf");
  3. Implante para testar em seu ambiente de produção.

    Comece a usar IronPDF em seu projeto hoje com uma avaliação gratuita

    arrow pointer

Como instalar o IronPDF via NuGet?

Antes de escrever qualquer código de conversão, você precisa adicionar o IronPDF ao seu projeto. O caminho mais rápido é através da CLI do Gerenciador de Pacotes NuGet :

dotnet add package IronPdf
dotnet add package IronPdf
SHELL

Como alternativa, abra o Console do Gerenciador de Pacotes NuGet no Visual Studio e execute:

Install-Package IronPdf
Install-Package IronPdf
SHELL

O IronPDF é compatível com .NET 8, .NET 9, .NET 10, .NET Standard 2.0 e .NET Framework 4.6.2 ou superior. Não são necessários binários nativos adicionais, instalações do wkhtmltopdf ou configuração de ferramentas de linha de comando. O pacote inclui o mecanismo de renderização Chromium e resolve todas as dependências automaticamente. Após a instalação, você pode definir sua chave de licença no código ou por meio de uma variável de ambiente e começar a gerar PDFs imediatamente. Para obter instruções detalhadas de instalação, a página de primeiros passos do IronPDF descreve cada ambiente em detalhes.

Como o DinkToPdf se compara ao IronPDF?

DinkToPdf é um wrapper .NET Core para wkhtmltopdf, que utiliza o mecanismo de renderização WebKit, mais antigo. Embora seja de código aberto, os desenvolvedores frequentemente enfrentam desafios ao converter HTML para PDF em ambientes de produção.

Comparação de recursos entre DinkToPdf e IronPDF
Recurso DinkToPdf IronPDF
Motor de renderização WebKit (desatualizado) Cromo (moderno)
Suporte a CSS Suporte limitado a CSS CSS3 completo, CSS moderno
Execução de JavaScript Limitado Renderização completa em JavaScript
Dependências nativas Requer os binários do wkhtmltopdf. Sem dependências externas
Fontes da Web Parcial Suporte completo
.NET Core / .NET 5+ Sim Sim (.NET Core, Framework, Standard)
Serviço de Aplicativos do Azure Configuração complexa Funciona perfeitamente assim que é conectado.
Rosqueamento Singleton necessário Seguro contra roscas
Modelos HTML Básico Recursos avançados
Formulários PDF preenchíveis Não Sim

A principal diferença reside no mecanismo de renderização. O mecanismo WebKit do DinkToPdf tem dificuldades com documentos complexos, CSS moderno e conteúdo web dinâmico. O mecanismo Chromium do IronPDF produz documentos PDF que correspondem exatamente ao que um navegador renderiza. Para uma análise mais detalhada, consulte a página de comparação IronPDF vs DinkToPdf .

Quais problemas a classe HtmlToPdfDocument do DinkToPdf apresenta?

HtmlToPdfDocument C#: Alternativa ao DinkToPdf para conversão de HTML para PDF: Imagem 1 - DinkToPdf

A classe HtmlToPdfDocument em DinkToPdf requer uma configuração detalhada com limitações que afetam a qualidade da conversão de PDF e a experiência do desenvolvedor:

using DinkToPdf;

var converter = new SynchronizedConverter(new PdfTools());
var doc = new HtmlToPdfDocument()
{
    GlobalSettings = { PaperSize = PaperKind.A4, Out = "output.pdf" },
    Objects = { new ObjectSettings() { HtmlContent = "<h1>Hello</h1>" } }
};
converter.Convert(doc);
using DinkToPdf;

var converter = new SynchronizedConverter(new PdfTools());
var doc = new HtmlToPdfDocument()
{
    GlobalSettings = { PaperSize = PaperKind.A4, Out = "output.pdf" },
    Objects = { new ObjectSettings() { HtmlContent = "<h1>Hello</h1>" } }
};
converter.Convert(doc);
Imports DinkToPdf

Dim converter = New SynchronizedConverter(New PdfTools())
Dim doc = New HtmlToPdfDocument() With {
    .GlobalSettings = New GlobalSettings() With {
        .PaperSize = PaperKind.A4,
        .Out = "output.pdf"
    },
    .Objects = {New ObjectSettings() With {.HtmlContent = "<h1>Hello</h1>"}}
}
converter.Convert(doc)
$vbLabelText   $csharpLabel

Saída PDF do DinkToPdf

HtmlToPdfDocument C#: Alternativa ao DinkToPdf para conversão de HTML para PDF: Imagem 2 - Exemplo de saída do DinkToPdf em PDF

Problemas comuns incluem: geração lenta de PDFs mesmo para tarefas simples, complicações de multithreading em servidores web e dificuldade em lidar com conteúdo web usando JavaScript. A ferramenta de linha de comando wkhtmltopdf cria desafios de implantação para o Serviço de Aplicativos do Azure e ambientes sem servidor, onde não é possível instalar binários em nível de sistema. Os desenvolvedores também relatam que o padrão de conversor singleton se torna um gargalo sob carga concorrente.

Além do desempenho, o projeto DinkToPdf no GitHub apresenta pouca atividade de manutenção, o que significa que bugs na renderização de CSS ou no tratamento de SSL raramente são corrigidos. Para aplicações de produção que processam milhares de PDFs diariamente, essas lacunas são inaceitáveis. Quando um layout CSS Grid apresenta problemas ou uma fonte da web não carrega, você precisa de uma biblioteca que acompanhe o comportamento dos navegadores modernos, e não de uma congelada no tempo com um mecanismo de renderização do início da década de 2010.

Como converter uma string HTML em PDF com o IronPDF?

HtmlToPdfDocument C#: Alternativa ao DinkToPdf para conversão de HTML para PDF: Imagem 3 - IronPDF

O IronPDF simplifica a conversão de HTML para PDF com uma API mais limpa e qualidade de saída superior. O ChromePdfRenderer lida com todo o conteúdo HTML -- desde uma simples string HTML até páginas HTML complexas com folhas de estilo externas, fontes do Google e layouts baseados em JavaScript.

using IronPdf;

var renderer = new ChromePdfRenderer();

string htmlContent = @"
    <!DOCTYPE html>
    <html>
    <head>
        <style>
            body { font-size: 14px; text-align: center; }
            h1 { color: #2563eb; }
        </style>
    </head>
    <body>
        <h1>Professional Invoice</h1>
        <p>Generated with modern CSS support</p>
    </body>
    </html>";

var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("invoice.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();

string htmlContent = @"
    <!DOCTYPE html>
    <html>
    <head>
        <style>
            body { font-size: 14px; text-align: center; }
            h1 { color: #2563eb; }
        </style>
    </head>
    <body>
        <h1>Professional Invoice</h1>
        <p>Generated with modern CSS support</p>
    </body>
    </html>";

var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("invoice.pdf");
Imports IronPdf

Dim renderer As New ChromePdfRenderer()

Dim htmlContent As String = "
    <!DOCTYPE html>
    <html>
    <head>
        <style>
            body { font-size: 14px; text-align: center; }
            h1 { color: #2563eb; }
        </style>
    </head>
    <body>
        <h1>Professional Invoice</h1>
        <p>Generated with modern CSS support</p>
    </body>
    </html>"

Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
pdf.SaveAs("invoice.pdf")
$vbLabelText   $csharpLabel

Saída de string HTML do IronPDF

HtmlToPdfDocument C#: Alternativa ao DinkToPdf para conversão de HTML para PDF: Imagem 4 - Exemplo do IronPDF de uma string HTML simples para saída em PDF

Este código demonstra como o IronPDF processa HTML e CSS durante a conversão, produzindo documentos PDF com renderização adequada do tamanho da fonte e alinhamento do texto — tudo isso sem dependências externas. O método RenderHtmlAsPdf aceita qualquer string HTML5 válida, incluindo estilos embutidos, scripts incorporados e URIs de dados para imagens.

Como converter um arquivo HTML em PDF?

Para converter arquivos HTML armazenados em disco:

using IronPdf;

var renderer = new ChromePdfRenderer();
var doc = renderer.RenderHtmlFileAsPdf("templates/input.html");
doc.SaveAs("example.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();
var doc = renderer.RenderHtmlFileAsPdf("templates/input.html");
doc.SaveAs("example.pdf");
Imports IronPdf

Dim renderer As New ChromePdfRenderer()
Dim doc = renderer.RenderHtmlFileAsPdf("templates/input.html")
doc.SaveAs("example.pdf")
$vbLabelText   $csharpLabel

HtmlToPdfDocument C#: Alternativa ao DinkToPdf para conversão de HTML para PDF: Imagem 5 - Exemplo de saída de arquivo HTML para PDF

O método RenderHtmlFileAsPdf resolve caminhos relativos para imagens, folhas de estilo e scripts em relação à localização do arquivo HTML no disco, para que os modelos existentes funcionem sem modificação. Isso simplifica bastante a migração de modelos de relatório existentes.

Como converter um URL de página da web em PDF?

A conversão de conteúdo web em tempo real é onde o IronPDF se destaca em relação à renderização JavaScript limitada do DinkToPdf. O mecanismo Chromium do IronPDF oferece suporte a elementos HTML dinâmicos, aplicativos de página única e formulários interativos.

using IronPdf;

var renderer = new ChromePdfRenderer();

// Enable JavaScript execution for dynamic content
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.RenderDelay(500);
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;

string url = "https://en.wikipedia.org/wiki/Main_Page";
var page = renderer.RenderUrlAsPdf(url);
page.SaveAs("webpage.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();

// Enable JavaScript execution for dynamic content
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.RenderDelay(500);
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;

string url = "https://en.wikipedia.org/wiki/Main_Page";
var page = renderer.RenderUrlAsPdf(url);
page.SaveAs("webpage.pdf");
Imports IronPdf

Dim renderer As New ChromePdfRenderer()

' Enable JavaScript execution for dynamic content
renderer.RenderingOptions.EnableJavaScript = True
renderer.RenderingOptions.WaitFor.RenderDelay(500)
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print

Dim url As String = "https://en.wikipedia.org/wiki/Main_Page"
Dim page = renderer.RenderUrlAsPdf(url)
page.SaveAs("webpage.pdf")
$vbLabelText   $csharpLabel

URL convertida para PDF

HtmlToPdfDocument C#: Alternativa DinkToPdf para conversão de HTML para PDF: Imagem 6 - PDF renderizado a partir do conteúdo da URL

Essa abordagem é ideal para gerar faturas a partir de formulários da web ou arquivar painéis de controle em tempo real. O mecanismo de renderização processa todas as fontes da web, estilos CSS e JavaScript antes de gerar o arquivo PDF. A API WaitFor oferece controle preciso sobre quando o mecanismo Chromium considera uma página pronta para captura — você pode aguardar elementos DOM específicos, estados de inatividade da rede ou condições personalizadas de JavaScript , o que é essencial para a geração de PDFs em larga escala a partir de conteúdo dinâmico.

Para páginas autenticadas, você pode passar cabeçalhos HTTP, cookies ou dados de formulário POST diretamente para o renderizador. O link para a documentação em PDF aborda esses cenários avançados em detalhes.

Como configurar as opções de saída em PDF?

Ambas as bibliotecas oferecem opções de configuração, mas o IronPDF proporciona um controle mais intuitivo sobre o PDF gerado através do seu objeto RenderingOptions:

using IronPdf;

var renderer = new ChromePdfRenderer();

renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
renderer.RenderingOptions.TextHeader.CenterText = "Company Report";
renderer.RenderingOptions.TextFooter.CenterText = "{page} of {total-pages}";

var document = renderer.RenderHtmlAsPdf("<h1 style='text-align: center;'>Quarterly Report</h1>");
document.SaveAs("configured-report.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();

renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
renderer.RenderingOptions.TextHeader.CenterText = "Company Report";
renderer.RenderingOptions.TextFooter.CenterText = "{page} of {total-pages}";

var document = renderer.RenderHtmlAsPdf("<h1 style='text-align: center;'>Quarterly Report</h1>");
document.SaveAs("configured-report.pdf");
Imports IronPdf

Dim renderer = New ChromePdfRenderer()

renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4
renderer.RenderingOptions.MarginTop = 25
renderer.RenderingOptions.MarginBottom = 25
renderer.RenderingOptions.PrintHtmlBackgrounds = True
renderer.RenderingOptions.TextHeader.CenterText = "Company Report"
renderer.RenderingOptions.TextFooter.CenterText = "{page} of {total-pages}"

Dim document = renderer.RenderHtmlAsPdf("<h1 style='text-align: center;'>Quarterly Report</h1>")
document.SaveAs("configured-report.pdf")
$vbLabelText   $csharpLabel

Gerar PDF com configurações personalizadas

HtmlToPdfDocument C#: Alternativa ao DinkToPdf para conversão de HTML para PDF: Imagem 7 - Saída de PDF personalizada

Essas opções controlam o tamanho do papel, as margens, os cabeçalhos e os rodapés. O IronPDF também suporta cabeçalhos e rodapés HTML personalizados que aceitam HTML e CSS completos, permitindo que você insira logotipos, contadores de páginas dinâmicos e texto estilizado nas áreas de cabeçalho e rodapé. Para garantir a segurança dos documentos, a API de criptografia e senhas de PDF permite restringir a impressão, cópia ou edição após a geração.

Como mesclar vários PDFs?

Quando você precisa combinar vários documentos HTML em um único PDF, o IronPDF oferece um método de mesclagem estática:

using IronPdf;

var renderer = new ChromePdfRenderer();

var pdf1 = renderer.RenderHtmlAsPdf("<h1>Section One</h1>");
var pdf2 = renderer.RenderHtmlAsPdf("<h1>Section Two</h1>");

var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged-report.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();

var pdf1 = renderer.RenderHtmlAsPdf("<h1>Section One</h1>");
var pdf2 = renderer.RenderHtmlAsPdf("<h1>Section Two</h1>");

var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged-report.pdf");
Imports IronPdf

Dim renderer As New ChromePdfRenderer()

Dim pdf1 = renderer.RenderHtmlAsPdf("<h1>Section One</h1>")
Dim pdf2 = renderer.RenderHtmlAsPdf("<h1>Section Two</h1>")

Dim merged = PdfDocument.Merge(pdf1, pdf2)
merged.SaveAs("merged-report.pdf")
$vbLabelText   $csharpLabel

A documentação sobre mesclagem de PDFs mostra como reunir documentos grandes a partir de vários arquivos de origem, aplicar cabeçalhos e rodapés consistentes em todas as seções e reordenar páginas programaticamente. Isso é útil para fluxos de trabalho de geração de relatórios que criam seções individuais de forma independente antes de combiná-las em um único documento final.

Por que você deveria trocar o DinkToPdf pelo IronPDF?

Para desenvolvedores que utilizam HtmlToPdfDocument em aplicações .NET Core , o IronPDF oferece vantagens importantes que resolvem diretamente cada problema:

  • Renderização moderna: o mecanismo Chromium lida com a estrutura HTML, CSS moderno e execução de JavaScript para criar documentos PDF com qualidade de imagem perfeita.
  • Configuração Zero: Sem binários wkhtmltopdf ou configuração de ferramenta de linha de comando -- basta adicionar o pacote NuGet
  • Melhor desempenho: conversão de PDF mais rápida sem as limitações de threading singleton; O renderizador é seguro para uso em múltiplas threads e pode executar conversões simultâneas.
  • Suporte completo para a Web: Converta HTML com fontes da web, animações CSS, gráficos SVG e modelos HTML complexos.
  • Implantação empresarial: Implante no Serviço de Aplicativos do Azure , AWS Lambda, contêineres Docker e servidores web tradicionais sem configuração adicional.
  • Recursos avançados de PDF: formulários PDF preenchíveis , assinaturas digitais , conformidade com PDF/A e marcas d'água.
  • Manutenção ativa: o IronPDF lança atualizações regulares acompanhando as versões mais recentes do Chromium e dos runtimes do .NET.

De acordo com o cronograma de lançamentos do projeto Chromium , o mecanismo recebe atualizações de segurança a cada quatro semanas. O IronPDF inclui versões atualizadas do Chromium em cada versão principal, garantindo que a geração de seus PDFs permaneça atualizada sem qualquer gerenciamento manual de binários. Isso é importante para equipes preocupadas com a segurança, que precisam demonstrar que suas dependências estão corrigidas contra vulnerabilidades conhecidas.

A biblioteca de documentação do IronPDF abrange mais de 50 guias práticos para tarefas que vão desde a divisão de PDFs até a extração de texto e a adição de anotações .

Quais são os seus próximos passos?

Embora a classe HtmlToPdfDocument do DinkToPdf forneça conversão básica de HTML para PDF, seu mecanismo WebKit desatualizado e dependências externas criam atrito para o desenvolvimento .NET moderno. O IronPDF oferece melhores resultados com renderização baseada no Chromium, suporte completo a CSS e implantação sem dependências. Quer esteja a criar uma pequena ferramenta de relatórios internos ou um serviço de geração de documentos de alto volume, o caminho de migração é simples: instale o pacote NuGet , substitua as chamadas da API DinkToPdf pelos equivalentes ChromePdfRenderer e remova os binários wkhtmltopdf do seu pipeline de implementação.

Para seguir em frente, escolha o caminho que melhor se adapta à sua situação:

Experimente agora: Inicie um teste gratuito do IronPDF para gerar documentos PDF a partir de qualquer conteúdo HTML, sem compromisso.

Comece a usar IronPDF no seu projeto hoje mesmo com um teste gratuito.

Primeiro passo:
green arrow pointer

Perguntas frequentes

O que é o IronPDF?

IronPDF é uma biblioteca .NET para converter HTML em PDF usando um motor de renderização Chromium. Suporta CSS moderno, execução de JavaScript e fontes web, e não requer dependências nativas ou binários externos.

Por que devo escolher o IronPDF em vez do DinkToPdf?

IronPDF oferece suporte completo a CSS3, sem configuração de biblioteca nativa ou wkhtmltopdf, conversões seguras para threads e implantação direta para o Azure App Service e Docker -- atendendo a todas as principais dificuldades do DinkToPdf.

Como o IronPDF melhora o desempenho na conversão de HTML para PDF?

O IronPDF usa um motor de renderização Chromium que processa HTML, CSS e JavaScript de forma eficiente. Seu design seguro para threads elimina o gargalo de singleton que afeta o DinkToPdf sob carga concorrente.

O IronPDF é compatível com fontes web modernas?

Sim. O motor Chromium do IronPDF suporta totalmente Google Fonts, fontes do sistema, e fontes web personalizadas embutidas em HTML, produzindo rendição precisa de fontes no PDF de saída.

O IronPDF consegue executar JavaScript durante a conversão de PDF?

Sim. Defina EnableJavaScript como verdadeiro em RenderingOptions e use a API WaitFor para controlar quando o Chromium considera a página pronta, garantindo que o conteúdo dinâmico seja totalmente renderizado antes da captura.

Quais são as dependências necessárias para usar o IronPDF?

O IronPDF não requer dependências nativas. Instale-o via NuGet e o pacote gerencia o motor Chromium internamente. Não são necessários binários wkhtmltopdf ou ferramentas de linha de comando.

O IronPDF oferece suporte completo a CSS?

Sim. O IronPDF suporta CSS3, Flexbox, CSS Grid, propriedades personalizadas e media queries, permitindo rendição precisa de documentos HTML complexos.

Como o IronPDF lida com bibliotecas ou ferramentas externas?

O IronPDF não depende de bibliotecas externas ou ferramentas de linha de comando. Tudo está incluído no pacote NuGet, simplificando a implantação e eliminando problemas de compatibilidade.

Qual mecanismo de renderização o IronPDF usa?

IronPDF usa um mecanismo de renderização baseado no Chromium, o mesmo motor que alimenta o Google Chrome, proporcionando conversões precisas e de alto desempenho de HTML para PDF.

O IronPDF é adequado para desenvolvedores .NET que buscam uma solução de conversão de HTML para PDF?

Sim. IronPDF é compatível com .NET 8, .NET 9, .NET 10, .NET Standard 2.0 e .NET Framework 4.6.2 ou superior, tornando-o adequado para aplicativos .NET modernos e legados.

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