IRONSOFTWAREHOME
VÍDEOS

Como converter PDF para PDF A em C# usando IronPDF

Curtis Chau
Curtis Chau
Updated: 19 de julho de 2026

A migração doGrabzItpara o IronPDF transforma seu fluxo de trabalho de PDF em .NET , passando de um serviço de captura de tela baseado em nuvem com complexidade de retorno de chamada para uma biblioteca integrada que gera PDFs vetoriais verdadeiros com texto selecionável e pesquisável. Este guia fornece um caminho de migração abrangente, passo a passo, que elimina dependências de servidores externos, manipuladores de retorno de chamada e preços por captura para desenvolvedores .NET profissionais.

Por que migrar doGrabzItpara o IronPDF?

O Problema de Arquitetura do GrabzIt

OGrabzIté um serviço de captura de tela e PDF baseado na nuvem. Embora seja conveniente para integrações rápidas, possui limitações arquitetônicas fundamentais:

  1. PDFs baseados em imagens: oGrabzItcria PDFs baseados em capturas de tela onde o texto não é selecionável — essencialmente imagens encapsuladas em formato PDF. Essa é uma limitação fundamental para qualquer caso de uso que exija manipulação de texto ou acessibilidade.

  2. Processamento externo: Todo o conteúdo é enviado aos servidores daGrabzItpara processamento, o que gera preocupações com a privacidade e a conformidade de dados sensíveis. Seu conteúdo HTML sai da sua infraestrutura.

  3. Complexidade do Callback: OGrabzItutiliza um modelo de callback assíncrono que requer infraestrutura para tratamento de webhooks. É necessário configurar pontos de extremidade para receber os resultados, o que aumenta a complexidade da arquitetura.

  4. Preços por captura: O modelo de pagamento por uso pode se tornar caro em grande escala. Cada geração de PDF acarreta um custo.

  5. Sem busca de texto: Como os PDFs são baseados em imagens, a busca e extração de texto não funcionam sem OCR — uma etapa adicional e um custo extra.

  6. Tamanhos de arquivo maiores: PDFs baseados em imagens são significativamente maiores do que PDFs baseados em vetores, frequentemente de 5 a 10 vezes maiores.

  7. Dependência de rede: Não é possível gerar PDFs sem uma conexão com a internet, o que impossibilita cenários offline.

  8. Latência: Cada geração de PDF requer uma ida e volta de rede para servidores externos, o que adiciona uma latência perceptível em comparação com a geração local em processo.

Comparação entreGrabzIte IronPDF

AspectoGrabzItIronPDF
Tipo PDFBaseado em imagem (captura de tela)PDF vetorial verdadeiro
Seleção de textoNão é possível.Seleção de texto completo
Pesquisa de textoRequer OCRBusca nativa
Local de processamentoServidores externosLocal/em processo
PrivacidadeDados enviados externamenteOs dados permanecem locais.
LatênciaTempo de ida e volta da rede (500ms-5s)Processamento local (~100ms)
Modelo de PreçosPor capturaLicença por desenvolvedor
Capacidade offlineNãoSim
Tamanho do arquivoGrande (dados de imagem)Pequeno (dados vetoriais)
É necessário retornar a ligação.Sim (assíncrono)Não (síncrono/assíncrono)
Suporte a CSS/JSLimitadoMotor totalmente cromado

O IronPDF se integra nativamente com padrões .NET modernos e roda inteiramente em processo, removendo a ida e volta da nuvem do seu pipeline de PDF.


Avaliação da Complexidade da Migração

Esforço estimado por funcionalidade

RecursoComplexidade da Migração
HTML para PDFMuito baixo
URL para PDFMuito baixo
HTML para imagemBaixo
Tamanho da página/MargensBaixo
Manipuladores de retorno de chamadaBaixo
Marcas d'águaBaixo
Cabeçalhos/RodapésMédio
Chaves de autenticaçãoMuito baixo

Mudança de paradigma

A mudança fundamental nessa migração doGrabzIté a transição do processamento assíncrono em nuvem baseado em callbacks para a geração síncrona em processo:

GrabzIt: Enviar HTML → Aguardar retorno de chamada → Recuperar resultado do servidor
IronPDF: Renderizar HTML → Obter PDF imediatamente
Text

Antes de começar

Pré-requisitos

  1. **.NET Version:**IronPDF supports .NET Framework 4.6.2+ and .NET Core 3.1+ / .NET 5+
  2. Chave de licença: Obtenha sua chave de licença do IronPDF em IronPDF
  3. Planejar a remoção da infraestrutura: Documentar os manipuladores de retorno de chamada e os endpoints de webhook para desativação.

Identificar todos os usos do GrabzIt

# FindGrabzItclient usage
grep -r "GrabzItClient\|GrabzIt\." --include="*.cs" .

# Find callback handlers
grep -r "GrabzIt\|grabzit" --include="*.ashx" --include="*.aspx" --include="*.cs" .

# Find configuration
grep -r "APPLICATION_KEY\|APPLICATION_SECRET\|grabzit" --include="*.config" --include="*.json" .
SHELL

Alterações no pacote NuGet

# Remove GrabzIt
dotnet remove package GrabzIt

# Install IronPDF
dotnet add package IronPdf
SHELL

Migração de Início Rápido

Etapa 1: Atualizar a configuração da licença

Antes (GrabzIt):

OGrabzItrequer uma chave e um segredo de aplicação para cada instância do cliente:

var grabzIt = new GrabzItClient("YOUR_APPLICATION_KEY", "YOUR_APPLICATION_SECRET");

Após (IronPDF):

// Set once at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

// Then create renderer without credentials
var renderer = new ChromePdfRenderer();

Etapa 2: Atualizar importações de namespace

// Before (GrabzIt)
using GrabzIt;
using GrabzIt.Parameters;

// After (IronPDF)
using IronPdf;

Referência completa da API

Mapeamento do GrabzItClient para o IronPDF

MétodoGrabzItEquivalente ao IronPDF
new GrabzItClient(key, secret)new ChromePdfRenderer()
HTMLToPDF(html)renderer.RenderHtmlAsPdf(html)
URLToPDF(url)renderer.RenderUrlAsPdf(url)
HTMLToImage(html)pdf.ToBitmap()
Save(callbackUrl)pdf.SaveAs(path)
SaveTo(filePath)pdf.SaveAs(filePath)
GetResult(id)N / D
GetStatus(id)N / D

Mapeamento de opções de PDF para opções de renderização

Opções de PDF doGrabzItPropriedade IronPDF
PageSize (A4, Carta)RenderingOptions.PaperSize
CustomIdN / D
MarginTopRenderingOptions.MarginTop
MarginBottomRenderingOptions.MarginBottom

Mapeamento de opções de imagem para IronPDF

Opções de imagem doGrabzItEquivalente ao IronPDF
Format (png, jpg)bitmap.Save(path, ImageFormat.Png)
WidthRenderingOptions.ViewPortWidth
HeightRenderingOptions.ViewPortHeight

Exemplos de migração de código

Exemplo 1: Conversão de HTML para PDF

Antes (GrabzIt):

// NuGet: Install-Package GrabzIt
using GrabzIt;
using GrabzIt.Parameters;
using System;

class Program
{
    static void Main()
    {
        var grabzIt = new GrabzItClient("YOUR_APPLICATION_KEY", "YOUR_APPLICATION_SECRET");
        var options = new PDFOptions();
        options.CustomId = "my-pdf";
        
        grabzIt.HTMLToPDF("<html><body><h1>Hello World</h1></body></html>", options);
        grabzIt.SaveTo("output.pdf");
    }
}

Após (IronPDF):

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

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

A diferença é substancial:GrabzItrequer credenciais de API (YOUR_APPLICATION_KEY, YOUR_APPLICATION_SECRET), cria um objeto PDFOptions com um ID personalizado, e o resultado é um PDF baseado em imagem enviado através de servidores externos. ChromePdfRenderer do IronPDF gera um verdadeiro PDF vetorial localmente com texto selecionável—sem credenciais, sem chamadas de rede, sem callbacks. Consulte a documentação de conversão de HTML para PDF para obter opções de renderização adicionais.

Exemplo 2: Conversão de URL para PDF

Antes (GrabzIt):

// NuGet: Install-Package GrabzIt
using GrabzIt;
using GrabzIt.Parameters;
using System;

class Program
{
    static void Main()
    {
        var grabzIt = new GrabzItClient("YOUR_APPLICATION_KEY", "YOUR_APPLICATION_SECRET");
        var options = new PDFOptions();
        options.PageSize = PageSize.A4;
        
        grabzIt.URLToPDF("https://www.example.com", options);
        grabzIt.SaveTo("webpage.pdf");
    }
}

Após (IronPDF):

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

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

GrabzIt requer a configuração de PageSize.A4 através do objeto de opções e autenticação com servidores externos. O método RenderUrlAsPdf() do IronPDF aceita o URL diretamente e o renderiza localmente usando um motor Chromium completo com suporte completo a CSS e JavaScript. Saiba mais sobre a conversão de URL para PDF .

Exemplo 3: Conversão de HTML para Imagem

Antes (GrabzIt):

// NuGet: Install-Package GrabzIt
using GrabzIt;
using GrabzIt.Parameters;
using System;

class Program
{
    static void Main()
    {
        var grabzIt = new GrabzItClient("YOUR_APPLICATION_KEY", "YOUR_APPLICATION_SECRET");
        var options = new ImageOptions();
        options.Format = ImageFormat.png;
        options.Width = 800;
        options.Height = 600;
        
        grabzIt.HTMLToImage("<html><body><h1>Hello World</h1></body></html>", options);
        grabzIt.SaveTo("output.png");
    }
}

Após (IronPDF):

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<html><body><h1>Hello World</h1></body></html>");
        var images = pdf.ToBitmap();
        images[0].Save("output.png", System.Drawing.Imaging.ImageFormat.Png);
    }
}

GrabzIt fornece um método dedicado HTMLToImage() com ImageOptions para configuração de formato, largura e altura.IronPDF alcança o mesmo resultado primeiro renderizando HTML para PDF usando RenderHtmlAsPdf(), depois convertendo para bitmap com ToBitmap(). Essa abordagem permite obter tanto o PDF quanto a imagem como resultado de uma única operação de renderização.


Notas críticas sobre migração

Não é necessário retornar a chamada.

A mudança arquitetônica mais significativa é a eliminação completa dos manipuladores de retorno de chamada (callbacks):

// GrabzIt: Async callback pattern
grabzIt.HTMLToPDF(html, options);
grabzIt.Save("https://myserver.com/grabzit-callback");  // Wait for callback...

// Callback handler (separate endpoint)
public class GrabzItHandler : IHttpHandler
{
    public void ProcessRequest(HttpContext context)
    {
        string id = context.Request.QueryString["id"];
        GrabzItClient grabzIt = new GrabzItClient("APP_KEY", "APP_SECRET");
        GrabzItFile file = grabzIt.GetResult(id);
        file.Save("output.pdf");
    }
}

// IronPDF: Synchronous - result immediately available
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");  // Done! Não callback needed.

Exclua todos os manipuladores de callback GrabzIt (.ashx arquivos, endpoints do manipulador, configuração de webhook) após a migração.

PDFs vetoriais verdadeiros

OGrabzItcria PDFs baseados em imagens onde o texto não é selecionável. O IronPDF gera PDFs vetoriais verdadeiros:

// With IronPDF, text extraction works natively
var pdf = PdfDocument.FromFile("document.pdf");
string text = pdf.ExtractAllText();  // Works without OCR!

Consulte a documentação de extração de texto para obter mais detalhes.

Tamanhos de arquivo menores

Os PDFs baseados em vetores são normalmente de 5 a 10 vezes menores do que os PDFs baseados em imagens do GrabzIt. Isso melhora os custos de armazenamento, os tempos de download e a viabilidade de anexos de e-mail.

Remover credenciais da API

OGrabzItrequer credenciais de API para cada operação:

// Remove these from configuration
// YOUR_APPLICATION_KEY
// YOUR_APPLICATION_SECRET

O IronPDF utiliza uma única chave de licença, definida uma vez na inicialização do aplicativo — sem autenticação por solicitação.


Solução de problemas

Problema 1: GrabzItClient não encontrado

Problema: Após remover GrabzIt, referências a GrabzItClient causam erros de compilação.

Solução: Substitua por ChromePdfRenderer:

// Remove:
// var grabzIt = new GrabzItClient("KEY", "SECRET");

// Replace with:
var renderer = new ChromePdfRenderer();

Problema 2: Opções PDF não encontradas

Problem: PDFOptions class doesn't exist in IronPDF.

Solução: Use a propriedade RenderingOptions:

// GrabzIt
var options = new PDFOptions();
options.PageSize = PageSize.A4;

// IronPDF
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;

Problema 3: Manipuladores de retorno de chamada ainda são referenciados

Problema: O aplicativo espera endpoints de retorno de chamada (callbacks).

Solução: Elimine completamente a infraestrutura de callbacks. O IronPDF retorna resultados de forma síncrona — sem necessidade de webhooks.

Problema 4: Opções de imagem não encontradas

Problem: ImageOptions class doesn't exist in IronPDF.

Solução: Primeiro, renderize para PDF e depois converta:

// GrabzIt
var options = new ImageOptions();
options.Format = ImageFormat.png;
grabzIt.HTMLToImage(html, options);

// IronPDF
var pdf = renderer.RenderHtmlAsPdf(html);
var images = pdf.ToBitmap();
images[0].Save("output.png", System.Drawing.Imaging.ImageFormat.Png);

Lista de verificação para migração

Pré-migração

  • Inventariar todas as chamadas da APIGrabzItno código-fonte.
  • Identificar manipuladores de retorno de chamada e endpoints de webhook
  • Documentar as opções e modelos atuais do GrabzIt
  • Obtenha a chave de licença do IronPDF
  • Desativação do manipulador de retorno de chamada do plano

Migração de código

  • Instale o pacote NuGet do IronPDF: dotnet add package IronPdf
  • Remova o pacote NuGet do GrabzIt: dotnet remove package GrabzIt
  • Substitua GrabzItClient por ChromePdfRenderer
  • Converta HTMLToPDF() para RenderHtmlAsPdf()
  • Converta URLToPDF() para RenderUrlAsPdf()
  • Substitua Save(callback) por SaveAs(path)
  • Atualize as opções de PDFOptions para RenderingOptions

Migração de infraestrutura

  • Exclua os arquivos de manipulador de callback (.ashx, etc.)
  • Remover as chaves da API doGrabzItda configuração
  • Remover configuração de URL do webhook
  • Adicione a chave de licença do IronPDF à configuração.
  • Remover o código de verificação de status/sondagem

Testando

  • Teste de conversão de HTML para PDF
  • Teste de conversão de URL para PDF
  • Verificar se o texto é selecionável nos PDFs de saída.
  • O teste de extração de texto funciona (sem OCR)
  • Verifique se os tamanhos dos arquivos são menores.
  • Teste de desempenho sem latência de rede

Pós-migração

  • Cancelar assinatura do GrabzIt
  • Código do manipulador de retorno de chamada do arquivo
  • Atualizar documentação
  • Monitore quaisquer erros relacionados ao GrabzIt.

Observe: GrabzIt é uma marca registrada de seu respectivo proprietário. Este site não é afiliado, endossado ou patrocinado por GrabzIt. 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.