Passer au contenu du pied de page
VIDéOS

Comment intégrer des images avec des URI de données en C# | IronPDF

Telerik Reporting est une puissante plateforme de reporting d'entreprise qui a bien servi les développeurs .NET pour la création de rapports interactifs avec des concepteurs visuels et des capacités d'exploration. Cependant, pour les équipes dont le besoin principal est la génération de PDF plutôt qu'une infrastructure de reporting complète, Rapports Telerikreprésente souvent des frais généraux importants en termes de coûts de licence, de complexité de déploiement et d'empreinte d'exécution.

Ce guide fournit un chemin de migration complet de Rapports Telerikvers IronPDF, avec des instructions étape par étape, des comparaisons de code et des exemples pratiques pour les développeurs .NET professionnels qui évaluent cette transition.

Pourquoi migrer de Telerik Reporting

La décision de migrer de Rapports Telerikest généralement centrée sur l'adaptation de votre outil à vos besoins réels. Les principales raisons pour lesquelles les équipes de développement envisagent la migration sont les suivantes

Licence par Développeur : Rapports Telerikautonome commence à environ 685 $ par développeur, et le package complet DevCraft commence à environ 1 763 $ (2026 T1, ComponentSource). Les deux sont vendus soit comme perpétuels + 1 an de maintenance ou en abonnement annuel. Pour les équipes qui n'ont besoin que de générer des PDF, il s'agit là d'une importante capacité inutilisée.

Dépendance du concepteur de rapports : Rapports Teleriknécessite le concepteur autonome, Web ou intégré à Visual Studio ainsi que les assemblages d'exécution extraits du flux privé NuGet de Telerik (https://nuget.telerik.com/v3/index.json, clé de licence requise). Ces outils ajoutent de la complexité aux environnements de développement et aux pipelines CI/CD.

Infrastructure complexe : Pour les scénarios de visionneuse HTML5, vous hébergez également un service REST Reporting (Telerik.Reporting.Services.AspNetCore) avec stockage, configuration du résolveur et des scripts de visionneuse—une infrastructure qui ajoute une charge de maintenance pour les tâches simples de génération de PDF.

Format propriétaire : Les définitions de rapport XML .trdp et .trdx (format propre à Telerik — pas RDL/RDLC, qui n'est pas pris en charge) vous enferment dans l'écosystème Telerik. La migration ou la modification des modèles nécessite l'utilisation de l'outil Telerik.

Exécution Lourde : Grande empreinte de déploiement pour ce qui peut être une simple conversion de HTML en PDF, plus des DLLs de rendu optionnelles pour DOCX/XLSX/PPTX/XPS.

Maintenance Renouvelable : Même avec une licence perpétuelle, les mises à jour continues, les corrections et le support nécessitent le renouvellement de l'abonnement de maintenance.

Quand Rapports Telerikest dépassé

Si vous utilisez Rapports Telerikprincipalement pour générer des PDF à partir de données, vous payez probablement pour des fonctionnalités qui ne sont pas utilisées :

Vous avez besoin de Telerik Provides (non utilisé)
PDF à partir de HTML Concepteur visuel, forage
Rapports simples Visionneuse interactive, exportations
PDF côté serveur Contrôles de bureau, moteur graphique

IronPDF permet de générer des PDF de manière ciblée, sans les frais généraux liés à la production de rapports d'entreprise.

IronPDF vs Rapports Telerik: Comparaison des fonctionnalités

La compréhension des différences architecturales aide les décideurs techniques à évaluer l'investissement dans la migration :

Fonction Rapports Telerik IronPDF
Focus Création de rapports avec option d'exportation au format PDF Génération complète de PDF à partir de HTML
Intégration Transparence avec les applications ASP.NET Core Peut être intégré dans n'importe quelle application .NET
Complexité de l'installation Nécessite l'installation d'un concepteur de rapports Installation simple de NuGet
Tarification Fait partie de la suite commerciale DevCraft Licence distincte, plus rentable pour la génération autonome de PDF
Génération de PDF Limité aux exportations de rapports Fonctionnalités complètes avec manipulation avancée des PDF
Public cible Développeurs ayant besoin de solutions centrées sur les rapports Développeurs ayant besoin de solutions flexibles de génération de PDF
Format du modèle .trdp / .trdx (XML; pas RDL/RDLC) HTML/CSS/Razor
Courbe d'apprentissage Spécifique à Telerik (langage d'expression, sections) Technologies web standard
HTML à PDF Côté serveur via HtmlTextBox (HTML/CSS limité) Rendu complet de Chromium
URL vers PDF Non intégré (récupérez vous-même le HTML) Oui
Support CSS Limité (sélecteurs de type CSS dans le concepteur) CSS3 complet
JavaScript au moment du rendu Non (le moteur serveur n'exécute pas JS) ES2024 complet
Signatures numériques Oui (X.509 / .PFX via info périphérique PDF) Oui
PDF/A PDF/A-1b, PDF/A-2b, PDF/A-3b PDF/A-3
Taille du runtime Lourd (moteur + DLLs de rendu par format) Plus petit

Démarrage rapide : Migration de Rapports Telerikvers IronPDF

La migration peut commencer immédiatement grâce à ces étapes fondamentales.

Étape 1 : Remplacer les paquets NuGet

Supprimez tous les paquets Rapports Telerik:

# Remove Rapports Telerikpackages (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 Rapports Telerikpackages (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

Installez IronPDF:

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

Étape 2 : Mise à jour des espaces de noms

Remplacer les espaces de noms Telerik par l'espace de nom 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

Étape 3 : initialisation de la licence

Ajouter l'initialisation de la licence au démarrage de l'application :

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

Exemples de migration de code

Conversion de HTML en PDF

Le cas d'utilisation le plus courant démontre la différence architecturale entre ces bibliothèques PDF .NET.

Approche de reporting 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

Approche 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 version Telerik nécessite la création d'un TypeReportSource, d'un InstanceReportSource, d'un objet Report avec un HtmlTextBox, un ReportProcessor, et une gestion manuelle des flux de fichiers. L'ChromePdfRenderer de IronPDF gère tout le processus avec trois lignes de code.

Pour les scénarios avancés de conversion de HTML en PDF, voir le guide de conversion de HTML en PDF.

Conversion des URL en PDF

La conversion d'URL en PDF révèle une lacune importante dans les capacités de Telerik Reporting.

Approche de reporting 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

Approche 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 n'a pas de méthode intégrée URL-vers-PDF—vous récupérez le HTML vous-même (ici via WebClient), et le moteur côté serveur n'exécute pas JavaScript, donc les scripts externes et le contenu dynamique ne sont pas rendus. La méthode RenderUrlAsPdf de IronPDF capture la page rendue complète exactement telle qu'elle apparaît dans un navigateur.

Explorez la URL vers la documentation PDF pour l'authentification et les options d'en-tête personnalisées.

Implémentation d'en-têtes et de pieds de page avec des numéros de page

Des en-têtes et des pieds de page avec des numéros de page dynamiques sont essentiels pour les documents professionnels. Les approches de mise en œuvre diffèrent considérablement.

Approche de reporting 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

Approche 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 nécessite la création d'objets PageHeaderSection et PageFooterSection, la configuration des mesures Unit, le réglage des propriétés Location et Size, et la gestion des éléments TextBox avec des coordonnées spécifiques. L'approche basée sur HTML de IronPDF utilise un style CSS familier et des espaces réservés simples comme {page} et {total-pages}.

Pour en savoir plus sur les options d'en-tête et de pied de page, consultez la documentation sur les en-têtes et les pieds de page.

Rapports TelerikAPI to IronPDF Mapping Reference (Référence de mappage de l'API de reporting vers IronPDF)

Cette cartographie accélère la migration en indiquant les équivalents directs des API :

Rapports Telerik IronPDF
Report classe ChromePdfRenderer
ReportProcessor renderer.RenderHtmlAsPdf()
ReportSource Chaîne ou fichier HTML
.trdp / .trdx fichiers Modèles HTML/CSS
ReportParameter Interpolation de chaînes de caractères / Razor
ReportDataSource Liaison de données C#
RenderReport("PDF") RenderHtmlAsPdf()
Export() pdf.SaveAs()
TextBox élément de rapport HTML <span>, <p>, <div>
Table élément de rapport HTML <table>
PictureBox HTML <img>
PageSettings RenderingOptions

Problèmes de migration courants et solutions

Édition 1 : Définitions des rapports (fichiers .trdp/.trdx)

Telerik Reporting utilise des définitions de rapport XML propriétaires qui ne peuvent pas être converties directement.

Solution: Convertir en modèles HTML en ouvrant le rapport dans le concepteur, en documentant la mise en page, les liaisons de données et le formatage, puis en recréant des modèles HTML/CSS. Utilisez Razor pour la liaison de données dans des scénarios complexes.

Edition 2 : Liaison avec la source de données

Telerik Reporting utilise SqlDataSource et des sources de données d'objets avec liaison par expression.

Solution: Récupérer des données en C# et les lier à 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

Sujet 3 : Paramètres des rapports

Telerik Reporting utilise ReportParameter avec une interface utilisateur de paramètre intégrée.

Solution: Passer les paramètres directement à la génération 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

Edition 4 : Fonctionnalités interactives

Telerik Reporting permet d'effectuer des recherches, des tris et des filtrages dans la visionneuse.

Solution:IronPDF génère des PDF statiques. Pour l'interactivité, conservez les données dans votre interface web et générez un PDF lorsque l'utilisateur clique sur "Exporter" Cela permet de séparer les préoccupations entre l'exploration interactive des données et la génération de documents.

Rapports Telerik- Liste de contrôle pour la migration

Tâches préalables à la migration

Auditez votre base de code pour identifier toutes les utilisations de Rapports Telerik:

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

Documentez les sources de données et les paramètres, faites des captures d'écran des mises en page actuelles des rapports pour référence visuelle et identifiez les composants de rapport partagés qui peuvent être convertis en modèles HTML réutilisables.

Tâches de mise à jour du code

  1. Supprimer les paquets NuGet de Telerik
  2. Installez le package NuGet IronPDF
  3. Convertir les fichiers .trdx en modèles HTML
  4. Remplacer ReportProcessor par ChromePdfRenderer
  5. Mise à jour de la liaison de données vers l'interpolation de chaînes ou Razor
  6. Convertir les en-têtes/pieds de page en HTML à l'aide de HtmlHeaderFooter
  7. Ajouter l'initialisation de la licence au démarrage

Test de post-migration

Après la migration, vérifiez ces aspects :

  • Comparez visuellement la sortie PDF avec les rapports originaux
  • Vérifier l'exactitude des données dans les PDF générés
  • Test de pagination pour les documents de plusieurs pages
  • Vérifier que les en-têtes/pieds de page apparaissent correctement sur toutes les pages
  • Effectuer des tests de performance pour des scénarios à haut volume

Avantages clés de la migration vers IronPDF

Le passage de Rapports Telerikà IronPDF présente plusieurs avantages pour les équipes axées sur la génération de PDF :

Moteur de rendu Chromium moderne :IronPDF utilise le même moteur de rendu que Google Chrome, garantissant ainsi que les PDF s'affichent exactement comme leur contenu apparaît dans les navigateurs modernes. Grâce à la prise en charge complète de CSS3 et de JavaScript, vos conceptions web sont directement traduites en PDF.

Licences simplifiées :IronPDF propose des licences par développeur sans nécessiter l'achat d'une Suite complète. Pour les équipes qui n'ont besoin que de générer des PDF, cela représente une économie importante.

Technologies web standard : HTML, CSS et JavaScript sont des compétences que tout développeur web possède. Il n'est pas nécessaire d'apprendre des formats de modèles propriétaires ou des outils de conception spécialisés.

Empreinte de déploiement réduite : sans infrastructure de service de rapports ni composants de conception, les déploiements sont plus simples et plus rapides.

Développement Actif : Les mises à jour régulières de l'IronPDF suivent les versions actuelles de .NET, de sorte que les projets sur .NET moderne restent pris en charge sans attendre une sortie trimestrielle de rapport.

Veuillez noterTelerik est une marque déposée de son propriétaire respectif. Ce site n'est pas affilié à, approuvé par, ou sponsorisé par Progress Software. Tous les noms de produits, logos et marques sont la propriété de leurs propriétaires respectifs. Les comparaisons sont à titre informatif uniquement et reflètent les informations publiquement disponibles au moment de l'écriture.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite

Équipe de soutien Iron

Nous sommes en ligne 24 heures sur 24, 5 jours sur 7.
Chat
Email
Appelez-moi