Comment migrer de FastReport vers IronPDF en C#
FastReport.NET est une solution de reporting puissante conçue pour l'écosystème .NET, dotée d'un concepteur de rapport visuel et d'une architecture basée sur les bandes pour la création de rapports complexes axés sur les données. Cependant, FastReportprésente des défis importants pour les flux de travail modernes de génération de PDF : une dépendance au concepteur de rapport qui limite le développement en code first, une courbe d'apprentissage abrupte autour des concepts basés sur les bandes (DataBand, PageHeaderBand), un support CSS limité utilisant un formatage propriétaire, une liaison de données complexe avec RegisterData() boilerplate, et des packages NuGet fragmentés nécessitant des installations multiples. Ce guide complet propose un chemin de migration pas à pas de FastReportvers IronPDF, une bibliothèque PDF généraliste qui s'appuie sur les technologies web HTML/CSS pour générer des documents de manière flexible et programmatique.
Pourquoi migrer de FastReportà IronPDF?
La spécialisation de FastReport.NET dans le domaine du reporting crée des frictions pour les équipes de développement qui ont besoin d'une génération PDF polyvalente. Il est essentiel de comprendre ces différences architecturales pour planifier votre migration.
Les défis de FastReport
-
Dépendance au concepteur de rapports : la création de mises en page complexes nécessite un concepteur visuel ou une connaissance approfondie de la structure des fichiers .frx ; elle ne convient pas aux approches de développement axées sur le code.
-
Courbe d'apprentissage abrupte : l'architecture basée sur des bandes de FastReport(DataBand, PageHeaderBand, PageFooterBand) nécessite la compréhension de concepts spécifiques aux rapports qui ne sont pas transposables à d'autres technologies.
-
Prise en charge CSS limitée : le style standard du Web n'est pas pris en charge nativement ; le stylisme est réalisé à l'aide du format propriétaire de FastReportplutôt qu'à l'aide des feuilles de style CSS habituelles.
-
Liaison de données complexe : les connexions RegisterData() et DataSource ajoutent du code répétitif pour les scénarios de génération de PDF simples.
-
Packages fragmentés : plusieurs packages NuGet sont nécessaires pour une fonctionnalité complète (FastReport.OpenSource, FastReport.OpenSource.Export.PdfSimple, etc.).
- Complexité des licences : la version open source possède des fonctionnalités limitées ; la version commerciale est nécessaire pour le cryptage des PDF, la signature numérique et l'intégration des polices.
Comparaison des architectures
| Aspect | FastReport | IronPDF |
|---|---|---|
| Approche de conception | Concepteur visuel + fichiers .frx | HTML/CSS (technologies web) |
| Courbe d'apprentissage | Steep (concepts basés sur des groupes) | Douceur (connaissances en HTML/CSS) |
| Liaison de données | RegisterData(), DataBand | Interpolation de chaînes, Razor, templating |
| Support CSS | Limité | CSS3 complet avec Flexbox/Grid |
| Modèle de paquet | Plusieurs paquets | Paquet unique (toutes les fonctionnalités) |
| Moteur de rendu | Sur mesure | Dernière version de Chromium |
| Manipulation de PDF | Axé sur l'exportation | Complet (fusion, division, sécurité, formulaires) |
| Moderne .NET | .NET Standard 2.0 | .NET 6/7/8/9+ natif |
Avantages principaux de la migration
- Technologies Web : Utilisez HTML/CSS, une technologie familière, plutôt que des mises en page propriétaires basées sur des bandes.
- Développement axé sur le code : générer des PDF par programmation sans dépendance à un concepteur visuel
- Package unique : un seul package NuGet inclut toutes les fonctionnalités PDF
- Rendu moderne : Moteur Chromium de dernière génération pour un rendu CSS3 impeccable.
- Manipulation complète des PDF : fusion, fractionnement, sécurité, formulaires – et pas seulement exportation
Préparation de la migration
Prérequis
Assurez-vous que votre environnement répond à ces exigences :
- .NET Framework 4.6.2+ ou .NET Core 3.1 / .NET 5-9
- Visual Studio 2019+ ou VS Code avec l'extension C#
- Accès au Package Manager NuGet
- Clé de licenceIronPDF(essai gratuit disponible sur ironpdf.com)
Audit de l'utilisation de FastReport
Exécutez ces commandes dans votre répertoire de solutions pour identifier toutes les références à FastReport:
# Find all FastReportreferences
grep -r "FastReport\|\.frx\|PDFExport\|PDFSimpleExport\|DataBand\|RegisterData" --include="*.cs" --include="*.csproj" .
# Check NuGet packages
dotnet list package | grep FastReport
# Find all FastReportreferences
grep -r "FastReport\|\.frx\|PDFExport\|PDFSimpleExport\|DataBand\|RegisterData" --include="*.cs" --include="*.csproj" .
# Check NuGet packages
dotnet list package | grep FastReport
Documentez vos modèles de rapport
Avant la migration, répertoriez tous les fichiers .frx et leurs finalités :
- Nom et objectif du rapport
- Sources de données utilisées
- Configuration des en-têtes/pieds de page
- Exigences en matière de numérotation des pages
- Formatage ou style particulier
Comprendre le changement de paradigme
Le changement le plus important lors de la migration de FastReportversIronPDFest l'approche fondamentale de la conception. FastReportutilise une conception visuelle basée sur des bandes avec des fichiers de modèles .frx et des concepts propriétaires comme DataBand, PageHeaderBand et RegisterData().IronPDFutilise les technologies HTML/CSS-web que la plupart des développeurs connaissent déjà.
Cela signifie qu'il faut convertir les configurations des bandes FastReporten modèles HTML, remplacer RegisterData() par une liaison directe des données via une interpolation de chaîne ou des modèles Razor, et transformer PageHeaderBand/PageFooterBand en en-têtes et pieds de page basés sur HTML.
Processus de migration étape par étape
Étape 1 : Mise à jour des paquets NuGet
Supprimez tous les paquets FastReportet installezIronPDF:
# Remove all FastReportpackages
dotnet remove package FastReport.OpenSource
dotnet remove package FastReport.OpenSource.Export.PdfSimple
dotnet remove package FastReport.OpenSource.Web
dotnet remove package FastReport.OpenSource.Data.MsSql
# InstallIronPDF(includes all features)
dotnet add package IronPdf
# Remove all FastReportpackages
dotnet remove package FastReport.OpenSource
dotnet remove package FastReport.OpenSource.Export.PdfSimple
dotnet remove package FastReport.OpenSource.Web
dotnet remove package FastReport.OpenSource.Data.MsSql
# InstallIronPDF(includes all features)
dotnet add package IronPdf
Étape 2 : Mise à jour des références aux espaces de noms
Remplacer les espaces de noms FastReportparIronPDF:
// Remove these
using FastReport;
using FastReport.Export.PdfSimple;
using System.IO;
// Add this
using IronPdf;
// Remove these
using FastReport;
using FastReport.Export.PdfSimple;
using System.IO;
// Add this
using IronPdf;
Imports IronPdf
Étape 3 : configuration de la licence
// Add at application startup (Program.cs or Startup.cs)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
// Add at application startup (Program.cs or Startup.cs)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
' Add at application startup (Program.vb or Startup.vb)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
Référence complète de migration des API
Mappage des classes de base
| Classe FastReport | Équivalent d'IronPDF |
|---|---|
Report |
ChromePdfRenderer |
PDFExport |
ChromePdfRenderer + SecuritySettings |
PDFSimpleExport |
ChromePdfRenderer |
ReportPage |
HTML <body> ou <div> |
TextObject |
HTML <p>, <span>, <div> |
HTMLObject |
Rendu HTML direct |
PageHeaderBand |
HtmlHeaderFooter |
PageFooterBand |
HtmlHeaderFooter |
Mise en correspondance des méthodes
| Méthode FastReport | Équivalent d'IronPDF |
|---|---|
report.Load("template.frx") |
Fichier ou chaîne de caractères HTML |
report.RegisterData(data, "name") |
Interpolation de chaînes ou Razor |
report.Prepare() |
N/A |
report.Export(export, stream) |
pdf.SaveAs(path) |
Conversion de l'espace réservé au numéro de page
FastReport etIronPDFutilisent une syntaxe différente pour les numéros de page :
| FastReport | IronPDF |
|---|---|
[Page] |
{page} |
[TotalPages] |
{total-pages} |
Exemples de migration de code
Conversion HTML en PDF
Cet exemple démontre la différence fondamentale entre l'approche HTMLObject de FastReportet le rendu direct d'IronPDF.
Mise en œuvre de FastReport:
// NuGet: Install-Package FastReport.OpenSource
using FastReport;
using FastReport.Export.PdfSimple;
using System.IO;
class Program
{
static void Main()
{
using (Report report = new Report())
{
// Create HTML object
FastReport.HTMLObject htmlObject = new FastReport.HTMLObject();
htmlObject.Width = 500;
htmlObject.Height = 300;
htmlObject.Text = "<html><body><h1>Hello World</h1><p>This is a test PDF</p></body></html>";
// Prepare report
report.Prepare();
// Export to PDF
PDFSimpleExport pdfExport = new PDFSimpleExport();
using (FileStream fs = new FileStream("output.pdf", FileMode.Create))
{
report.Export(pdfExport, fs);
}
}
}
}
// NuGet: Install-Package FastReport.OpenSource
using FastReport;
using FastReport.Export.PdfSimple;
using System.IO;
class Program
{
static void Main()
{
using (Report report = new Report())
{
// Create HTML object
FastReport.HTMLObject htmlObject = new FastReport.HTMLObject();
htmlObject.Width = 500;
htmlObject.Height = 300;
htmlObject.Text = "<html><body><h1>Hello World</h1><p>This is a test PDF</p></body></html>";
// Prepare report
report.Prepare();
// Export to PDF
PDFSimpleExport pdfExport = new PDFSimpleExport();
using (FileStream fs = new FileStream("output.pdf", FileMode.Create))
{
report.Export(pdfExport, fs);
}
}
}
}
Imports FastReport
Imports FastReport.Export.PdfSimple
Imports System.IO
Class Program
Shared Sub Main()
Using report As New Report()
' Create HTML object
Dim htmlObject As New FastReport.HTMLObject()
htmlObject.Width = 500
htmlObject.Height = 300
htmlObject.Text = "<html><body><h1>Hello World</h1><p>This is a test PDF</p></body></html>"
' Prepare report
report.Prepare()
' Export to PDF
Dim pdfExport As New PDFSimpleExport()
Using fs As New FileStream("output.pdf", FileMode.Create)
report.Export(pdfExport, fs)
End Using
End Using
End Sub
End Class
Mise en œuvre d'IronPDF:
// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<html><body><h1>Hello World</h1><p>This is a test PDF</p></body></html>");
pdf.SaveAs("output.pdf");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<html><body><h1>Hello World</h1><p>This is a test PDF</p></body></html>");
pdf.SaveAs("output.pdf");
}
}
Imports IronPdf
Class Program
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<html><body><h1>Hello World</h1><p>This is a test PDF</p></body></html>")
pdf.SaveAs("output.pdf")
End Sub
End Class
FastReport nécessite la création d'un objet Report, un objet HTMLObject avec des dimensions fixes, la préparation du rapport et l'exportation via un flux - sept lignes de code avec des instructions d'utilisation.IronPDFpermet d'obtenir le même résultat en trois lignes avec un rendu HTML direct. Pour plus d'options, consultez la documentation HTML vers PDF.
Conversion d'URL en PDF
Cet exemple met en évidence le fait que FastReportnécessite un téléchargement HTML manuel alors qu'IronPDF gère le rendu des URL de manière native.
Mise en œuvre de FastReport:
// NuGet: Install-Package FastReport.OpenSource
using FastReport;
using FastReport.Export.PdfSimple;
using System.IO;
using System.Net;
class Program
{
static void Main()
{
// Download HTML content from URL
string htmlContent;
using (WebClient client = new WebClient())
{
htmlContent = client.DownloadString("https://example.com");
}
using (Report report = new Report())
{
FastReport.HTMLObject htmlObject = new FastReport.HTMLObject();
htmlObject.Width = 800;
htmlObject.Height = 600;
htmlObject.Text = htmlContent;
report.Prepare();
PDFSimpleExport pdfExport = new PDFSimpleExport();
using (FileStream fs = new FileStream("webpage.pdf", FileMode.Create))
{
report.Export(pdfExport, fs);
}
}
}
}
// NuGet: Install-Package FastReport.OpenSource
using FastReport;
using FastReport.Export.PdfSimple;
using System.IO;
using System.Net;
class Program
{
static void Main()
{
// Download HTML content from URL
string htmlContent;
using (WebClient client = new WebClient())
{
htmlContent = client.DownloadString("https://example.com");
}
using (Report report = new Report())
{
FastReport.HTMLObject htmlObject = new FastReport.HTMLObject();
htmlObject.Width = 800;
htmlObject.Height = 600;
htmlObject.Text = htmlContent;
report.Prepare();
PDFSimpleExport pdfExport = new PDFSimpleExport();
using (FileStream fs = new FileStream("webpage.pdf", FileMode.Create))
{
report.Export(pdfExport, fs);
}
}
}
}
Imports FastReport
Imports FastReport.Export.PdfSimple
Imports System.IO
Imports System.Net
Class Program
Shared Sub Main()
' Download HTML content from URL
Dim htmlContent As String
Using client As New WebClient()
htmlContent = client.DownloadString("https://example.com")
End Using
Using report As New Report()
Dim htmlObject As New FastReport.HTMLObject()
htmlObject.Width = 800
htmlObject.Height = 600
htmlObject.Text = htmlContent
report.Prepare()
Dim pdfExport As New PDFSimpleExport()
Using fs As New FileStream("webpage.pdf", FileMode.Create)
report.Export(pdfExport, fs)
End Using
End Using
End Sub
End Class
Mise en œuvre d'IronPDF:
// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://example.com");
pdf.SaveAs("webpage.pdf");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://example.com");
pdf.SaveAs("webpage.pdf");
}
}
Imports IronPdf
Class Program
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderUrlAsPdf("https://example.com")
pdf.SaveAs("webpage.pdf")
End Sub
End Class
FastReport nécessite de télécharger manuellement le contenu HTML avec WebClient, puis de l'intégrer dans un objet HTMLObject aux dimensions fixes - une solution de contournement qui ne gère pas correctement l'exécution JavaScript ou les URL de ressources relatives.IronPDF(RenderUrlAsPdf) affiche directement la page web en direct avec une exécution JavaScript complète grâce au moteur Chromium. Pour plus d'options, consultez la documentation sur l'URL vers PDF .
En-têtes et pieds de page avec numéros de page
Cet exemple montre la différence de complexité entre le système de FastReportbasé sur les bandes et l'approche d'IronPDF basée sur le HTML.
Mise en œuvre de FastReport:
// NuGet: Install-Package FastReport.OpenSource
using FastReport;
using FastReport.Export.PdfSimple;
using System.IO;
class Program
{
static void Main()
{
using (Report report = new Report())
{
report.Load("template.frx");
// Set report page properties
FastReport.ReportPage page = report.Pages[0] as FastReport.ReportPage;
// Add page header
FastReport.PageHeaderBand header = new FastReport.PageHeaderBand();
header.Height = 50;
FastReport.TextObject headerText = new FastReport.TextObject();
headerText.Text = "Document Header";
header.Objects.Add(headerText);
page.Bands.Add(header);
// Add page footer
FastReport.PageFooterBand footer = new FastReport.PageFooterBand();
footer.Height = 50;
FastReport.TextObject footerText = new FastReport.TextObject();
footerText.Text = "Page [Page]";
footer.Objects.Add(footerText);
page.Bands.Add(footer);
report.Prepare();
PDFSimpleExport pdfExport = new PDFSimpleExport();
using (FileStream fs = new FileStream("report.pdf", FileMode.Create))
{
report.Export(pdfExport, fs);
}
}
}
}
// NuGet: Install-Package FastReport.OpenSource
using FastReport;
using FastReport.Export.PdfSimple;
using System.IO;
class Program
{
static void Main()
{
using (Report report = new Report())
{
report.Load("template.frx");
// Set report page properties
FastReport.ReportPage page = report.Pages[0] as FastReport.ReportPage;
// Add page header
FastReport.PageHeaderBand header = new FastReport.PageHeaderBand();
header.Height = 50;
FastReport.TextObject headerText = new FastReport.TextObject();
headerText.Text = "Document Header";
header.Objects.Add(headerText);
page.Bands.Add(header);
// Add page footer
FastReport.PageFooterBand footer = new FastReport.PageFooterBand();
footer.Height = 50;
FastReport.TextObject footerText = new FastReport.TextObject();
footerText.Text = "Page [Page]";
footer.Objects.Add(footerText);
page.Bands.Add(footer);
report.Prepare();
PDFSimpleExport pdfExport = new PDFSimpleExport();
using (FileStream fs = new FileStream("report.pdf", FileMode.Create))
{
report.Export(pdfExport, fs);
}
}
}
}
Imports FastReport
Imports FastReport.Export.PdfSimple
Imports System.IO
Class Program
Shared Sub Main()
Using report As New Report()
report.Load("template.frx")
' Set report page properties
Dim page As FastReport.ReportPage = TryCast(report.Pages(0), FastReport.ReportPage)
' Add page header
Dim header As New FastReport.PageHeaderBand()
header.Height = 50
Dim headerText As New FastReport.TextObject()
headerText.Text = "Document Header"
header.Objects.Add(headerText)
page.Bands.Add(header)
' Add page footer
Dim footer As New FastReport.PageFooterBand()
footer.Height = 50
Dim footerText As New FastReport.TextObject()
footerText.Text = "Page [Page]"
footer.Objects.Add(footerText)
page.Bands.Add(footer)
report.Prepare()
Dim pdfExport As New PDFSimpleExport()
Using fs As New FileStream("report.pdf", FileMode.Create)
report.Export(pdfExport, fs)
End Using
End Using
End Sub
End Class
Mise en œuvre d'IronPDF:
// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
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("<html><body><h1>Report Content</h1><p>This is the main content.</p></body></html>");
pdf.SaveAs("report.pdf");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
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("<html><body><h1>Report Content</h1><p>This is the main content.</p></body></html>");
pdf.SaveAs("report.pdf");
}
}
Imports IronPdf
Class Program
Shared Sub Main()
Dim renderer = 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("<html><body><h1>Report Content</h1><p>This is the main content.</p></body></html>")
pdf.SaveAs("report.pdf")
End Sub
End Class
FastReport nécessite le chargement d'un fichier modèle, la création d'objets de page, la création d'objets de bande, la définition de hauteurs, la création d'objets texte, l'ajout à des collections de bandes et l'ajout de bandes à des pages.IronPDFutilise HtmlHeaderFooter avec de simples fragments HTML ; vous pouvez styliser les en-têtes et les pieds de page avec du CSS complet. Notez le changement de syntaxe des numéros de page : [Page] devient {page}, et [TotalPages] devient {total-pages}. Pour plus d'options, consultez la documentation sur les en-têtes et les pieds de page.
Notes de migration essentielles
Pas de fichiers modèles .frx
Les modèles FastReport(.frx) ne fonctionneront pas avec IronPDF. Convertissez vos mises en page en modèles HTML/CSS :
// FastReport- loads .frx template
report.Load("report.frx");
//IronPDF- use HTML template
var html = File.ReadAllText("template.html");
var pdf = renderer.RenderHtmlAsPdf(html);
// FastReport- loads .frx template
report.Load("report.frx");
//IronPDF- use HTML template
var html = File.ReadAllText("template.html");
var pdf = renderer.RenderHtmlAsPdf(html);
' FastReport- loads .frx template
report.Load("report.frx")
' IronPDF- use HTML template
Dim html As String = File.ReadAllText("template.html")
Dim pdf = renderer.RenderHtmlAsPdf(html)
Conversion de la liaison de données
Remplacer RegisterData() par une génération HTML directe :
// FastReport
report.RegisterData(dataSet, "Data");
report.GetDataSource("Data").Enabled = true;
//IronPDF- use string interpolation or StringBuilder
var html = new StringBuilder();
foreach (var item in data)
{
html.Append($"<tr><td>{item.Name}</td><td>{item.Value}</td></tr>");
}
var pdf = renderer.RenderHtmlAsPdf(html.ToString());
// FastReport
report.RegisterData(dataSet, "Data");
report.GetDataSource("Data").Enabled = true;
//IronPDF- use string interpolation or StringBuilder
var html = new StringBuilder();
foreach (var item in data)
{
html.Append($"<tr><td>{item.Name}</td><td>{item.Value}</td></tr>");
}
var pdf = renderer.RenderHtmlAsPdf(html.ToString());
Imports System.Text
' FastReport
report.RegisterData(dataSet, "Data")
report.GetDataSource("Data").Enabled = True
' IronPDF - use string interpolation or StringBuilder
Dim html As New StringBuilder()
For Each item In data
html.Append($"<tr><td>{item.Name}</td><td>{item.Value}</td></tr>")
Next
Dim pdf = renderer.RenderHtmlAsPdf(html.ToString())
Paramètres de sécurité
//IronPDFsecurity
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SecuritySettings.UserPassword = "password";
pdf.SecuritySettings.OwnerPassword = "ownerPassword";
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.FullPrintRights;
//IronPDFsecurity
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SecuritySettings.UserPassword = "password";
pdf.SecuritySettings.OwnerPassword = "ownerPassword";
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.FullPrintRights;
'IronPDFsecurity
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SecuritySettings.UserPassword = "password"
pdf.SecuritySettings.OwnerPassword = "ownerPassword"
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.FullPrintRights
Pour connaître toutes les options de sécurité, consultez la documentation sur le chiffrement .
Liste de contrôle post-migration
Après avoir effectué la migration du code, vérifiez les points suivants :
- Comparaison visuelle des PDF générés
- Vérifier les en-têtes/pieds de page et les numéros de page
- Tester avec des volumes de données de production
- Valider les fonctions de sécurité/chiffrement
- Évaluation comparative des performances
- Supprimer les fichiers de modèle .frx inutilisés
- Supprimer le code lié à FastReport
- Mise à jour de la documentation
Protéger l'avenir de votre infrastructure PDF
Avec .NET 10 à l'horizon et C# 14 qui introduit de nouvelles fonctionnalités de langage, le choix d'une bibliothèque PDF qui adopte les technologies web modernes garantit la maintenabilité à long terme. L'approche HTML/CSS d'IronPDF signifie que vos modèles tirent parti des mêmes compétences utilisées dans l'ensemble du développement web - pas de concepts propriétaires basés sur des bandes qui ne se transfèrent pas à d'autres technologies. Comme les projets se prolongent jusqu'en 2025 et 2026, la possibilité d'utiliser des modèles HTML standard avec des fonctionnalités CSS3 comme Flexbox et Grid offre une flexibilité de conception que le formatage propriétaire de FastReportne peut pas égaler.
Ressources supplémentaires
La migration de FastReportversIronPDFélimine la dépendance au concepteur visuel, la courbe d'apprentissage par bande et le modèle de package fragmenté. La transition vers la génération de PDF basée sur HTML/CSS exploite des technologies web familières tout en offrant des fonctionnalités complètes de manipulation de PDF - fusion, division, sécurité et formulaires - dans un seul et même package.

