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
Installez IronPDF:
# Install IronPDF(hosted on nuget.org)
dotnet add package IronPdf
# Install IronPDF(hosted on nuget.org)
dotnet add package IronPdf
É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
É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"
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
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
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
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
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
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
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>"
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
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" .
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
- Supprimer les paquets NuGet de Telerik
- Installez le package NuGet IronPDF
- Convertir les fichiers
.trdxen modèles HTML - Remplacer
ReportProcessorparChromePdfRenderer - Mise à jour de la liaison de données vers l'interpolation de chaînes ou Razor
- Convertir les en-têtes/pieds de page en HTML à l'aide de
HtmlHeaderFooter - 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.

