IRONSOFTWAREHOME
VÍDEOS

Como acessar todos os objetos DOM de um PDF usando o IronPDF em C# | IronPDF

Curtis Chau
Curtis Chau
Updated: 19 de julho de 2026

O Processamento de documentos Telerik é fornecido como parte das suites de UI do Telerik e pacotes do DevCraft, oferecendo aos desenvolvedores capacidades de geração de PDFs ao lado do processamento de Word, Excel e PowerPoint. No entanto, à medida que os padrões modernos da web evoluem e os projetos exigem suporte completo a CSS3, Flexbox e Bootstrap, as equipes de desenvolvimento expressaram preocupações sobre as limitações na arquitetura de renderização HTML-para-PDF da Telerik.

Este guia fornece um caminho completo de migração do Processamento de documentos Telerik para o IronPDF, com instruções passo a passo, comparações de código e exemplos práticos extraídos diretamente de cenários reais de migração.

Por que migrar do processamento de documentos Telerik?

A decisão de migrar do Processamento de documentos Telerik geralmente surge de limitações técnicas que se tornam evidentes ao trabalhar com conteúdo web moderno. Compreender essas limitações ajuda a justificar o esforço de migração e a definir expectativas sobre o que o IronPDF resolve.

Limitações Técnicas Relatadas

Desenvolvedores relataram problemas com o Processamento de documentos Telerik ao lidar com HTML e CSS modernos:

EmitirImpactoSolução IronPDF
limitações de análise de CSSFrameworks CSS modernos como o Bootstrap falhamSuporte completo ao CSS do Chromium
Conversão de div para parágrafoEstrutura HTML achatada, quebra de layoutsRenderização direta de HTML
Modelo de documento de fluxoForças conversão intermediáriaConversão nativa de HTML para PDF
Problemas externos de CSSSeletores complexos ignoradosSuporte completo a arquivos CSS
Problemas de memóriaOutOfMemoryException relatado em arquivos grandesStreaming eficiente

O problema principal: o HTML não está sendo renderizado corretamente.

O Processamento de documentos Telerik converte HTML em um modelo intermediário de "Documento de Fluxo" antes de gerar o PDF. Essa decisão arquitetônica cria problemas em cascata:

  1. Achatamento da estrutura HTML — elementos <div> tornam-se parágrafos
  2. Ignora o CSS moderno — os layouts Flexbox e Grid falham completamente.
  3. Quebra o Bootstrap — Sistemas de colunas não são renderizados como colunas.
  4. Perda de formatação — Seletores CSS complexos são ignorados.

Considere este HTML moderno que utiliza layouts CSS padrão:

<!-- This modern HTML/CSS BREAKS in Processamento de documentos Telerik -->
<div class="container">
    <div class="row">
        <div class="col-md-6">Column 1</div>
        <div class="col-md-6">Column 2</div>
    </div>
</div>

<div style="display: flex; gap: 20px;">
    <div style="flex: 1;">Flex Item 1</div>
    <div style="flex: 1;">Flex Item 2</div>
</div>

<div style="display: grid; grid-template-columns: repeat(3, 1fr);">
    <div>Grid Item 1</div>
    <div>Grid Item 2</div>
    <div>Grid Item 3</div>
</div>
HTML

No Telerik Document Processing, todos esses layouts são renderizados como parágrafos sequenciais. O layout Bootstrap de duas colunas se transforma em duas linhas de texto. Os itens flexbox se empilham verticalmente. Os itens do CSS Grid aparecem um após o outro.

Funcionalidades CSS que falham no processamento de documentos Telerik

Os desenvolvedores documentaram diversos problemas de compatibilidade com CSS:

/* ❌ These CSS features DON'T WORK in Processamento de documentos Telerik */

/* Flexbox - Não suportado */
.container { display: flex; }
.item { flex: 1; }

/* CSS Grid - Não suportado */
.grid { display: grid; grid-template-columns: repeat(3, 1fr); }

/* Bootstrap columns - Converted to paragraphs */
.col-md-6 { /* Ignored, becomes linear text */ }

/* CSS Variables - Não suportado */
:root { --primary: #007bff; }
.btn { color: var(--primary); }

/* Complex selectors - Often ignored */
.container > .row:first-child { }
.item:hover { }
.content::before { }

/* Modern units - Limited support */
.box { width: calc(100% - 20px); }
.text { font-size: 1.2rem; }
Text

Relatórios de Performance para Documentos Grandes

Além das limitações do CSS, desenvolvedores relataram erros OutOfMemoryException ao processar arquivos grandes com o Telerik Document Processing, junto com espaços de cor não suportados e falhas durante a mesclagem de PDFs em alguns cenários. Equipes que trabalham com geração de documentos de alto volume notaram preocupações de estabilidade, valendo a pena avaliar antes de se comprometer com o uso a longo prazo.

Comparação de recursos entre IronPDF e Telerik Document Processing

Compreender as diferenças entre as funcionalidades ajuda os responsáveis ​​pela tomada de decisões técnicas a avaliar o investimento na migração:

RecursoProcessamento de documentos TelerikIronPDF
Renderização HTMLConversão de documentos de fluxoRenderização direta do Chromium
Suporte a CSS3Limitado, muitas funcionalidades falhamCSS3 completo
FlexboxNão suportadoApoiado
Grade CSSNão suportadoApoiado
BootstrapQuebrado (achatamento de div)Compatível com Bootstrap 5
CSS externoParcialApoiado
JavaScriptNão suportadoSuporte total
Documentos grandesForam relatados problemas de memóriaStreaming eficiente
Complexidade da APIComplexo (provedores, modelos)Simples (uma classe)
Modelo de LicençaComercial, parte do DevCraftLicenciamento independente simples

Migração rápida: 5 minutos para o seu primeiro PDF

A migração do Processamento de documentos Telerik para o IronPDF pode começar imediatamente. Aqui está o caminho mais rápido para gerar seu primeiro PDF com o IronPDF.

Passo 1: Atualizar pacotes NuGet

Remova todos os pacotes de processamento de documentos da Telerik:

# Remove Telerik packages
dotnet remove package Telerik.Documents.Core
dotnet remove package Telerik.Documents.Flow
dotnet remove package Telerik.Documents.Flow.FormatProviders.Pdf
dotnet remove package Telerik.Documents.Fixed
SHELL

Instale o IronPDF:

# Install IronPDF
dotnet add package IronPdf
SHELL

Etapa 2: Atualizar instruções Using

Substitua namespaces da Telerik pelo namespace IronPDF:

// Before (Telerik Document Processing)
using Telerik.Windows.Documents.Flow.FormatProviders.Html;
using Telerik.Windows.Documents.Flow.FormatProviders.Pdf;
using Telerik.Windows.Documents.Flow.Model;
using Telerik.Documents.Primitives;

// After (IronPDF)
using IronPdf;

Passo 3: Adicionar chave de licença

Inicialize sua licença ao iniciar o aplicativo:

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

Passo 4: Atualize seu código de geração de PDF

A transição do processamento de documentos Telerik para o IronPDF simplifica drasticamente sua base de código.

Antes (Processamento de Documentos Telerik):

using Telerik.Windows.Documents.Flow.FormatProviders.Html;
using Telerik.Windows.Documents.Flow.FormatProviders.Pdf;
using Telerik.Windows.Documents.Flow.Model;

HtmlFormatProvider htmlProvider = new HtmlFormatProvider();
RadFlowDocument document = htmlProvider.Import(htmlContent);

PdfFormatProvider pdfProvider = new PdfFormatProvider();
byte[] pdfBytes = pdfProvider.Export(document);

File.WriteAllBytes("output.pdf", pdfBytes);

Após (IronPDF):

using IronPdf;

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("output.pdf");

A diferença é imediatamente aparente: 3 linhas de código IronPDF substituem mais de 15 linhas de código Telerik Document Processing. Mais importante ainda, a versão IronPDF renderizará corretamente o CSS moderno que o modelo Flow Document da Telerik não consegue processar.

Exemplos de migração de código

Converter HTML para PDF

Este é o caso de uso mais comum para a geração de PDFs. As diferenças arquitetônicas entre o Processamento de documentos Telerik e o IronPDF ficam claras nesta comparação.

Abordagem de processamento de documentos da Telerik:

// NuGet: Install-Package Telerik.Documents.Flow
// NuGet: Install-Package Telerik.Documents.Flow.FormatProviders.Pdf
using Telerik.Windows.Documents.Flow.FormatProviders.Html;
using Telerik.Windows.Documents.Flow.FormatProviders.Pdf;
using Telerik.Windows.Documents.Flow.Model;
using System.IO;

string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";

HtmlFormatProvider htmlProvider = new HtmlFormatProvider();
RadFlowDocument document = htmlProvider.Import(html);

PdfFormatProvider pdfProvider = new PdfFormatProvider();
using (FileStream output = File.OpenWrite("output.pdf"))
{
    pdfProvider.Export(document, output);
}

Abordagem IronPDF:

// NuGet: Install-Package IronPdf
using IronPdf;

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 Telerik requer a criação de um HtmlFormatProvider, importação para um RadFlowDocument, criação de um PdfFormatProvider e gerenciamento de fluxos de arquivos manualmente. O ChromePdfRenderer do IronPDF lida com todo o processo com uma única chamada de método.

Para cenários mais avançados de conversão de HTML para PDF, consulte o guia de conversão de HTML para PDF .

Converter URLs em PDF

A captura de páginas da web em formato PDF revela outra diferença significativa entre as bibliotecas.

Abordagem de processamento de documentos da Telerik:

// NuGet: Install-Package Telerik.Documents.Flow
// NuGet: Install-Package Telerik.Documents.Flow.FormatProviders.Pdf
using Telerik.Windows.Documents.Flow.FormatProviders.Html;
using Telerik.Windows.Documents.Flow.FormatProviders.Pdf;
using Telerik.Windows.Documents.Flow.Model;
using System.IO;
using System.Net.Http;
using System.Threading.Tasks;

string url = "https://example.com";

using HttpClient client = new HttpClient();
string html = await client.GetStringAsync(url);

HtmlFormatProvider htmlProvider = new HtmlFormatProvider();
RadFlowDocument document = htmlProvider.Import(html);

PdfFormatProvider pdfProvider = new PdfFormatProvider();
using (FileStream output = File.OpenWrite("webpage.pdf"))
{
    pdfProvider.Export(document, output);
}

Abordagem IronPDF:

// NuGet: Install-Package IronPdf
using IronPdf;

string url = "https://example.com";

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf(url);
pdf.SaveAs("webpage.pdf");

O Processamento de documentos Telerik não possui uma funcionalidade nativa de conversão de URL para PDF. Você deve buscar manualmente o conteúdo HTML usando HttpClient, perdendo CSS externo, execução de JavaScript e conteúdo dinâmico no processo. O método RenderUrlAsPdf do IronPDF captura a página renderizada completa exatamente como aparece em um navegador.

Explore a URL para documentação em PDF para opções adicionais, incluindo autenticação e cabeçalhos personalizados.

Unir vários PDFs

A fusão de PDFs demonstra a diferença de verbosidade entre essas bibliotecas PDF do .NET .

Abordagem de processamento de documentos da Telerik:

// NuGet: Install-Package Telerik.Documents.Fixed
using Telerik.Windows.Documents.Fixed.FormatProviders.Pdf;
using Telerik.Windows.Documents.Fixed.Model;
using System.IO;

PdfFormatProvider provider = new PdfFormatProvider();

RadFixedDocument document1;
using (FileStream input = File.OpenRead("document1.pdf"))
{
    document1 = provider.Import(input);
}

RadFixedDocument document2;
using (FileStream input = File.OpenRead("document2.pdf"))
{
    document2 = provider.Import(input);
}

RadFixedDocument mergedDocument = new RadFixedDocument();
foreach (var page in document1.Pages)
{
    mergedDocument.Pages.Add(page);
}
foreach (var page in document2.Pages)
{
    mergedDocument.Pages.Add(page);
}

using (FileStream output = File.OpenWrite("merged.pdf"))
{
    provider.Export(mergedDocument, output);
}

Abordagem IronPDF:

// NuGet: Install-Package IronPdf
using IronPdf;

var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");

var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");

A versão da Telerik exige a importação de cada documento separadamente, a iteração manual pelas páginas, a adição delas a um novo documento e o gerenciamento de vários fluxos de arquivos. O método PdfDocument.Merge() do IronPDF lida com tudo em uma única chamada.

Para cenários avançados de mesclagem, incluindo extração seletiva de páginas, consulte o guia de mesclagem e divisão de PDFs .

Mapeamento da API de processamento de documentos da Telerik para o IronPDF

Esta tabela de referência acelera a migração, mostrando equivalentes diretos da API:

Processamento de documentos TelerikIronPDF
HtmlFormatProviderChromePdfRenderer
RadFlowDocumentNão é necessário
PdfFormatProviderpdf.SaveAs()
RadFlowDocumentEditorManipulação de HTML
SectionHTML <section>
ParagraphHTML <p>
PdfExportSettingsRenderingOptions
RadFixedDocumentPdfDocument
Iteração da página do manualPdfDocument.Merge()

Manipulação de cabeçalhos e rodapés

O Processamento de documentos Telerik utiliza um modelo programático para cabeçalhos e rodapés. O IronPDF fornece cabeçalhos baseados em HTML com espaços reservados dinâmicos.

Processamento de documentos Telerik:

section.Headers.Default.Blocks.AddParagraph().Inlines.AddRun("Header Text");
section.Footers.Default.Blocks.AddParagraph().Inlines.AddRun("Footer Text");

IronPDF:

renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    HtmlFragment = "<div style='text-align:center;'>Header Text</div>",
    MaxHeight = 25
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
    HtmlFragment = "<div style='text-align:center;'>Footer Text</div>",
    MaxHeight = 25
};

A abordagem do IronPDF, baseada em HTML, permite estilização CSS completa em cabeçalhos e rodapés, além de espaços reservados dinâmicos para números de página e datas. Saiba mais na documentação sobre cabeçalhos e rodapés .

Conversão de unidades: DIPs para milímetros

O sistema de processamento de documentos da Telerik utiliza pixels independentes de dispositivo (DIPs) para medições. O IronPDF usa milímetros. Isso requer conversão durante a migração:

// Telerik uses DIPs (device-independent pixels)
//IronPDF uses millimeters

// 1 inch = 25.4mm
renderer.RenderingOptions.MarginTop = 25.4;    // 1 inch
renderer.RenderingOptions.MarginBottom = 25.4;

// Or use the helper method for paper size
renderer.RenderingOptions.SetCustomPaperSizeInInches(8.5, 11);

Lista de verificação para migração do processamento de documentos da Telerik

Tarefas pré-migração

Audite seu código-fonte para identificar todos os usos do Telerik Document Processing:

grep -r "using Telerik.Windows.Documents" --include="*.cs" .
grep -r "RadFlowDocument\|HtmlFormatProvider\|PdfFormatProvider" --include="*.cs" .
SHELL

Documente as implementações existentes, incluindo os provedores de formato utilizados, as configurações de cabeçalho/rodapé, as configurações de página personalizadas e quaisquer modificações no modelo de documento do Flow.

Durante a migração

  1. Remova os pacotes NuGet da Telerik.
  2. Instale o pacote NuGet do IronPDF
  3. Atualizar as declarações de uso de Telerik.Windows.Documents para IronPdf
  4. Adicionar inicialização da chave de licença na inicialização do sistema.
  5. Substituir HtmlFormatProvider por ChromePdfRenderer
  6. Remover etapas intermediárias RadFlowDocument
  7. Substituir exportações PdfFormatProvider por chamadas diretas SaveAs()
  8. Atualizar cabeçalhos/rodapés para usar HtmlHeaderFooter
  9. Converter configurações de página para RenderingOptions
  10. Atualizar as unidades de margem de DIPs para milímetros.

Verificação pós-migração

Após a migração, verifique estas melhorias:

  • A renderização de CSS deverá melhorar significativamente.
  • Os layouts do Bootstrap deveriam ser renderizados corretamente (o que não acontece no Telerik).
  • Os layouts Flexbox e Grid deveriam funcionar (mas não funcionam no Telerik)
  • A execução de JavaScript deve funcionar para conteúdo dinâmico.
  • A geração de documentos grandes deve ser concluída sem exceções de memória.

Principais benefícios da migração para o IronPDF

A migração do processamento de documentos Telerik para o IronPDF oferece vantagens imediatas:

Mecanismo de renderização Chromium moderno: O IronPDF usa o mesmo mecanismo de renderização do Google Chrome, garantindo que os PDFs sejam exibidos exatamente como o conteúdo aparece nos navegadores modernos. Isso elimina os problemas de compatibilidade com CSS inerentes ao modelo de documento Flow da Telerik.

Suporte completo a CSS3 e JavaScript: Flexbox, Grid, Bootstrap 5, variáveis de CSS e JavaScript moderno funcionam corretamente, garantindo a compatibilidade com padrões contemporâneos da web.

API mais simples: Menos linhas de código, sem modelos de documentos intermediários e nomes de métodos intuitivos reduzem o tempo de desenvolvimento e a carga de manutenção.

Licenciamento independente: O IronPDF oferece licenciamento descomplicado sem a necessidade de adquirir um pacote completo, proporcionando uma solução econômica para equipes que precisam apenas de recursos de PDF.

Desenvolvimento ativo: atualizações regulares garantem a compatibilidade com as versões atuais e futuras do .NET , correções de segurança e melhorias de recursos.

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