Saltar al pie de página
GUíAS DE MIGRACIóN

Cómo migrar de Telerik Reporting a IronPDF en C#

Telerik Reporting es una potente plataforma de generación de informes empresariales que ha servido a los desarrolladores .NET para crear informes interactivos con diseñadores visuales y funciones de desglose. Sin embargo, para los equipos cuya principal necesidad es la generación de PDF en lugar de una completa infraestructura de generación de informes, Telerik Reportinga menudo representa una sobrecarga significativa en costes de licencia, complejidad de implementación y huella en tiempo de ejecución.

Esta guía proporciona una ruta de migración completa de Telerik Reportinga IronPDF, con instrucciones paso a paso, comparaciones de código y ejemplos prácticos para desarrolladores .NET profesionales que estén evaluando esta transición.

Por qué migrar de Telerik Reporting

La decisión de migrar de Telerik Reportingsuele centrarse en adaptar las herramientas a los requisitos reales. Entre las principales razones por las que los equipos de desarrollo se plantean la migración se incluyen:

Licencia de paquete costosa: Telerik Reportingrequiere el paquete DevCraft (más de $1000 por desarrollador) o una licencia independiente. Para los equipos que solo necesitan generar PDF, esto representa una importante capacidad no utilizada.

Dependencia del Diseñador de informes: Telerik Reportingrequiere la instalación de extensiones de Visual Studio y componentes de tiempo de ejecución. Esto añade complejidad a los entornos de desarrollo y a las canalizaciones CI/CD.

Infraestructura compleja: Las implementaciones de producción pueden necesitar alojamiento de servicios de informes, cadenas de conexión y configuración de fuentes de datos, infraestructura que agrega una carga de mantenimiento para tareas sencillas de generación de PDF.

Formato propietario: Los formatos de archivo .trdp y .trdx lo encierran en el ecosistema Telerik. La migración o modificación de plantillas requiere herramientas de Telerik.

Tiempo de ejecución pesado: el espacio de implementación es sustancial para lo que pueden ser requisitos simples de conversión de HTML a PDF.

Suscripción anual: los costos continuos de actualizaciones y soporte se suman al costo total de propiedad.

Cuando Telerik Reportinges excesivo

Si utiliza Telerik Reportingprincipalmente para generar archivos PDF a partir de datos, es probable que esté pagando por funciones que no utiliza:

Usted necesita Telerik proporciona (sin usar)
PDF a partir de HTML Diseñador visual, drill-downs
Informes sencillos Visor interactivo, exportaciones
PDF del lado del servidor Controles de escritorio, motor de gráficos

IronPDF proporciona generación de PDF enfocada sin sobrecarga de informes empresariales.

IronPDFvs Telerik Reporting: Comparación de características

Comprender las diferencias arquitectónicas ayuda a los responsables técnicos a evaluar la inversión en migración:

Característica Telerik Reporting IronPDF
Enfoque Creación de informes con opción de exportación a PDF Generación completa de PDF a partir de HTML
Integración Seamless con aplicaciones ASP.NET Core Puede integrarse en cualquier aplicación .NET
Complejidad de configuración Requiere la instalación de un diseñador de informes Instalación sencilla de NuGet
Precios Parte del paquete comercial DevCraft Licencia independiente, más rentable para la generación autónoma de PDF
Generación de PDF Limitado a la exportación de informes Funciones completas con manipulación avanzada de PDF
Público objetivo Desarrolladores que necesitan soluciones centradas en informes Desarrolladores que necesitan soluciones flexibles de generación de PDF
Formato de la plantilla .trdp / .trdx HTML/CSS/Razor
Curva de aprendizaje Específico de Telerik Tecnologías web estándar
HTML a PDF Limitado Renderizado completo en Chromium
URL a PDF No
Soporte CSS Limitado CSS3 completo
JavaScript No ES2024 completo
Firmas digitales No
PDF/A No
Tamaño del tiempo de ejecución Sitio web de gran tamaño Más pequeño

Inicio rápido: Migración de Telerik Reportinga IronPDF

La migración puede comenzar inmediatamente con estos pasos básicos.

Paso 1: Sustituir paquetes NuGet

Elimine todos los paquetes de Telerik Reporting:

# Remove Telerik Reportingpackages
dotnet remove package Telerik.Reporting
dotnet remove package Telerik.Reporting.Services.AspNetCore
dotnet remove package Telerik.ReportViewer.Mvc
# Remove Telerik Reportingpackages
dotnet remove package Telerik.Reporting
dotnet remove package Telerik.Reporting.Services.AspNetCore
dotnet remove package Telerik.ReportViewer.Mvc
SHELL

Instalar IronPDF:

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

Paso 2: Actualizar los espacios de nombres

Sustituya los espacios de nombres Telerik por el espacio de nombres 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

Paso 3: Inicializar licencia

Añadir inicialización de licencia al inicio de la aplicación:

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

Ejemplos de migración de código

Convertir HTML a PDF

El caso de uso más común demuestra la diferencia arquitectónica entre estas bibliotecas PDF .NET.

Enfoque de los informes de 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

Enfoque 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

La versión de Telerik requiere la creación de un objeto TypeReportSource, un InstanceReportSource, un Report con un HtmlTextBox, un ReportProcessor y una gestión manual del flujo de archivos. ChromePdfRenderer deIronPDFmaneja todo el proceso con tres líneas de código.

Para situaciones avanzadas de conversión de HTML a PDF, consulte la Guía de conversión de HTML a PDF.

Convertir URL en PDF

La conversión de URL a PDF revela una importante carencia de capacidades en Telerik Reporting.

Enfoque de los informes de 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

Enfoque 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

Telerik Reporting no tiene capacidad nativa de URL a PDF. Debes obtener manualmente el contenido HTML usando WebClient, perdiendo CSS externo, ejecución de JavaScript y contenido dinámico en el proceso. El método RenderUrlAsPdf deIronPDFcaptura la página renderizada completa exactamente como aparece en un navegador.

Explore la URL a la documentación PDF para conocer las opciones de autenticación y encabezado personalizado.

Implementación de encabezados y pies de página con números de página

Los encabezados y pies de página con números de página dinámicos son esenciales para los documentos profesionales. Los enfoques de aplicación difieren significativamente.

Enfoque de los informes de 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

Enfoque 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

Telerik Reporting requiere crear objetos PageHeaderSection y PageFooterSection, configurar mediciones Unit, establecer propiedades Location y Size y administrar elementos TextBox con coordenadas específicas. El enfoque basado en HTML deIronPDFutiliza un estilo CSS familiar y marcadores de posición simples como {page} y {total-pages}.

Más información sobre las opciones de encabezado y pie de página en documentación sobre encabezados y pies de página.

Referencia de mapeo de la API de Telerik Reporting a IronPDF

Este mapeo acelera la migración al mostrar los equivalentes directos de las API:

Telerik Reporting IronPDF
Report clase ChromePdfRenderer
ReportProcessor renderer.RenderHtmlAsPdf()
ReportSource Cadena o archivo HTML
archivos .trdp / .trdx Plantillas HTML/CSS
ReportParameter Interpolación de cadenas / Razor
ReportDataSource Enlace de datos en C#
RenderReport("PDF") RenderHtmlAsPdf()
Export() pdf.SaveAs()
TextBox reportar elemento HTML <span>, <p>, <div>
Table reportar elemento HTML <table>
PictureBox HTML <img>
PageSettings RenderingOptions

Problemas comunes de migración y soluciones

Edición 1: Definiciones de informes (archivos .trdp/.trdx)

Telerik Reporting utiliza definiciones de informes XML patentadas que no se pueden convertir directamente.

Solución: Convertir a plantillas HTML abriendo el informe en el diseñador, documentando el diseño, los enlaces de datos y el formato y, a continuación, recreándolo como plantillas HTML/CSS. Utilice Razor para la vinculación de datos en escenarios complejos.

Número 2: Data Source Binding

Telerik Reporting utiliza SqlDataSource y fuentes de datos de objetos con enlace de expresiones.

Solución: Obtener datos en C# y enlazarlos a 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

Tema 3: Parámetros de informe

Telerik Reporting utiliza ReportParameter con interfaz de usuario de parámetros incorporada.

Solución: Pasar parámetros directamente a la generación 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

Número 4: Funciones interactivas

Telerik Reporting ofrece funciones de desglose, clasificación y filtrado en el visor.

Solución:IronPDFgenera archivos PDF estáticos. Para la interactividad, mantenga los datos en su interfaz de usuario web y genere el PDF cuando el usuario haga clic en "Exportar" Esto separa las preocupaciones entre la exploración interactiva de datos y la generación de documentos.

Lista de comprobación de la migración a Telerik Reporting

Tareas previas a la migración

Audite su código base para identificar todo el uso de 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 las fuentes de datos y los parámetros, haga capturas de pantalla de los diseños actuales de los informes como referencia visual e identifique los componentes compartidos de los informes que pueden convertirse en plantillas HTML reutilizables.

Tareas de actualización de código

  1. Eliminar paquetes NuGet de Telerik
  2. Instalación del paquete IronPdf NuGet
  3. Convertir archivos .trdx en plantillas HTML
  4. Reemplace ReportProcessor con ChromePdfRenderer
  5. Actualizar la vinculación de datos a la interpolación de cadenas o Razor
  6. Convierta encabezados y pies de página a HTML usando HtmlHeaderFooter
  7. Añadir inicialización de licencia al inicio

Pruebas posteriores a la migración

Tras la migración, verifique estos aspectos:

  • Comparar visualmente el resultado PDF con los informes originales
  • Verificar la exactitud de los datos en los PDF generados
  • Prueba de paginación para documentos de varias páginas
  • Comprobar que los encabezados/pies de página aparecen correctamente en todas las páginas
  • Realización de pruebas de rendimiento para escenarios de gran volumen

Beneficios clave de migrar a IronPDF

Pasar de Telerik ReportingaIronPDFofrece varias ventajas a los equipos centrados en la generación de PDF:

Motor de renderizado moderno de Chromium:IronPDFutiliza el mismo motor de renderizado que Google Chrome, lo que garantiza que los archivos PDF se representen exactamente como aparece el contenido en los navegadores modernos. Gracias a la compatibilidad total con CSS3 y JavaScript, tus diseños web se traducen directamente a PDF.

Licencias simplificadas:IronPDFofrece licencias por desarrollador sin necesidad de comprar una suite completa. Para los equipos que solo necesitan generar PDF, esto supone un importante ahorro de costes.

Tecnologías web estándar: HTML, CSS y JavaScript son habilidades que todo desarrollador web posee. No hay que aprender formatos de plantilla propietarios ni herramientas de diseño especializadas.

Huella de implementación más pequeña: sin infraestructura de servicio de informes ni componentes de diseño, las implementaciones son más simples y rápidas.

Desarrollo activo: a medida que aumenta la adopción de .NET 10 y C# 14 hasta 2026, las actualizaciones periódicas deIronPDFgarantizan la compatibilidad con las versiones actuales y futuras de .NET .

Curtis Chau
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien ...

Leer más

Equipo de soporte de Iron

Estamos disponibles online las 24 horas, 5 días a la semana.
Chat
Email
Llámame