IRONSOFTWAREHOME
VÍDEOS

Como incorporar imagens com URIs de dados em C# | IronPDF

Curtis Chau
Curtis Chau
Updated: 19 de julho de 2026

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ê precisaA Telerik fornece (não utilizado)
PDF a partir de HTMLDesigner visual, detalhamento
Relatórios simplesVisualizador interativo, exportações
PDFs do lado do servidorControles 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:

RecursoRelatórios da TelerikIronPDF
FocoCriação de relatórios com opção de exportação para PDFGeração completa de PDFs a partir de HTML
IntegraçãoIntegração perfeita com aplicações ASP.NET CorePode ser integrado a qualquer aplicação .NET.
Complexidade de configuraçãoRequer a instalação de um editor de relatórios.Instalação simples do NuGet
PreçosParte do pacote comercial DevCraftLicenciamento separado, mais econômico para geração independente de PDFs.
Geração de PDFLimitado a relatar exportaçõesCompleto com recursos avançados de manipulação de PDF.
Público-alvoDesenvolvedores que precisam de soluções centradas em relatóriosDesenvolvedores 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 AprendizagemEspecífico da Telerik (linguagem de expressão, seções)Tecnologias web padrão
HTML para PDFLado do servidor via HtmlTextBox (HTML/CSS limitado)Renderização completa do Chromium
URL para PDFNão embutido (busque HTML por si mesmo)Sim
Suporte a CSSLimitado (seletores semelhantes a CSS no designer)CSS3 completo
JavaScript no tempo de renderizaçãoNão (o motor do servidor não executa JS)ES2024 completo
Assinaturas digitaisSim (X.509 / .PFX via informações do dispositivo PDF)Sim
PDF/APDF/A-1b, PDF/A-2b, PDF/A-3bPDF/A-3
Tamanho de tempo de execuçãoGrande (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
SHELL

Instale o 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;

Etapa 3: Inicializar a licença

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

IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

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

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

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

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

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

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

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 TelerikIronPDF
Report classeChromePdfRenderer
ReportProcessorrenderer.RenderHtmlAsPdf()
ReportSourceString ou arquivo HTML
.trdp / .trdx arquivosModelos HTML/CSS
ReportParameterInterpolação de strings / Razor
ReportDataSourcevinculação de dados em C#
RenderReport("PDF")RenderHtmlAsPdf()
Export()pdf.SaveAs()
TextBox item de relatórioHTML <span>, <p>, <div>
Table item de relatórioHTML <table>
PictureBoxHTML <img>
PageSettingsRenderingOptions

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

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

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

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.