Iron Suite for .NET

10 bibliotecas .NET. Um conjunto completo de documentos.

COMPARAÇÃO

DinkToPdf vs IronPDF: Guia de Comparação Técnica

Curtis Chau
Curtis Chau
Updated: 8 de maio de 2026

Quando os desenvolvedores .NET avaliam soluções de HTML para PDF, oHiQPdfdestaca-se como uma biblioteca comercial utilizando renderização baseada em WebKit. Embora oHiQPdfsuporte HTML5/CSS3, seu motor WebKit mais antigo pode ter dificuldades com frameworks JavaScript modernos, e a versão gratuita é limitada a 3 páginas com marcas d'água notáveis. Em contraste, o IronPDF usa um motor de renderização moderno baseado em Chromium, oferecendo suporte completo a JavaScript e um pacote unificado em todas as plataformas .NET.

Esta comparação avalia ambas as bibliotecas em aspectos técnicos relevantes para ajudar desenvolvedores e arquitetos profissionais a tomarem decisões informadas sobre suas necessidades de PDF for .NET.

Visão Geral do HiQPdf

HiQPdf é uma biblioteca comercial de HTML para PDF que emprega um motor de renderização baseado no WebKit. A principal classe conversora da biblioteca, HtmlToPdf, inclui métodos como ConvertHtmlToMemory() e ConvertUrlToMemory() que retornam dados brutos byte[]. A configuração é gerenciada através de cadeias de propriedades no objeto Document, como Document.Header, Document.Footer e Document.PageSize.

A versão gratuita doHiQPdfimpõe uma limitação significativa - máximo de 3 páginas nos saídas de PDF com uma marca d'água intrusiva, tornando testes completos em documentos maiores desafiadores durante a avaliação. A biblioteca oferece múltiplas variantes de pacotes NuGet para diferentes plataformas (HiQPdf, HiQPdf.Free, HiQPdf.NetCore, HiQPdf.NetCore.x64, HiQPdf.Client), e a documentação não especifica claramente suporte ao .NET Core ou .NET 5+.

Para cabeçalhos e rodapés,HiQPdfusa objetos HtmlToPdfVariableElement adicionados a coleções Document.Header e Document.Footer. Os espaços reservados para números de página usam a sintaxe {CrtPage} para a página atual e {PageCount} para o total de páginas.

Visão geral do IronPDF

IronPDF é uma biblioteca de PDF for .NET que utiliza um motor de renderização moderno de Chromium, oferecendo suporte completo para frameworks HTML5, CSS3 e JavaScript, incluindo React, Angular e Vue. A principal classe de renderização da biblioteca, ChromePdfRenderer, inclui métodos como RenderHtmlAsPdf() e RenderUrlAsPdf() que retornam objetos PdfDocument.

IronPDF oferece um único pacote NuGet unificado para todas as plataformas com compatibilidade documentada para .NET 6, 7, 8, 9 e 10. A configuração utiliza as propriedades RenderingOptions diretamente no renderizador. Cabeçalhos e rodapés podem usar TextHeaderFooter com propriedades como CenterText e FontSize. Os espaços reservados para números de página usam a sintaxe {page} e {total-pages}.

Comparação de Motor de Renderização e Compatibilidade

A diferença fundamental entre essas bibliotecas reside em seus motores de renderização e suporte a plataformas.

AspectoHiQPdfIronPDF
Motor de renderizaçãoBaseado em WebKit (versão mais antiga)Cromo moderno
Camada GratuitaLimite de 3 páginas + marca d'águaTeste completo de 30 dias
Suporte Moderno a JSLimitadoCompleto (React, Angular, Vue)
Suporte a .NET Core/5+São necessários vários pacotes.pacote único e unificado
Design de APICadeias de propriedade complexasAPI limpa e fluente
Suporte a CSS3ParcialApoiado
DocumentaçãoFragmentadoCompleto
Pacote NuGetMúltiplas variantesPacote único

O motor baseado em WebKit doHiQPdfé uma tecnologia mais antiga que pode enfrentar desafios com frameworks JavaScript modernos e estruturas de HTML complexas. O motor Chromium do IronPDF oferece a mesma qualidade de renderização do Google Chrome, garantindo uma conversão precisa de conteúdo web moderno.

Comparação de código: operações comuns em PDF

Conversão de HTML e URL para PDF

As operações mais fundamentais demonstram as diferenças de design da API.

HiQPdf:

// NuGet: Install-Package HiQPdf
using HiQPdf;
using System;

class Program
{
    static void Main()
    {
        HtmlToPdf htmlToPdfConverter = new HtmlToPdf();
        byte[] pdfBuffer = htmlToPdfConverter.ConvertUrlToMemory("https://example.com");
        System.IO.File.WriteAllBytes("output.pdf", pdfBuffer);
        
        // Convert HTML string
        string html = "<h1>Hello World</h1><p>This is a PDF document.</p>";
        byte[] pdfFromHtml = htmlToPdfConverter.ConvertHtmlToMemory(html, "");
        System.IO.File.WriteAllBytes("fromhtml.pdf", pdfFromHtml);
    }
}

IronPDF:

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf("https://example.com");
        pdf.SaveAs("output.pdf");
        
        // Convert HTML string
        string html = "<h1>Hello World</h1><p>This is a PDF document.</p>";
        var pdfFromHtml = renderer.RenderHtmlAsPdf(html);
        pdfFromHtml.SaveAs("fromhtml.pdf");
    }
}

HiQPdf cria um conversor HtmlToPdf, chama ConvertUrlToMemory() ou ConvertHtmlToMemory() para obter dados brutos byte[], em seguida escreve manualmente no disco usando File.WriteAllBytes(). O método ConvertHtmlToMemory() requer um segundo parâmetro para a URL base (string vazia se não for necessário).

IronPDF cria um ChromePdfRenderer, chama RenderUrlAsPdf() ou RenderHtmlAsPdf() para obter um objeto PdfDocument, em seguida salva diretamente com SaveAs(). A API é mais concisa com manipulação de documentos orientada a objetos.

Para opções avançadas de renderização HTML, explore o guia de conversão de HTML para PDF .

Unir vários PDFs

A fusão de PDFs demonstra as diferentes abordagens para manipulação de documentos.

HiQPdf:

// NuGet: Install-Package HiQPdf
using HiQPdf;
using System;

class Program
{
    static void Main()
    {
        // Create first PDF
        HtmlToPdf converter1 = new HtmlToPdf();
        byte[] pdf1 = converter1.ConvertHtmlToMemory("<h1>First Document</h1>", "");
        System.IO.File.WriteAllBytes("doc1.pdf", pdf1);
        
        // Create second PDF
        HtmlToPdf converter2 = new HtmlToPdf();
        byte[] pdf2 = converter2.ConvertHtmlToMemory("<h1>Second Document</h1>", "");
        System.IO.File.WriteAllBytes("doc2.pdf", pdf2);
        
        // Merge PDFs
        PdfDocument document1 = PdfDocument.FromFile("doc1.pdf");
        PdfDocument document2 = PdfDocument.FromFile("doc2.pdf");
        document1.AddDocument(document2);
        document1.WriteToFile("merged.pdf");
    }
}

IronPDF:

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        
        // Create first PDF
        var pdf1 = renderer.RenderHtmlAsPdf("<h1>First Document</h1>");
        pdf1.SaveAs("doc1.pdf");
        
        // Create second PDF
        var pdf2 = renderer.RenderHtmlAsPdf("<h1>Second Document</h1>");
        pdf2.SaveAs("doc2.pdf");
        
        // Merge PDFs
        var merged = PdfDocument.Merge(pdf1, pdf2);
        merged.SaveAs("merged.pdf");
    }
}

HiQPdf requer salvar PDFs no disco primeiro, carregá-los com PdfDocument.FromFile(), depois usar AddDocument() para anexar um ao outro, e finalmente WriteToFile() para salvar o resultado. Isso modifica o primeiro documento no local.

IronPDF pode mesclar documentos diretamente na memória usando o método estático PdfDocument.Merge(), que retorna um novo documento mesclado. Essa abordagem é mais limpa e não requer I/O de arquivo intermediário.

Cabeçalhos e rodapés com números de página

A configuração de cabeçalhos e rodapés mostra as diferentes abordagens para conteúdo dinâmico.

HiQPdf:

// NuGet: Install-Package HiQPdf
using HiQPdf;
using System;

class Program
{
    static void Main()
    {
        HtmlToPdf htmlToPdfConverter = new HtmlToPdf();
        
        // Add header
        htmlToPdfConverter.Document.Header.Height = 50;
        HtmlToPdfVariableElement headerHtml = new HtmlToPdfVariableElement("<div style='text-align:center'>Page Header</div>", "");
        htmlToPdfConverter.Document.Header.Add(headerHtml);
        
        // Add footer with page number
        htmlToPdfConverter.Document.Footer.Height = 50;
        HtmlToPdfVariableElement footerHtml = new HtmlToPdfVariableElement("<div style='text-align:center'>Page {CrtPage} of {PageCount}</div>", "");
        htmlToPdfConverter.Document.Footer.Add(footerHtml);
        
        byte[] pdfBuffer = htmlToPdfConverter.ConvertHtmlToMemory("<h1>Document with Headers and Footers</h1>", "");
        System.IO.File.WriteAllBytes("header-footer.pdf", pdfBuffer);
    }
}

IronPDF:

// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        
        // Configure header and footer
        renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
        {
            CenterText = "Page Header",
            FontSize = 12
        };
        
        renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
        {
            CenterText = "Page {page} of {total-pages}",
            FontSize = 10
        };
        
        var pdf = renderer.RenderHtmlAsPdf("<h1>Document with Headers and Footers</h1>");
        pdf.SaveAs("header-footer.pdf");
    }
}

HiQPdf configura cabeçalhos e rodapés através das propriedades Document.Header e Document.Footer, definindo Height e adicionando objetos HtmlToPdfVariableElement. Os espaços reservados para números de página usam {CrtPage} para a página atual e {PageCount} para o total de páginas.

IronPDF usa RenderingOptions.TextHeader e RenderingOptions.TextFooter com objetos TextHeaderFooter. Propriedades como CenterText e FontSize oferecem configuração direta. Os espaços reservados para números de página usam {page} e {total-pages}.

Saiba mais sobre a configuração de cabeçalhos e rodapés nos tutoriais do IronPDF.

Referência de Mapeamento de API

Para desenvolvedores avaliando a migração doHiQPdfou comparando capacidades, esse mapeamento mostra operações equivalentes:

Mapeamento da Classe Principal

ClasseHiQPdfClasse IronPDF
HtmlToPdfChromePdfRenderer
PdfDocumentPdfDocument
PdfPagepdf.Pages[i]
PdfDocumentControlRenderingOptions
PdfHeader / PdfDocumentHeaderHtmlHeaderFooter
PdfFooter / PdfDocumentFooterHtmlHeaderFooter
HtmlToPdfVariableElementHtmlHeaderFooter.HtmlFragment

Mapeamento do método de conversão

MétodoHiQPdfMétodo IronPDF
ConvertHtmlToMemory(html, baseUrl)RenderHtmlAsPdf(html, baseUrl)
ConvertUrlToMemory(url)RenderUrlAsPdf(url)
ConvertHtmlToFile(html, baseUrl, path)RenderHtmlAsPdf(html).SaveAs(path)
ConvertUrlToFile(url, path)RenderUrlAsPdf(url).SaveAs(path)

Mapeamento de Propriedades

PropriedadeHiQPdfPropriedade IronPDF
BrowserWidthRenderingOptions.ViewPortWidth
BrowserHeightRenderingOptions.ViewPortHeight
Document.PageSizeRenderingOptions.PaperSize
Document.PageOrientationRenderingOptions.PaperOrientation
Document.Margins.TopRenderingOptions.MarginTop
Document.Margins.BottomRenderingOptions.MarginBottom
Document.Margins.LeftRenderingOptions.MarginLeft
Document.Margins.RightRenderingOptions.MarginRight
Document.Header.HeightHtmlHeader.MaxHeight
Document.Footer.HeightHtmlFooter.MaxHeight
SerialNumberIronPdf.License.LicenseKey

Mapeamento de Sintaxe de Placeholder

Os placeholders de cabeçalhos e rodapés diferem entre as bibliotecas:

HiQPdfIronPDF
{CrtPage}{page}
{PageCount}{total-pages}
{CrtPageUri}{url}
{CrtPageTitle}{html-title}

Resumo da comparação de recursos

RecursoHiQPdfIronPDF
Renderização ChromiumNão (WebKit)Sim
JavaScript Moderno (React, Angular, Vue)LimitadoSim
Suporte completo ao CSS3LimitadoSim
Suporte .NET 6/7/8/9/10SimSim
Pacote único do NuGetNão (Múltiplas variantes)Sim
Teste completo gratuitoNão (Limite de 3 páginas + marca d'água)Sim (30 dias)
HTML para PDFSimSim
URL para PDFSimSim
Fusão de PDFsSim (AddDocument)Sim (Merge)
Cabeçalhos/RodapésSim (HtmlToPdfVariableElement)Sim (TextHeaderFooter)

Quando Equipes Consideram Mudar doHiQPdfpara o IronPDF

As equipes de desenvolvimento avaliam a transição doHiQPdfpara o IronPDF por várias razões:

Versão Gratuita Restritiva: A versão gratuita doHiQPdfimpõe um limite de 3 páginas com marcas d'água intrusivas, tornando-o essencialmente inutilizável para produção e difícil de avaliar completamente. O IronPDF oferece um teste completo de 30 dias sem limites de páginas.

Mecanismo WebKit Antigo: O mecanismo de renderização baseado em WebKit doHiQPdftem dificuldades com frameworks JavaScript modernos como React, Angular e Vue. O mecanismo Chromium do IronPDF fornece a mesma qualidade de renderização que o Google Chrome, garantindo conversão precisa de conteúdo web moderno e complexo.

Suporte pouco claro ao .NET Core: A documentação doHiQPdfnão esclarece explicitamente o suporte ao .NET Core ou .NET 5+, e a biblioteca requer pacotes NuGet separados para diferentes plataformas. O IronPDF fornece um único pacote unificado com suporte documentado para .NET 6, 7, 8, 9 e 10.

Pacotes NuGet Fragmentados: OHiQPdfrequer diferentes variantes de pacotes (HiQPdf, HiQPdf.Free, HiQPdf.NetCore, HiQPdf.NetCore.x64, HiQPdf.Client) para diferentes cenários. O IronPDF usa um único pacote para todas as plataformas.

**Design de API Complexa:**HiQPdfrequer configuração detalhada através de cadeias de propriedades como Document.Header.Height e Document.Footer.Add(). A API fluente do IronPDF com propriedades RenderingOptions proporciona uma configuração mais limpa.

**Sintaxe de Espaço Reservado Diferente:**HiQPdfusa espaços reservados {CrtPage} e {PageCount}, enquanto IronPDF usa {page} e {total-pages}. A migração requer a atualização de todos os modelos de cabeçalho/rodapé.

Pontos fortes e considerações

Pontos Fortes do HiQPdf

  • Suporte ao HTML5/CSS3: Oferece capacidades de renderização HTML5 e CSS3
  • Biblioteca Estabelecida: Biblioteca comercial com base de usuários existente

Considerações sobre o HiQPdf

  • Mecanismo WebKit: Tecnologia de renderização antiga com suporte limitado ao JavaScript moderno
  • Limite de 3 Páginas: Versão gratuita significativamente restrita
  • Pacotes Fragmentados: Múltiplos pacotes NuGet para diferentes plataformas
  • Suporte ao .NET Pouco Claro: Documentação não esclarece explicitamente a compatibilidade com .NET moderno
  • Cadeias de Propriedades Complexas: Configuração verbosa por meio de propriedades aninhadas
  • Unidades Baseadas em Pontos: Usa pontos (72 por polegada) para medições

Pontos fortes do IronPDF

  • Mecanismo Chromium: Renderização moderna com suporte completo ao JavaScript
  • Pacote Unificado: Pacote único do NuGet para todas as plataformas
  • Teste Completo: Teste completo de 30 dias com todos os recursos
  • Suporte ao .NET Moderno: Documentado for .NET 6, 7, 8, 9, 10
  • API Limpa: Configuração fluente RenderingOptions
  • Recursos abrangentes: tutoriais e documentação extensivos

Considerações sobre o IronPDF

  • Licença Comercial: Necessária para uso em produção.
  • Unidades em Milímetros: Usa milímetros em vez de pontos para margens

Conclusão

HiQPdf e IronPDF representam diferentes gerações de tecnologia de conversão de HTML para PDF em aplicações .NET. O motor baseado em WebKit doHiQPdfoferece suporte básico a HTML5/CSS3, mas tem dificuldades com frameworks JavaScript modernos e oferece compatibilidade pouco clara com .NET Core e vários pacotes fragmentados. O limite de 3 páginas na versão gratuita restringe significativamente a avaliação.

O IronPDF oferece uma alternativa moderna baseada em Chromium com suporte completo ao JavaScript para aplicações React, Angular e Vue. O pacote único e unificado do NuGet com suporte documentado para .NET 6/7/8/9/10 simplifica a implantação, e o design de API limpa reduz a complexidade de configuração.

À medida que as organizações planejam para o .NET 10, C# 14, e desenvolvimento de aplicações até 2026, a escolha entre renderização WebKit antiga com pacotes fragmentados e renderização Chromium moderna com suporte unificado impacta significativamente tanto a velocidade de desenvolvimento quanto a qualidade do resultado final. Equipes que precisam de suporte a frameworks JavaScript modernos, clara compatibilidade com .NET ou gerenciamento de pacotes simplificado acharão que IronPDF atende efetivamente a esses requisitos.

Comece a avaliar o IronPDF com um teste gratuito e explore a documentação completa para verificar se ele atende às suas necessidades específicas.

Observe: HiQPdf é uma marca registrada de seu respectivo proprietário. Este site não é afiliado, endossado ou patrocinado porHiQPdfSoftware. Todos os nomes de produtos, logotipos e marcas são propriedade de seus respectivos proprietários. As comparações são apenas para fins informativos e refletem informações disponíveis publicamente no momento da redação.