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

Como migrar do Telerik Reporting para o IronPDF em C#

O Relatórios da Telerik é uma plataforma poderosa de relatórios corporativos que tem sido muito útil para desenvolvedores .NET na criação de relatórios interativos com recursos de design visual e detalhamento (drill-down). No entanto, para equipes cuja principal necessidade é a geração de PDFs em vez de uma infraestrutura de relatórios abrangente, o Relatórios da Telerik geralmente representa uma sobrecarga significativa em custos de licenciamento, complexidade de implantação e espaço ocupado em tempo de execução.

Este guia fornece um caminho completo de migração do Relatórios da Telerik para o IronPDF, com instruções passo a passo, comparações de código e exemplos práticos para desenvolvedores .NET profissionais que estejam avaliando essa transição.

Por que migrar do Telerik Reporting?

A decisão de migrar do Relatórios da Telerik geralmente se concentra em adequar suas ferramentas às suas necessidades reais. Os principais motivos pelos quais as equipes de desenvolvimento consideram a migração incluem:

Licenciamento por desenvolvedor: O Relatórios da Telerik independente começa em ~$685 por desenvolvedor, e o pacote completo do DevCraft começa em ~$1,763 (Q1 2026, ComponentSource). Ambos são vendidos como perpétuos + 1 ano de manutenção ou como assinatura anual. Para equipes que precisam apenas da geração de PDFs, isso representa uma capacidade significativa não utilizada.

Dependência do Designer de Relatórios: O Relatórios da Telerik requer o designer Standalone, Web, ou integrado ao Visual Studio, além de assemblies de runtime obtidos do feed privado do Telerik NuGet (https://nuget.telerik.com/v3/index.json, chave de licença requerida). Isso aumenta a complexidade dos ambientes de desenvolvimento e dos pipelines de CI/CD.

Infraestrutura Complexa: Para cenários de visualização em HTML5, você também hospeda um Serviço REST de Relatórios (Telerik.Reporting.Services.AspNetCore) com configuração de armazenamento, resolvedor e script de visualização — infraestrutura que adiciona encargos de manutenção para tarefas simples de geração de PDF.

Formato Proprietário: As definições de relatório XML .trdp e .trdx (formato próprio da Telerik — não RDL/RDLC, que explicitamente não é suportado) prendem você ao ecossistema Telerik. Migrar ou modificar modelos requer ferramentas da Telerik.

Runtime Pesado: Grande espaço de implantação para o que pode ser uma simples conversão HTML-para-PDF, além de DLLs de renderização opcionais para DOCX/XLSX/PPTX/XPS.

Manutenção Renovável: Mesmo com uma licença perpétua, atualizações contínuas, correções e suporte requerem renovação da assinatura de manutenção.

Quando o Relatórios da Telerik é um exagero

Se você usa o Relatórios da Telerik principalmente para gerar PDFs a partir de dados, provavelmente está pagando por recursos que não utiliza:

Você precisa A Telerik fornece (não utilizado)
PDF a partir de HTML Designer visual, detalhamento
Relatórios simples Visualizador interativo, exportações
PDFs do lado do servidor Controles de desktop, mecanismo de gráficos

O IronPDF oferece geração de PDFs focada, sem a sobrecarga de relatórios corporativos.

IronPDF vs Telerik Reporting: Comparação de Recursos

Compreender as diferenças arquitetônicas ajuda os responsáveis ​​pelas decisões técnicas a avaliar o investimento em migração:

Recurso Relatórios da Telerik IronPDF
Foco Criação de relatórios com opção de exportação para PDF Geração completa de PDFs a partir de HTML
Integração Integração perfeita com aplicações ASP.NET Core Pode ser integrado a qualquer aplicação .NET.
Complexidade de configuração Requer a instalação de um editor de relatórios. Instalação simples do NuGet
Preços Parte do pacote comercial DevCraft Licenciamento separado, mais econômico para geração independente de PDFs.
Geração de PDF Limitado a relatar exportações Completo com recursos avançados de manipulação de PDF.
Público-alvo Desenvolvedores que precisam de soluções centradas em relatórios Desenvolvedores que precisam de soluções flexíveis para geração de PDFs
Formato do modelo .trdp / .trdx (XML; não RDL/RDLC) HTML/CSS/Razor
Curva de Aprendizagem Específico da Telerik (linguagem de expressão, seções) Tecnologias web padrão
HTML para PDF Lado do servidor via HtmlTextBox (HTML/CSS limitado) Renderização completa do Chromium
URL para PDF Não embutido (busque HTML por si mesmo) Sim
Suporte a CSS Limitado (seletores semelhantes a CSS no designer) CSS3 completo
JavaScript no tempo de renderização Não (o motor do servidor não executa JS) ES2024 completo
Assinaturas digitais Sim (X.509 / .PFX via informações do dispositivo PDF) Sim
PDF/A PDF/A-1b, PDF/A-2b, PDF/A-3b PDF/A-3
Tamanho de tempo de execução Grande (motor + DLLs de renderização por formato) Menor

Guia Rápido: Migração de Relatórios Telerik para IronPDF

A migração pode começar imediatamente com esses passos fundamentais.

Passo 1: Substituir pacotes NuGet

Remova todos os pacotes de relatórios da Telerik:

# Remove Relatórios da Telerik packages (hosted on the private Telerik NuGet feed)
dotnet remove package Telerik.Reporting
dotnet remove package Telerik.Reporting.Services.AspNetCore
dotnet remove package Telerik.ReportViewer.Mvc
# Remove Relatórios da Telerik packages (hosted on the private Telerik NuGet feed)
dotnet remove package Telerik.Reporting
dotnet remove package Telerik.Reporting.Services.AspNetCore
dotnet remove package Telerik.ReportViewer.Mvc
SHELL

Instale o IronPDF:

# Install IronPDF(hosted on nuget.org)
dotnet add package IronPdf
# Install IronPDF(hosted on nuget.org)
dotnet add package IronPdf
SHELL

Etapa 2: Atualizar Namespaces

Substitua namespaces da Telerik pelo namespace IronPDF:

// Before (Telerik Reporting)
using Telerik.Reporting;
using Telerik.Reporting.Processing;
using Telerik.Reporting.Drawing;

// After (IronPDF)
using IronPdf;
// Before (Telerik Reporting)
using Telerik.Reporting;
using Telerik.Reporting.Processing;
using Telerik.Reporting.Drawing;

// After (IronPDF)
using IronPdf;
Imports Telerik.Reporting
Imports Telerik.Reporting.Processing
Imports Telerik.Reporting.Drawing

' After (IronPDF)
Imports IronPdf
$vbLabelText   $csharpLabel

Etapa 3: Inicializar a licença

Adicionar inicialização de licença na inicialização do aplicativo:

IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
$vbLabelText   $csharpLabel

Exemplos de migração de código

Converter HTML para PDF

O caso de uso mais comum demonstra a diferença arquitetônica entre essas bibliotecas PDF for .NET .

Abordagem de Relatórios da Telerik:

// NuGet: Install-Package Telerik.Reporting
using Telerik.Reporting;
using Telerik.Reporting.Processing;
using System.Collections.Specialized;

class TelerikExample
{
    static void Main()
    {
        var reportSource = new Telerik.Reporting.TypeReportSource();
        var instanceReportSource = new Telerik.Reporting.InstanceReportSource();
        instanceReportSource.ReportDocument = new Telerik.Reporting.Report()
        {
            Items = { new Telerik.Reporting.HtmlTextBox() { Value = "<h1>Hello World</h1><p>Sample HTML content</p>" } }
        };

        var reportProcessor = new ReportProcessor();
        var result = reportProcessor.RenderReport("PDF", instanceReportSource, null);

        using (var fs = new System.IO.FileStream("output.pdf", System.IO.FileMode.Create))
        {
            fs.Write(result.DocumentBytes, 0, result.DocumentBytes.Length);
        }
    }
}
// NuGet: Install-Package Telerik.Reporting
using Telerik.Reporting;
using Telerik.Reporting.Processing;
using System.Collections.Specialized;

class TelerikExample
{
    static void Main()
    {
        var reportSource = new Telerik.Reporting.TypeReportSource();
        var instanceReportSource = new Telerik.Reporting.InstanceReportSource();
        instanceReportSource.ReportDocument = new Telerik.Reporting.Report()
        {
            Items = { new Telerik.Reporting.HtmlTextBox() { Value = "<h1>Hello World</h1><p>Sample HTML content</p>" } }
        };

        var reportProcessor = new ReportProcessor();
        var result = reportProcessor.RenderReport("PDF", instanceReportSource, null);

        using (var fs = new System.IO.FileStream("output.pdf", System.IO.FileMode.Create))
        {
            fs.Write(result.DocumentBytes, 0, result.DocumentBytes.Length);
        }
    }
}
Imports Telerik.Reporting
Imports Telerik.Reporting.Processing
Imports System.Collections.Specialized
Imports System.IO

Class TelerikExample
    Shared Sub Main()
        Dim reportSource As New Telerik.Reporting.TypeReportSource()
        Dim instanceReportSource As New Telerik.Reporting.InstanceReportSource()
        instanceReportSource.ReportDocument = New Telerik.Reporting.Report() With {
            .Items = {New Telerik.Reporting.HtmlTextBox() With {.Value = "<h1>Hello World</h1><p>Sample HTML content</p>"}}
        }

        Dim reportProcessor As New ReportProcessor()
        Dim result = reportProcessor.RenderReport("PDF", instanceReportSource, Nothing)

        Using fs As New FileStream("output.pdf", FileMode.Create)
            fs.Write(result.DocumentBytes, 0, result.DocumentBytes.Length)
        End Using
    End Sub
End Class
$vbLabelText   $csharpLabel

Abordagem IronPDF:

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

class IronPdfExample
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>Sample HTML content</p>");
        pdf.SaveAs("output.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class IronPdfExample
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>Sample HTML content</p>");
        pdf.SaveAs("output.pdf");
    }
}
Imports IronPdf
Imports System

Class IronPdfExample
    Shared Sub Main()
        Dim renderer = New ChromePdfRenderer()
        Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>Sample HTML content</p>")
        pdf.SaveAs("output.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

A versão Telerik exige criar um TypeReportSource, um InstanceReportSource, um objeto Report com um HtmlTextBox, um ReportProcessor e gerenciamento manual de fluxo de arquivos. O ChromePdfRenderer do IronPDF lida com todo o processo em três linhas de código.

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

Converter URLs em PDF

A conversão de URL para PDF revela uma lacuna significativa de funcionalidade no Telerik Reporting.

Abordagem de Relatórios da Telerik:

// NuGet: Install-Package Telerik.Reporting
using Telerik.Reporting;
using Telerik.Reporting.Processing;
using System.Net;

class TelerikExample
{
    static void Main()
    {
        string htmlContent;
        using (var client = new WebClient())
        {
            htmlContent = client.DownloadString("https://example.com");
        }

        var report = new Telerik.Reporting.Report();
        var htmlTextBox = new Telerik.Reporting.HtmlTextBox()
        {
            Value = htmlContent
        };
        report.Items.Add(htmlTextBox);

        var instanceReportSource = new Telerik.Reporting.InstanceReportSource();
        instanceReportSource.ReportDocument = report;

        var reportProcessor = new ReportProcessor();
        var result = reportProcessor.RenderReport("PDF", instanceReportSource, null);

        using (var fs = new System.IO.FileStream("webpage.pdf", System.IO.FileMode.Create))
        {
            fs.Write(result.DocumentBytes, 0, result.DocumentBytes.Length);
        }
    }
}
// NuGet: Install-Package Telerik.Reporting
using Telerik.Reporting;
using Telerik.Reporting.Processing;
using System.Net;

class TelerikExample
{
    static void Main()
    {
        string htmlContent;
        using (var client = new WebClient())
        {
            htmlContent = client.DownloadString("https://example.com");
        }

        var report = new Telerik.Reporting.Report();
        var htmlTextBox = new Telerik.Reporting.HtmlTextBox()
        {
            Value = htmlContent
        };
        report.Items.Add(htmlTextBox);

        var instanceReportSource = new Telerik.Reporting.InstanceReportSource();
        instanceReportSource.ReportDocument = report;

        var reportProcessor = new ReportProcessor();
        var result = reportProcessor.RenderReport("PDF", instanceReportSource, null);

        using (var fs = new System.IO.FileStream("webpage.pdf", System.IO.FileMode.Create))
        {
            fs.Write(result.DocumentBytes, 0, result.DocumentBytes.Length);
        }
    }
}
Imports Telerik.Reporting
Imports Telerik.Reporting.Processing
Imports System.Net
Imports System.IO

Class TelerikExample
    Shared Sub Main()
        Dim htmlContent As String
        Using client As New WebClient()
            htmlContent = client.DownloadString("https://example.com")
        End Using

        Dim report As New Telerik.Reporting.Report()
        Dim htmlTextBox As New Telerik.Reporting.HtmlTextBox() With {
            .Value = htmlContent
        }
        report.Items.Add(htmlTextBox)

        Dim instanceReportSource As New Telerik.Reporting.InstanceReportSource()
        instanceReportSource.ReportDocument = report

        Dim reportProcessor As New ReportProcessor()
        Dim result = reportProcessor.RenderReport("PDF", instanceReportSource, Nothing)

        Using fs As New FileStream("webpage.pdf", FileMode.Create)
            fs.Write(result.DocumentBytes, 0, result.DocumentBytes.Length)
        End Using
    End Sub
End Class
$vbLabelText   $csharpLabel

Abordagem IronPDF:

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

class IronPdfExample
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf("https://example.com");
        pdf.SaveAs("webpage.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

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

Class IronPdfExample
    Shared Sub Main()
        Dim renderer = New ChromePdfRenderer()
        Dim pdf = renderer.RenderUrlAsPdf("https://example.com")
        pdf.SaveAs("webpage.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

O Relatórios da Telerik não possui um método integrado de URL para PDF — você busca o HTML por conta própria (aqui via WebClient), e o motor do lado do servidor não executa JavaScript, portanto scripts externos e conteúdo dinâmico não são renderizados. O método RenderUrlAsPdf do IronPDF captura a página renderizada completa exatamente como aparece em um navegador.

Consulte a documentação sobre URLs para PDF para obter informações sobre autenticação e opções de cabeçalho personalizadas.

Implementando cabeçalhos e rodapés com números de página

Cabeçalhos e rodapés com numeração de páginas dinâmica é essencial para documentos profissionais. As abordagens de implementação diferem significativamente.

Abordagem de Relatórios da Telerik:

// NuGet: Install-Package Telerik.Reporting
using Telerik.Reporting;
using Telerik.Reporting.Processing;
using Telerik.Reporting.Drawing;

class TelerikExample
{
    static void Main()
    {
        var report = new Telerik.Reporting.Report();

        // Add page header
        var pageHeader = new Telerik.Reporting.PageHeaderSection();
        pageHeader.Height = new Unit(0.5, UnitType.Inch);
        pageHeader.Items.Add(new Telerik.Reporting.TextBox()
        {
            Value = "Document Header",
            Location = new PointU(0, 0),
            Size = new SizeU(new Unit(6, UnitType.Inch), new Unit(0.3, UnitType.Inch))
        });
        report.PageHeaderSection = pageHeader;

        // Add page footer
        var pageFooter = new Telerik.Reporting.PageFooterSection();
        pageFooter.Height = new Unit(0.5, UnitType.Inch);
        pageFooter.Items.Add(new Telerik.Reporting.TextBox()
        {
            Value = "Page {PageNumber} of {PageCount}",
            Location = new PointU(0, 0),
            Size = new SizeU(new Unit(6, UnitType.Inch), new Unit(0.3, UnitType.Inch))
        });
        report.PageFooterSection = pageFooter;

        // Add content
        var htmlTextBox = new Telerik.Reporting.HtmlTextBox()
        {
            Value = "<h1>Report Content</h1><p>This is the main content.</p>"
        };
        report.Items.Add(htmlTextBox);

        var instanceReportSource = new Telerik.Reporting.InstanceReportSource();
        instanceReportSource.ReportDocument = report;

        var reportProcessor = new ReportProcessor();
        var result = reportProcessor.RenderReport("PDF", instanceReportSource, null);

        using (var fs = new System.IO.FileStream("report_with_headers.pdf", System.IO.FileMode.Create))
        {
            fs.Write(result.DocumentBytes, 0, result.DocumentBytes.Length);
        }
    }
}
// NuGet: Install-Package Telerik.Reporting
using Telerik.Reporting;
using Telerik.Reporting.Processing;
using Telerik.Reporting.Drawing;

class TelerikExample
{
    static void Main()
    {
        var report = new Telerik.Reporting.Report();

        // Add page header
        var pageHeader = new Telerik.Reporting.PageHeaderSection();
        pageHeader.Height = new Unit(0.5, UnitType.Inch);
        pageHeader.Items.Add(new Telerik.Reporting.TextBox()
        {
            Value = "Document Header",
            Location = new PointU(0, 0),
            Size = new SizeU(new Unit(6, UnitType.Inch), new Unit(0.3, UnitType.Inch))
        });
        report.PageHeaderSection = pageHeader;

        // Add page footer
        var pageFooter = new Telerik.Reporting.PageFooterSection();
        pageFooter.Height = new Unit(0.5, UnitType.Inch);
        pageFooter.Items.Add(new Telerik.Reporting.TextBox()
        {
            Value = "Page {PageNumber} of {PageCount}",
            Location = new PointU(0, 0),
            Size = new SizeU(new Unit(6, UnitType.Inch), new Unit(0.3, UnitType.Inch))
        });
        report.PageFooterSection = pageFooter;

        // Add content
        var htmlTextBox = new Telerik.Reporting.HtmlTextBox()
        {
            Value = "<h1>Report Content</h1><p>This is the main content.</p>"
        };
        report.Items.Add(htmlTextBox);

        var instanceReportSource = new Telerik.Reporting.InstanceReportSource();
        instanceReportSource.ReportDocument = report;

        var reportProcessor = new ReportProcessor();
        var result = reportProcessor.RenderReport("PDF", instanceReportSource, null);

        using (var fs = new System.IO.FileStream("report_with_headers.pdf", System.IO.FileMode.Create))
        {
            fs.Write(result.DocumentBytes, 0, result.DocumentBytes.Length);
        }
    }
}
Imports Telerik.Reporting
Imports Telerik.Reporting.Processing
Imports Telerik.Reporting.Drawing
Imports System.IO

Class TelerikExample
    Shared Sub Main()
        Dim report As New Telerik.Reporting.Report()

        ' Add page header
        Dim pageHeader As New Telerik.Reporting.PageHeaderSection()
        pageHeader.Height = New Unit(0.5, UnitType.Inch)
        pageHeader.Items.Add(New Telerik.Reporting.TextBox() With {
            .Value = "Document Header",
            .Location = New PointU(0, 0),
            .Size = New SizeU(New Unit(6, UnitType.Inch), New Unit(0.3, UnitType.Inch))
        })
        report.PageHeaderSection = pageHeader

        ' Add page footer
        Dim pageFooter As New Telerik.Reporting.PageFooterSection()
        pageFooter.Height = New Unit(0.5, UnitType.Inch)
        pageFooter.Items.Add(New Telerik.Reporting.TextBox() With {
            .Value = "Page {PageNumber} of {PageCount}",
            .Location = New PointU(0, 0),
            .Size = New SizeU(New Unit(6, UnitType.Inch), New Unit(0.3, UnitType.Inch))
        })
        report.PageFooterSection = pageFooter

        ' Add content
        Dim htmlTextBox As New Telerik.Reporting.HtmlTextBox() With {
            .Value = "<h1>Report Content</h1><p>This is the main content.</p>"
        }
        report.Items.Add(htmlTextBox)

        Dim instanceReportSource As New Telerik.Reporting.InstanceReportSource()
        instanceReportSource.ReportDocument = report

        Dim reportProcessor As New ReportProcessor()
        Dim result = reportProcessor.RenderReport("PDF", instanceReportSource, Nothing)

        Using fs As New FileStream("report_with_headers.pdf", FileMode.Create)
            fs.Write(result.DocumentBytes, 0, result.DocumentBytes.Length)
        End Using
    End Sub
End Class
$vbLabelText   $csharpLabel

Abordagem IronPDF:

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

class IronPdfExample
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        // Configure header and footer
        renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
        {
            HtmlFragment = "<div style='text-align:center'>Document Header</div>"
        };

        renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
        {
            HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages}</div>"
        };

        var pdf = renderer.RenderHtmlAsPdf("<h1>Report Content</h1><p>This is the main content.</p>");
        pdf.SaveAs("report_with_headers.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
using System;

class IronPdfExample
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        // Configure header and footer
        renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
        {
            HtmlFragment = "<div style='text-align:center'>Document Header</div>"
        };

        renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
        {
            HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages}</div>"
        };

        var pdf = renderer.RenderHtmlAsPdf("<h1>Report Content</h1><p>This is the main content.</p>");
        pdf.SaveAs("report_with_headers.pdf");
    }
}
Imports IronPdf
Imports IronPdf.Rendering
Imports System

Class IronPdfExample
    Shared Sub Main()
        Dim renderer As New ChromePdfRenderer()

        ' Configure header and footer
        renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter() With {
            .HtmlFragment = "<div style='text-align:center'>Document Header</div>"
        }

        renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter() With {
            .HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages}</div>"
        }

        Dim pdf = renderer.RenderHtmlAsPdf("<h1>Report Content</h1><p>This is the main content.</p>")
        pdf.SaveAs("report_with_headers.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

O Relatórios da Telerik requer a criação de objetos PageHeaderSection e PageFooterSection, configuração de medições Unit, definição de propriedades Location e Size, e gerenciamento de itens TextBox com coordenadas específicas. A abordagem baseada em HTML do IronPDF usa estilização CSS familiar e placeholders simples como {page} e {total-pages}.

Saiba mais sobre as opções de cabeçalho e rodapé na documentação de cabeçalhos e rodapés .

Referência de mapeamento da API de relatórios da Telerik para o IronPDF

Este mapeamento acelera a migração ao mostrar equivalentes diretos da API:

Relatórios da Telerik IronPDF
Report classe ChromePdfRenderer
ReportProcessor renderer.RenderHtmlAsPdf()
ReportSource String ou arquivo HTML
.trdp / .trdx arquivos Modelos HTML/CSS
ReportParameter Interpolação de strings / Razor
ReportDataSource vinculação de dados em C#
RenderReport("PDF") RenderHtmlAsPdf()
Export() pdf.SaveAs()
TextBox item de relatório HTML ,

,

Table item de relatório HTML
PictureBox HTML
PageSettings RenderingOptions

Problemas e soluções comuns em migrações

Problema 1: Definições de relatório (arquivos .trdp/.trdx)

O Telerik Reporting utiliza definições de relatório XML proprietárias que não podem ser convertidas diretamente.

Solução: Converter para modelos HTML abrindo o relatório no designer, documentando o layout, as vinculações de dados e a formatação e, em seguida, recriando-os como modelos HTML/CSS. Utilize o Razor para vinculação de dados em cenários complexos.

Problema 2: Vinculação da fonte de dados

Telerik Reporting usa SqlDataSource e fontes de dados de objeto com vinculação de expressão.

Solução: Obter dados em C# e associá-los ao HTML:

var data = await dbContext.Orders.ToListAsync();
var html = $"<table>{string.Join("", data.Select(d => $"<tr><td>{d.Name}</td></tr>"))}</table>";
var data = await dbContext.Orders.ToListAsync();
var html = $"<table>{string.Join("", data.Select(d => $"<tr><td>{d.Name}</td></tr>"))}</table>";
Dim data = Await dbContext.Orders.ToListAsync()
Dim html = $"<table>{String.Join("", data.Select(Function(d) $"<tr><td>{d.Name}</td></tr>"))}</table>"
$vbLabelText   $csharpLabel

Problema 3: Parâmetros do relatório

Telerik Reporting usa ReportParameter com interface de usuário de parâmetro embutida.

Solução: Passe os parâmetros diretamente para a geração do HTML:

public string GenerateReport(string customerId, DateTime fromDate)
{
    return $"<h1>Report for {customerId}</h1><p>From: {fromDate:d}</p>";
}
public string GenerateReport(string customerId, DateTime fromDate)
{
    return $"<h1>Report for {customerId}</h1><p>From: {fromDate:d}</p>";
}
Public Function GenerateReport(customerId As String, fromDate As DateTime) As String
    Return $"<h1>Report for {customerId}</h1><p>From: {fromDate:d}</p>"
End Function
$vbLabelText   $csharpLabel

Edição 4: Recursos interativos

O Telerik Reporting oferece recursos de detalhamento, classificação e filtragem no visualizador.

Solução: O IronPDF gera PDFs estáticos. Para maior interatividade, mantenha os dados na sua interface web e gere o PDF quando o usuário clicar em "Exportar". Isso separa as responsabilidades entre a exploração interativa de dados e a geração do documento.

Lista de verificação para migração de relatórios da Telerik

Tarefas pré-migração

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

grep -r "using Telerik.Reporting" --include="*.cs" .
grep -r "Report\|ReportProcessor" --include="*.cs" .
grep -r "using Telerik.Reporting" --include="*.cs" .
grep -r "Report\|ReportProcessor" --include="*.cs" .
SHELL

Documente as fontes de dados e os parâmetros, faça capturas de tela dos layouts de relatório atuais para referência visual e identifique os componentes de relatório compartilhados que podem ser convertidos em modelos HTML reutilizáveis.

Tarefas de atualização de código

  1. Remova os pacotes NuGet da Telerik.
  2. Instale o pacote NuGet do IronPDF
  3. Converter arquivos .trdx para modelos HTML
  4. Substituir ReportProcessor por ChromePdfRenderer
  5. Atualize a vinculação de dados para interpolação de strings ou Razor.
  6. Converter cabeçalhos/rodapés para HTML usando HtmlHeaderFooter
  7. Adicionar inicialização de licença na inicialização

Testes pós-migração

Após a migração, verifique os seguintes aspectos:

  • Compare visualmente a saída em PDF com os relatórios originais.
  • Verificar a exatidão dos dados nos PDFs gerados
  • Testar a paginação para documentos com várias páginas
  • Verifique se os cabeçalhos/rodapés aparecem corretamente em todas as páginas.
  • Realizar testes de desempenho para cenários de alto volume

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

A migração do Relatórios da Telerik para o IronPDF oferece diversas vantagens para equipes focadas na geração de PDFs:

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. O suporte completo a CSS3 e JavaScript significa que seus designs da web são convertidos diretamente para PDF.

Licenciamento simplificado: o IronPDF oferece licenciamento por desenvolvedor sem exigir a compra de um pacote completo. Para equipes que precisam apenas da geração de PDFs, isso representa uma economia significativa de custos.

Tecnologias Web padrão: HTML, CSS e JavaScript são habilidades que todo desenvolvedor web possui. Sem formatos de modelos proprietários ou ferramentas de design especializadas para aprender.

Implantação com menor impacto: Sem a infraestrutura de serviço de relatórios e componentes de design, as implantações são mais simples e rápidas.

Desenvolvimento Ativo: As atualizações regulares do IronPDF acompanham as versões atuais do .NET, assim, projetos em .NET moderno continuam suportados sem esperar por um lançamento trimestral de relatórios.

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.

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 Iron

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