Como migrar do processamento de documentos Telerik para o IronPDF em C#
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:
| Emitir | Impacto | Solução IronPDF |
|---|---|---|
| limitações de análise de CSS | Frameworks CSS modernos como o Bootstrap falham | Suporte completo ao CSS do Chromium |
| Conversão de div para parágrafo | Estrutura HTML achatada, quebra de layouts | Renderização direta de HTML |
| Modelo de documento de fluxo | Forças conversão intermediária | Conversão nativa de HTML para PDF |
| Problemas externos de CSS | Seletores complexos ignorados | Suporte completo a arquivos CSS |
| Problemas de memória | OutOfMemoryException relatado em arquivos grandes |
Streaming 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:
- Achatamento da estrutura HTML — elementos tornam-se parágrafos
- Ignora o CSS moderno — os layouts Flexbox e Grid falham completamente.
- Quebra o Bootstrap — Sistemas de colunas não são renderizados como colunas.
- Perda de formatação — Seletores CSS complexos são ignorados.
Considere este HTML moderno que utiliza layouts CSS padrão:
<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><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>HTMLNo 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; }Relatórios de Performance para Documentos Grandes
Além das limitações do CSS, desenvolvedores relataram erros
OutOfMemoryExceptionao 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:
Recurso Processamento de documentos Telerik IronPDF Renderização HTML Conversão de documentos de fluxo Renderização direta do Chromium Suporte a CSS3 Limitado, muitas funcionalidades falham CSS3 completo Flexbox Não suportado Apoiado Grade CSS Não suportado Apoiado Bootstrap Quebrado (achatamento de div) Compatível com Bootstrap 5 CSS externo Parcial Apoiado JavaScript Não suportado Suporte total Documentos grandes Foram relatados problemas de memória Streaming eficiente Complexidade da API Complexo (provedores, modelos) Simples (uma classe) Modelo de Licença Comercial, parte do DevCraft Licenciamento 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# 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.FixedSHELLInstale o IronPDF:
# Install IronPDF dotnet add package IronPdf# Install IronPDF dotnet add package IronPdfSHELLEtapa 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;// 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;Imports Telerik.Windows.Documents.Flow.FormatProviders.Html Imports Telerik.Windows.Documents.Flow.FormatProviders.Pdf Imports Telerik.Windows.Documents.Flow.Model Imports Telerik.Documents.Primitives ' After (IronPDF) Imports IronPdf$vbLabelText $csharpLabelPasso 3: Adicionar chave de licença
Inicialize sua licença ao iniciar o aplicativo:
// Add at application startup IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";// Add at application startup IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";' Add at application startup IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"$vbLabelText $csharpLabelPasso 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);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);Imports Telerik.Windows.Documents.Flow.FormatProviders.Html Imports Telerik.Windows.Documents.Flow.FormatProviders.Pdf Imports Telerik.Windows.Documents.Flow.Model Dim htmlProvider As New HtmlFormatProvider() Dim document As RadFlowDocument = htmlProvider.Import(htmlContent) Dim pdfProvider As New PdfFormatProvider() Dim pdfBytes As Byte() = pdfProvider.Export(document) File.WriteAllBytes("output.pdf", pdfBytes)$vbLabelText $csharpLabelApós (IronPDF):
using IronPdf; var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf(htmlContent); pdf.SaveAs("output.pdf");using IronPdf; var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf(htmlContent); pdf.SaveAs("output.pdf");Imports IronPdf Dim renderer As New ChromePdfRenderer() Dim pdf = renderer.RenderHtmlAsPdf(htmlContent) pdf.SaveAs("output.pdf")$vbLabelText $csharpLabelA 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); }// 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); }Imports Telerik.Windows.Documents.Flow.FormatProviders.Html Imports Telerik.Windows.Documents.Flow.FormatProviders.Pdf Imports Telerik.Windows.Documents.Flow.Model Imports System.IO Dim html As String = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>" Dim htmlProvider As New HtmlFormatProvider() Dim document As RadFlowDocument = htmlProvider.Import(html) Dim pdfProvider As New PdfFormatProvider() Using output As FileStream = File.OpenWrite("output.pdf") pdfProvider.Export(document, output) End Using$vbLabelText $csharpLabelAbordagem 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");// 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");Imports IronPdf Dim html As String = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>" Dim renderer As New ChromePdfRenderer() Dim pdf = renderer.RenderHtmlAsPdf(html) pdf.SaveAs("output.pdf")$vbLabelText $csharpLabelA versão Telerik requer a criação de um
HtmlFormatProvider, importação para umRadFlowDocument, criação de umPdfFormatProvidere gerenciamento de fluxos de arquivos manualmente. OChromePdfRendererdo 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); }// 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); }Imports Telerik.Windows.Documents.Flow.FormatProviders.Html Imports Telerik.Windows.Documents.Flow.FormatProviders.Pdf Imports Telerik.Windows.Documents.Flow.Model Imports System.IO Imports System.Net.Http Imports System.Threading.Tasks Module Module1 Sub Main() Dim url As String = "https://example.com" Using client As New HttpClient() Dim html As String = Await client.GetStringAsync(url) Dim htmlProvider As New HtmlFormatProvider() Dim document As RadFlowDocument = htmlProvider.Import(html) Dim pdfProvider As New PdfFormatProvider() Using output As FileStream = File.OpenWrite("webpage.pdf") pdfProvider.Export(document, output) End Using End Using End Sub End Module$vbLabelText $csharpLabelAbordagem 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");// NuGet: Install-Package IronPdf using IronPdf; string url = "https://example.com"; var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderUrlAsPdf(url); pdf.SaveAs("webpage.pdf");Imports IronPdf Dim url As String = "https://example.com" Dim renderer As New ChromePdfRenderer() Dim pdf = renderer.RenderUrlAsPdf(url) pdf.SaveAs("webpage.pdf")$vbLabelText $csharpLabelO 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étodoRenderUrlAsPdfdo 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); }// 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); }Imports Telerik.Windows.Documents.Fixed.FormatProviders.Pdf Imports Telerik.Windows.Documents.Fixed.Model Imports System.IO Dim provider As New PdfFormatProvider() Dim document1 As RadFixedDocument Using input As FileStream = File.OpenRead("document1.pdf") document1 = provider.Import(input) End Using Dim document2 As RadFixedDocument Using input As FileStream = File.OpenRead("document2.pdf") document2 = provider.Import(input) End Using Dim mergedDocument As New RadFixedDocument() For Each page In document1.Pages mergedDocument.Pages.Add(page) Next For Each page In document2.Pages mergedDocument.Pages.Add(page) Next Using output As FileStream = File.OpenWrite("merged.pdf") provider.Export(mergedDocument, output) End Using$vbLabelText $csharpLabelAbordagem 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");// 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");Imports IronPdf Dim pdf1 = PdfDocument.FromFile("document1.pdf") Dim pdf2 = PdfDocument.FromFile("document2.pdf") Dim merged = PdfDocument.Merge(pdf1, pdf2) merged.SaveAs("merged.pdf")$vbLabelText $csharpLabelA 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 Telerik IronPDF HtmlFormatProviderChromePdfRendererRadFlowDocumentNão é necessário PdfFormatProviderpdf.SaveAs()RadFlowDocumentEditorManipulação de HTML SectionHTML ParagraphHTML PdfExportSettingsRenderingOptionsRadFixedDocumentPdfDocumentIteração da página do manual PdfDocument.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");section.Headers.Default.Blocks.AddParagraph().Inlines.AddRun("Header Text"); section.Footers.Default.Blocks.AddParagraph().Inlines.AddRun("Footer Text");section.Headers.Default.Blocks.AddParagraph().Inlines.AddRun("Header Text") section.Footers.Default.Blocks.AddParagraph().Inlines.AddRun("Footer Text")$vbLabelText $csharpLabelIronPDF:
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 };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 };Imports System renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter() With { .HtmlFragment = "<div style='text-align:center;'>Header Text</div>", .MaxHeight = 25 } renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter() With { .HtmlFragment = "<div style='text-align:center;'>Footer Text</div>", .MaxHeight = 25 }$vbLabelText $csharpLabelA 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);// 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);' 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)$vbLabelText $csharpLabelLista 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" .grep -r "using Telerik.Windows.Documents" --include="*.cs" . grep -r "RadFlowDocument\|HtmlFormatProvider\|PdfFormatProvider" --include="*.cs" .SHELLDocumente 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
- Remova os pacotes NuGet da Telerik.
- Instale o pacote NuGet do IronPDF
- Atualizar as declarações de uso de
Telerik.Windows.DocumentsparaIronPdf - Adicionar inicialização da chave de licença na inicialização do sistema.
- Substituir
HtmlFormatProviderporChromePdfRenderer - Remover etapas intermediárias
RadFlowDocument - Substituir exportações
PdfFormatProviderpor chamadas diretasSaveAs() - Atualizar cabeçalhos/rodapés para usar
HtmlHeaderFooter - Converter configurações de página para
RenderingOptions - 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.
ObserveTelerik é 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.

