Ir para o conteúdo do rodapé
GUIAS DE MIGRAçãO

Como migrar do processamento de documentos Telerik para o IronPDF em C#

O Processamento de documentos Telerik atende ao ecossistema .NET como parte do pacote DevCraft, oferecendo aos desenvolvedores recursos de geração de PDFs, além do processamento de arquivos Word, Excel e PowerPoint. No entanto, à medida que os padrões da web modernos evoluem e os projetos exigem suporte completo a CSS3, Flexbox e Bootstrap, muitas equipes de desenvolvimento estão descobrindo limitações fundamentais na arquitetura de renderização de 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 críticas

O processamento de documentos da Telerik apresenta problemas fundamentais 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 Exceção OutOfMemoryException em documentos 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:

  1. Achata a estrutura HTML — os 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:


<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>
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; }

Problemas de desempenho com documentos grandes

Além das limitações do CSS, o Processamento de documentos Telerik documentou erros OutOfMemoryException ao processar arquivos grandes. Equipes de desenvolvimento que trabalham com geração de documentos em grande volume têm encontrado problemas de estabilidade que outras bibliotecas resolvem com mais eficiência.

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 completo ao ES2024
Documentos grandes 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.Fixed
SHELL

Instale o IronPDF:

# Install IronPDF
dotnet add package IronPdf
# Install IronPDF
dotnet add package IronPdf
SHELL

Etapa 2: Atualizar instruções Using

Substitua os namespaces 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   $csharpLabel

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";
// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
' Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
$vbLabelText   $csharpLabel

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);
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   $csharpLabel

Apó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   $csharpLabel

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);
}
// 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   $csharpLabel

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");
// 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   $csharpLabel

A versão Telerik requer a criação de um HtmlFormatProvider, a importação para um RadFlowDocument, a criação de um PdfFormatProvider e o gerenciamento manual dos fluxos de arquivos. 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);
}
// 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   $csharpLabel

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");
// 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   $csharpLabel

O Processamento de documentos Telerik não possui uma funcionalidade nativa de conversão de URL para PDF. Você precisa 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 ela 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   $csharpLabel

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");
// 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   $csharpLabel

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 Telerik IronPDF
HtmlFormatProvider ChromePdfRenderer
RadFlowDocument Não é necessário
PdfFormatProvider pdf.SaveAs()
RadFlowDocumentEditor Manipulação de HTML
Section HTML <section>
Paragraph HTML <p>
PdfExportSettings RenderingOptions
RadFixedDocument PdfDocument
Iteraçã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   $csharpLabel

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
};
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   $csharpLabel

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);
// 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   $csharpLabel

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" .
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 IronPDF
  3. Atualize as instruções de uso de Telerik.Windows.Documents para IronPdf
  4. Adicionar inicialização da chave de licença na inicialização do sistema.
  5. Substitua HtmlFormatProvider por ChromePdfRenderer
  6. Remover etapas intermediárias RadFlowDocument
  7. Substitua as exportações PdfFormatProvider por chamadas diretas SaveAs()
  8. Atualize os cabeçalhos/rodapés para usar HtmlHeaderFooter
  9. Converter configurações da 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 ​​CSS e JavaScript moderno funcionam corretamente. Com a crescente adoção do .NET 10 e do C# 14 até 2026, a renderização moderna do IronPDF garante a compatibilidade com os padrões web contemporâneos.

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.

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 ...

Leia mais

Equipe de suporte de ferro

Estamos online 24 horas por dia, 5 dias por semana.
Bater papo
E-mail
Liga para mim