IRONSOFTWAREHOME
VÍDEOS

Como converter Razor Pages em PDFs em um aplicativo Web ASP.NET Core

Curtis Chau
Curtis Chau
Updated: 19 de julho de 2026

A migração do ABCpdf for .NET para o IronPDF é uma atualização estratégica para equipes de desenvolvimento que buscam licenciamento simplificado, documentação moderna e suporte nativo multiplataforma. Este guia completo oferece um caminho de migração passo a passo, incluindo mapeamentos de API e exemplos de conversão de código a partir de cenários reais.

Quer esteja trabalhando com o .NET Framework 4.6.2 ou mirando o .NET 9, este guia de migração para ABCpdf garante uma transição fácil para o motor de renderização baseado no Chrome do IronPDF.

Por que considerar uma migração para o ABCpdf?

ABCpdf da WebSupergoo (linha atual: v13.4.4, lançado em 9 de abril de 2026) tem sido uma biblioteca PDF .NET capaz por anos. No entanto, vários fatores tornam o IronPDF uma alternativa atraente para equipes de desenvolvimento modernas.

Complexidade do licenciamento

ABCpdf usa um modelo de licenciamento em camadas que pode exigir esforço para navegar. A licença de Computador Único Standard é $329 (apenas 32 bits); Professional é $479; Redistribuição Profissional é $4.790; a Licença de Grupo chega a $33.530. Licenças são perpétuas, e chaves v13 também cobrem v8–v12. Muitos desenvolvedores relatam o labirinto de camadas como um fardo administrativo significativo ao orçar para projetos.

Arquitetura Windows-First (até v13)

ABCpdf foi exclusivamente para Windows durante a maior parte de sua história. O suporte para Linux foi adicionado na v13 através dos pacotes de runtime ABCpdf.ABCChrome117.Linux e ABCpdf.ABCChrome123.Linux. macOS não é suportado, e alguns recursos específicos do Windows (XPS, WPF) permanecem indisponíveis no Linux.

Estilo de documentação

A documentação do ABCpdf, embora completa, segue um estilo mais antigo que pode parecer ultrapassado em comparação com os padrões modernos de documentação de API. Usuários iniciantes frequentemente têm dificuldade em encontrar os exemplos exatos de que precisam, principalmente ao trabalhar com versões mais recentes do .NET .

Sobrecarga de configuração do motor

ABCpdf requer seleção explícita do motor — EngineType.Chrome123 (padrão na v13), Chrome117, Chrome86, Chrome65, Gecko, WebKit ou MSHtml — e gerenciamento manual de recursos com chamadas doc.Clear(). Isso adiciona código repetitivo a cada operação de PDF, algo que os desenvolvedores modernos preferem evitar.

##IronPDF vs ABCpdf: Comparação de Recursos

A tabela comparativa a seguir destaca as principais diferenças entre as duas bibliotecas PDF do .NET :

RecursoABCpdf for .NETIronPDF
Motor de renderizaçãoABCChrome (Chrome123/117/86/65), Gecko, WebKit, MSHtmlChromium completo (CSS3, JavaScript)
MultiplataformaWindows-first; Linux adicionado no v13 (sem macOS)Windows nativo, Linux, macOS, Docker
Modelo de licenciamentoPadrão $329 / Pro $479 / Pro Redistribuição $4.790 / Grupo $33.530, perpétuoPreços simples e transparentes
Suporte .NET.NET Framework 4.0+, .NET Core 3.0+, .NET 5+Framework 4.6.2 a .NET 9
Gestão de RecursosManual doc.Clear() necessárioIDisposable com declarações using
Configuração de licençaFrequentemente utiliza o registroChave de licença simples baseada em código
DocumentaçãoEstilo antiquadoDocumentação moderna com diversos exemplos.

Antes de iniciar sua migração

Pré-requisitos

Certifique-se de que seu ambiente de desenvolvimento atenda a estes requisitos:

  • .NET Framework 4.6.2 ou superior ou .NET Core 3.1 ou superior / .NET 5-9
  • Visual Studio 2019 ou superior ou JetBrains Rider
  • Acesso ao Gerenciador de Pacotes NuGet
  • Chave de licença do IronPDF (versão de avaliação gratuita disponível)

Encontre todas as referências ABCpdf

Execute estes comandos no diretório da sua solução para localizar todos os arquivos usando o ABCpdf for .NET:

grep -r "using WebSupergoo" --include="*.cs" .
grep -r "ABCpdf" --include="*.csproj" .
SHELL

Esta auditoria identifica todos os arquivos que precisam ser modificados, garantindo uma cobertura completa da migração.

Mudanças significativas a serem previstas

Compreender as diferenças arquitetônicas entre o ABCpdf for .NET e o IronPDF evita surpresas durante a migração:

CategoriaComportamento ABCpdfComportamento do IronPDFAção contra a migração
Modelo de Objetoclasse Doc é centralChromePdfRenderer + PdfDocumentSeparar a renderização do documento
Limpeza de recursosManual doc.Clear()Padrão descartávelUse declarações using
Seleção do motordoc.HtmlOptions.Engine = EngineType.Chrome123 (ou MSHtml)Chromium embutidoRemover configuração do motor
Indexação de páginasBaseado em 1 (doc.Page = 1)Baseado em 0 (pdf.Pages[0])Ajustar referências de índice
CoordenadasBaseado em pontos com doc.Rectmargens baseadas em CSSUse CSS ou opções de renderização.

Início Rápido: Migração em 5 Minutos

Passo 1: Atualizar pacotes NuGet

# Remove ABCpdf
dotnet remove package ABCpdf

# Install IronPDF
dotnet add package IronPdf
SHELL

Passo 2: Defina sua chave de licença

Adicione isto na inicialização da aplicação, antes de qualquer operação do IronPDF:

// Add at application startup (Program.cs or Startup.cs)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

Etapa 3: Localizar e substituir globalmente

Atualize todas as referências de namespace em toda a sua base de código:

EncontrarSubstitua por
using WebSupergoo.ABCpdf13;using IronPdf;
using WebSupergoo.ABCpdf13.Objects;using IronPdf;
using WebSupergoo.ABCpdf12;using IronPdf;
using WebSupergoo.ABCpdf11;using IronPdf;

Referência completa da API

Métodos de Criação de Documentos

A tabela a seguir mapeia os métodos do ABCpdf for .NET aos seus equivalentes no IronPDF:

Método ABCpdfMétodo IronPDF
new Doc()new ChromePdfRenderer()
doc.AddImageUrl(url)renderer.RenderUrlAsPdf(url)
doc.AddImageHtml(html)renderer.RenderHtmlAsPdf(html)
doc.AddImageFile(path)renderer.RenderHtmlFileAsPdf(path)
doc.Read(path)PdfDocument.FromFile(path)
doc.Save(path)pdf.SaveAs(path)
doc.GetData()pdf.BinaryData
doc.Clear()Use a declaração using

Métodos de manipulação de páginas

Método ABCpdfMétodo IronPDF
doc.PageCountpdf.PageCount
doc.Page = npdf.Pages[n-1]
doc.Delete(pageId)pdf.RemovePages(index)
doc.Append(otherDoc)PdfDocument.Merge(pdf1, pdf2)
doc.Rect.Inset(x, y)RenderingOptions.MarginTop/Bottom/Left/Right

Métodos de segurança e criptografia

Método ABCpdfMétodo IronPDF
doc.Encryption.Passwordpdf.SecuritySettings.OwnerPassword
doc.Encryption.CanPrintpdf.SecuritySettings.AllowUserPrinting
doc.Encryption.CanCopypdf.SecuritySettings.AllowUserCopyPasteContent
doc.SetInfo("Title", value)pdf.MetaData.Title

Exemplos de migração de código

Exemplo 1: HTML para PDF a partir de URL

Este exemplo demonstra a conversão de uma página da web para PDF, uma das tarefas mais comuns de geração de PDFs.

Implementação do ABCpdf for .NET :

// NuGet: Install-Package ABCpdf
using System;
using WebSupergoo.ABCpdf13;
using WebSupergoo.ABCpdf13.Objects;

class Program
{
    static void Main()
    {
        Doc doc = new Doc();
        doc.HtmlOptions.Engine = EngineType.Chrome123;
        doc.AddImageUrl("https://www.example.com");
        doc.Save("output.pdf");
        doc.Clear();
    }
}

Implementação do IronPDF:

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf("https://www.example.com");
        pdf.SaveAs("output.pdf");
    }
}

A abordagem do IronPDF elimina a necessidade de configuração explícita do mecanismo e limpeza manual, reduzindo a complexidade do código e mantendo todos os recursos de renderização do Chrome.

Exemplo 2: String HTML para PDF

Converter strings HTML em PDF é essencial para gerar relatórios e documentos dinâmicos.

Implementação do ABCpdf for .NET :

// NuGet: Install-Package ABCpdf
using System;
using WebSupergoo.ABCpdf13;
using WebSupergoo.ABCpdf13.Objects;

class Program
{
    static void Main()
    {
        string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
        Doc doc = new Doc();
        doc.HtmlOptions.Engine = EngineType.Chrome123;
        doc.AddImageHtml(html);
        doc.Save("output.pdf");
        doc.Clear();
    }
}

Implementação do IronPDF:

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

class Program
{
    static void Main()
    {
        string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");
    }
}

A versão IronPDF requer menos linhas de código e usa a renderização do Chrome por padrão, garantindo uma saída consistente em todas as plataformas.

Exemplo 3: Mesclar vários PDFs

A combinação de vários documentos PDF é um requisito frequente em fluxos de trabalho de processamento de documentos.

Implementação do ABCpdf for .NET :

// NuGet: Install-Package ABCpdf
using System;
using WebSupergoo.ABCpdf13;
using WebSupergoo.ABCpdf13.Objects;

class Program
{
    static void Main()
    {
        Doc doc1 = new Doc();
        doc1.Read("document1.pdf");
        
        Doc doc2 = new Doc();
        doc2.Read("document2.pdf");
        
        doc1.Append(doc2);
        doc1.Save("merged.pdf");
        
        doc1.Clear();
        doc2.Clear();
    }
}

Implementação do IronPDF:

// NuGet: Install-Package IronPdf
using System;
using System.Collections.Generic;
using IronPdf;

class Program
{
    static void Main()
    {
        var pdf1 = PdfDocument.FromFile("document1.pdf");
        var pdf2 = PdfDocument.FromFile("document2.pdf");
        
        var merged = PdfDocument.Merge(pdf1, pdf2);
        merged.SaveAs("merged.pdf");
    }
}

O método estático Merge do IronPDF fornece uma API mais limpa que aceita múltiplos documentos, eliminando a necessidade de rastrear e limpar instâncias individuais de Doc.

Exemplo 4: Padrão de migração completo com margens

Este exemplo mostra uma migração completa de antes e depois para a geração de PDFs com margens personalizadas.

Antes (ABCpdf for .NET):

using WebSupergoo.ABCpdf13;
using WebSupergoo.ABCpdf13.Objects;

public byte[] GeneratePdf(string html)
{
    Doc doc = new Doc();
    doc.HtmlOptions.Engine = EngineType.Chrome123;
    doc.Rect.Inset(20, 20);
    doc.AddImageHtml(html);
    byte[] data = doc.GetData();
    doc.Clear();  // Manual cleanup required
    return data;
}

Após (IronPDF):

using IronPdf;

public byte[] GeneratePdf(string html)
{
    var renderer = new ChromePdfRenderer();
    renderer.RenderingOptions.MarginTop = 20;
    renderer.RenderingOptions.MarginBottom = 20;
    renderer.RenderingOptions.MarginLeft = 20;
    renderer.RenderingOptions.MarginRight = 20;

    using var pdf = renderer.RenderHtmlAsPdf(html);
    return pdf.BinaryData;  // Automatic cleanup with 'using'
}

Cenários de Migração Avançados

Aplicação Web ASP.NET Core

Para equipes que constroem aplicativos web com .NET 6+, aqui está o padrão recomendado:

Padrão ABCpdf:

[HttpPost]
public IActionResult GeneratePdf([FromBody] ReportRequest request)
{
    Doc doc = new Doc();
    doc.HtmlOptions.Engine = EngineType.Chrome123;
    doc.AddImageHtml(request.Html);
    byte[] pdfBytes = doc.GetData();
    doc.Clear();

    return File(pdfBytes, "application/pdf", "report.pdf");
}

Padrão IronPDF:

[HttpPost]
public IActionResult GeneratePdf([FromBody] ReportRequest request)
{
    var renderer = new ChromePdfRenderer();
    using var pdf = renderer.RenderHtmlAsPdf(request.Html);

    return File(pdf.BinaryData, "application/pdf", "report.pdf");
}

Geração assíncrona de PDF

O ABCpdf não possui suporte nativo para operações assíncronas. O IronPDF oferece métodos assíncronos para melhor desempenho de aplicações web:

using IronPdf;

public async Task<byte[]> GeneratePdfAsync(string html)
{
    var renderer = new ChromePdfRenderer();
    using var pdf = await renderer.RenderHtmlAsPdfAsync(html);
    return pdf.BinaryData;
}

Configuração de Injeção de Dependência

Registre o IronPDF em aplicativos modernos .NET usando padrões C# atuais:

// Program.cs (.NET 6+)
builder.Services.AddSingleton<ChromePdfRenderer>();

// Or create a service wrapper
public interface IPdfService
{
    Task<byte[]> GeneratePdfAsync(string html);
}

public class IronPdfService : IPdfService
{
    private readonly ChromePdfRenderer _renderer;

    public IronPdfService()
    {
        _renderer = new ChromePdfRenderer();
        _renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
    }

    public async Task<byte[]> GeneratePdfAsync(string html)
    {
        using var pdf = await _renderer.RenderHtmlAsPdfAsync(html);
        return pdf.BinaryData;
    }
}

// Register: builder.Services.AddSingleton<IPdfService, IronPdfService>();

Dicas de Otimização de Desempenho

Reutilize o renderizador para operações em lote.

// Good: Single renderer instance
var renderer = new ChromePdfRenderer();
foreach (var html in htmlList)
{
    using var pdf = renderer.RenderHtmlAsPdf(html);
    pdf.SaveAs($"output_{i}.pdf");
}

// Bad: New renderer each time (slower startup)
foreach (var html in htmlList)
{
    var renderer = new ChromePdfRenderer(); // Overhead!
    using var pdf = renderer.RenderHtmlAsPdf(html);
    pdf.SaveAs($"output_{i}.pdf");
}

Comparação de uso de memória

CenárioABCpdf for .NETIronPDF
PDF único de 10 páginas~80 MB~50 MB
Lote de 100 PDFsAlto (limpeza manual)~100 MB
HTML grande (5 MB ou mais)Variável~150 MB

Solução de problemas comuns de migração

O PDF é renderizado em branco.

Sintoma: O PDF gerado apresenta páginas em branco após a migração.

Solução: O conteúdo JavaScript pode não estar totalmente carregado antes da renderização.

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.WaitFor.RenderDelay(2000); // Wait 2 seconds
// Or wait for specific element:
renderer.RenderingOptions.WaitFor.HtmlElementById("content-loaded");

Cabeçalhos/Rodapés não aparecem

Sintoma: TextHeader/TextFooter não visível na saída.

Solução: Garanta que as margens deixem espaço para o conteúdo do cabeçalho/rodapé:

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.MarginTop = 40; // mm - leave room for header
renderer.RenderingOptions.MarginBottom = 40; // mm - leave room for footer

renderer.RenderingOptions.TextHeader = new TextHeaderFooter
{
    CenterText = "Header Text",
    FontSize = 12
};

Lista de verificação para migração

Pré-migração

  • Auditar todo o uso de ABCpdf com grep -r "WebSupergoo" --include="*.cs" .
  • Documentar os requisitos atuais de saída em PDF
  • Crie casos de teste com exemplos de saída em PDF para comparação.
  • Obtenha a chave de licença do IronPDF
  • Fazer backup da base de código

Durante a migração

  • Remover o pacote NuGet ABCpdf
  • Instale o pacote NuGet do IronPDF
  • Adicionar chave de licença à inicialização do aplicativo
  • Atualizar todas as declarações using
  • Converter a instanciação Doc para ChromePdfRenderer
  • Substituir doc.Clear() por declarações using
  • Atualizar chamadas de método por mapeamento de API
  • Converter layouts baseados em coordenadas em margens CSS

Pós-migração

  • Executar todos os testes de PDF existentes
  • Comparação visual das saídas em PDF (ABCpdf vs IronPDF)
  • Teste todos os fluxos de trabalho de PDF em ambiente de teste.
  • Comparação de benchmarks de desempenho
  • Remover configuração de licença do ABCpdf
  • Atualizar dependências do pipeline CI/CD
Observe: ABCpdf é uma marca registrada de seu respectivo proprietário. Este site não é afiliado, endossado ou patrocinado pela WebSupergoo Software. 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.
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 bem estruturados e visualmente atraentes.

...
Leia mais

Artigos relacionados

Key in blue circle

Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.

Your trial license will be sent to your email address

Sem limitações. 100% desbloqueado. Sem cartão de crédito.

bullet_checkedNão é necessário cartão de crédito nem criação de conta.Sem limitações. 100% desbloqueado. Sem cartão de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Agende sua demonstração ao vivo gratuita.
Booking Badge

Aprovado por milhões de engenheiros em todo o mundo.

Logotipos dos clientes da Iron Software
Agende sua consulta sem compromisso.
Preencha o formulário abaixo ou envie um e-mail para sales@ironsoftware.com
Os seus dados serão sempre mantidos em sigilo.
Aprovado por milhões de engenheiros em todo o mundo.
Logotipos dos clientes da Iron Software
Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.
Não é necessário cartão de crédito nem criação de conta.