Comment migrer de Telerik Document Processing à IronPDF en C#
Telerik Document Processing a servi l'écosystème .NET dans le cadre de la suite DevCraft, offrant aux développeurs des capacités de génération de PDF en plus du traitement de Word, Excel et PowerPoint. Cependant, à mesure que les normes web modernes évoluent et que les projets exigent une prise en charge complète de CSS3, Flexbox et Bootstrap, de nombreuses équipes de développement découvrent des limites fondamentales dans l'architecture de rendu HTML-to-PDF de Telerik.
Ce guide propose un parcours de migration complet de Traitement des documents Telerikvers IronPDF, avec des instructions pas à pas, des comparaisons de code et des exemples pratiques tirés directement de scénarios de migration réels.
Pourquoi migrer de Telerik Document Processing
La décision de migrer de Traitement des documents Telerikdécoule généralement de limitations techniques qui deviennent apparentes lorsque l'on travaille avec du contenu web moderne. Comprendre ces limites permet de justifier l'effort de migration et de définir les attentes quant à ce qu'IronPDF résout.
Limites techniques essentielles
Telerik Document Processing présente des problèmes fondamentaux lors de la manipulation de HTML et CSS modernes :
| Problème | Impact | Solution IronPDF |
|---|---|---|
| Limitations de l'analyse CSS | Les cadres CSS modernes tels que Bootstrap échouent | Prise en charge complète de Chromium CSS |
| Conversion de div en paragraphe | La structure HTML est aplatie, les mises en page sont cassées | Rendu HTML direct |
| Modèle de document de flux | Force la conversion intermédiaire | HTML natif vers PDF |
| Questions CSS externes | Sélecteurs complexes ignorés | Prise en charge complète des fichiers CSS |
| Questions de mémoire | OutOfMemoryException sur des documents volumineux | Streaming efficace |
Le problème principal : le HTML n'est pas rendu correctement
Telerik Document Processing convertit HTML en un modèle intermédiaire de "Flow Document" avant de générer un PDF. Cette décision architecturale crée des problèmes en cascade :
- Aplatit la structure HTML — Les éléments
<div>deviennent des paragraphes - Ignores modern CSS - Flexbox et Grid layouts échouent complètement
- Breaks Bootstrap - Les systèmes de colonnes ne s'affichent pas comme des colonnes
- Perte de formatage - Les sélecteurs CSS complexes sont ignorés
Considérez ce HTML moderne qui utilise des mises en page CSS standard :
<div class="container">
<div class="row">
<div class="col-md-6">Column 1</div>
<div class="col-md-6">Column 2</div>
</div>
</div>
<div style="display: flex; gap: 20px;">
<div style="flex: 1;">Flex Item 1</div>
<div style="flex: 1;">Flex Item 2</div>
</div>
<div style="display: grid; grid-template-columns: repeat(3, 1fr);">
<div>Grid Item 1</div>
<div>Grid Item 2</div>
<div>Grid Item 3</div>
</div>
<div class="container">
<div class="row">
<div class="col-md-6">Column 1</div>
<div class="col-md-6">Column 2</div>
</div>
</div>
<div style="display: flex; gap: 20px;">
<div style="flex: 1;">Flex Item 1</div>
<div style="flex: 1;">Flex Item 2</div>
</div>
<div style="display: grid; grid-template-columns: repeat(3, 1fr);">
<div>Grid Item 1</div>
<div>Grid Item 2</div>
<div>Grid Item 3</div>
</div>
Dans Telerik Document Processing, toutes ces mises en page sont rendues sous forme de paragraphes séquentiels. La mise en page Bootstrap à deux colonnes devient deux lignes de texte. Les éléments flexbox s'empilent verticalement. Les éléments de la grille CSS apparaissent les uns après les autres.
Fonctionnalités CSS qui échouent dans le traitement des documents Telerik
Les développeurs ont documenté de nombreux problèmes de compatibilité CSS :
/* ❌ These CSS features DON'T WORK in Traitement des documents Telerik*/
/* Flexbox - Non pris en charge */
.container { display: flex; }
.item { flex: 1; }
/* CSS Grid - Non pris en charge */
.grid { display: grid; grid-template-columns: repeat(3, 1fr); }
/* Bootstrap columns - Converted to paragraphs */
.col-md-6 { /* Ignored, becomes linear text */ }
/* CSS Variables - Non pris en charge */
:root { --primary: #007bff; }
.btn { color: var(--primary); }
/* Complex selectors - Often ignored */
.container > .row:first-child { }
.item:hover { }
.content::before { }
/* Modern units - Limited support */
.box { width: calc(100% - 20px); }
.text { font-size: 1.2rem; }
Questions de performance avec les documents volumineux
Outre les limitations CSS, Traitement des documents Telerika documenté des erreurs OutOfMemoryException lors du traitement de fichiers volumineux. Les équipes de développement qui travaillent sur la génération de gros volumes de documents ont rencontré des problèmes de stabilité que d'autres bibliothèques gèrent plus efficacement.
IronPDF vs Traitement des documents Telerik: Comparaison des fonctionnalités
La compréhension des différences de fonctionnalités aide les décideurs techniques à évaluer l'investissement dans la migration :
| Fonction | Traitement des documents Telerik | IronPDF |
|---|---|---|
| Rendu HTML | Conversion d'un document Flow | Rendu direct de Chromium |
| Support CSS3 | Limité, de nombreuses fonctionnalités échouent | CSS3 complet |
| Flexbox | Non pris en charge | Prise en charge |
| CSS Grid | Non pris en charge | Prise en charge |
| Bootstrap | Broken (aplatissement de div) | Compatible avec Bootstrap 5 |
| CSS externe | Partiel | Prise en charge |
| JavaScript | Non pris en charge | Prise en charge complète de l'ES2024 |
| Grands documents | Problèmes de mémoire | Streaming efficace |
| Complexité de l'API | Complexe (fournisseurs, modèles) | Simple (une classe) |
| Modèle de licence | Commercial, partie de DevCraft | Licence autonome simple |
Migration rapide : 5 minutes pour votre premier PDF
La migration de Traitement des documents TelerikversIronPDFpeut commencer immédiatement. Voici le chemin le plus rapide pour générer votre premier PDF avec IronPDF.
Étape 1 : Mise à jour des paquets NuGet
Supprimez tous les paquets de traitement de documents Telerik :
# Remove Telerik packages
dotnet remove package Telerik.Documents.Core
dotnet remove package Telerik.Documents.Flow
dotnet remove package Telerik.Documents.Flow.FormatProviders.Pdf
dotnet remove package Telerik.Documents.Fixed
# Remove Telerik packages
dotnet remove package Telerik.Documents.Core
dotnet remove package Telerik.Documents.Flow
dotnet remove package Telerik.Documents.Flow.FormatProviders.Pdf
dotnet remove package Telerik.Documents.Fixed
InstallezIronPDF:
# Install IronPDF
dotnet add package IronPdf
# Install IronPDF
dotnet add package IronPdf
Étape 2 : Mise à jour des déclarations d'utilisation
Remplacer les espaces de noms Telerik par l'espace de nomsIronPDF:
// Before (Telerik Document Processing)
using Telerik.Windows.Documents.Flow.FormatProviders.Html;
using Telerik.Windows.Documents.Flow.FormatProviders.Pdf;
using Telerik.Windows.Documents.Flow.Model;
using Telerik.Documents.Primitives;
// After (IronPDF)
using IronPdf;
// Before (Telerik Document Processing)
using Telerik.Windows.Documents.Flow.FormatProviders.Html;
using Telerik.Windows.Documents.Flow.FormatProviders.Pdf;
using Telerik.Windows.Documents.Flow.Model;
using Telerik.Documents.Primitives;
// After (IronPDF)
using IronPdf;
Imports Telerik.Windows.Documents.Flow.FormatProviders.Html
Imports Telerik.Windows.Documents.Flow.FormatProviders.Pdf
Imports Telerik.Windows.Documents.Flow.Model
Imports Telerik.Documents.Primitives
' After (IronPDF)
Imports IronPdf
Étape 3 : ajouter la clé de licence
Initialiser votre licence au démarrage de l'application :
// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
' Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
Étape 4 : mettre à jour votre code de génération de PDF
La transformation de Traitement des documents TelerikenIronPDFsimplifie considérablement votre base de code.
Avant (Telerik Document Processing):
using Telerik.Windows.Documents.Flow.FormatProviders.Html;
using Telerik.Windows.Documents.Flow.FormatProviders.Pdf;
using Telerik.Windows.Documents.Flow.Model;
HtmlFormatProvider htmlProvider = new HtmlFormatProvider();
RadFlowDocument document = htmlProvider.Import(htmlContent);
PdfFormatProvider pdfProvider = new PdfFormatProvider();
byte[] pdfBytes = pdfProvider.Export(document);
File.WriteAllBytes("output.pdf", pdfBytes);
using Telerik.Windows.Documents.Flow.FormatProviders.Html;
using Telerik.Windows.Documents.Flow.FormatProviders.Pdf;
using Telerik.Windows.Documents.Flow.Model;
HtmlFormatProvider htmlProvider = new HtmlFormatProvider();
RadFlowDocument document = htmlProvider.Import(htmlContent);
PdfFormatProvider pdfProvider = new PdfFormatProvider();
byte[] pdfBytes = pdfProvider.Export(document);
File.WriteAllBytes("output.pdf", pdfBytes);
Imports Telerik.Windows.Documents.Flow.FormatProviders.Html
Imports Telerik.Windows.Documents.Flow.FormatProviders.Pdf
Imports Telerik.Windows.Documents.Flow.Model
Dim htmlProvider As New HtmlFormatProvider()
Dim document As RadFlowDocument = htmlProvider.Import(htmlContent)
Dim pdfProvider As New PdfFormatProvider()
Dim pdfBytes As Byte() = pdfProvider.Export(document)
File.WriteAllBytes("output.pdf", pdfBytes)
Après (IronPDF):
using IronPdf;
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("output.pdf");
using IronPdf;
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("output.pdf");
Imports IronPdf
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
pdf.SaveAs("output.pdf")
La différence est immédiatement visible : 3 lignes de codeIronPDFremplacent 15+ lignes de code Telerik Document Processing. Plus important encore, la versionIronPDFrendra correctement les feuilles de style CSS modernes que le modèle de document Flow de Telerik ne peut pas gérer.
Exemples de migration de code
Conversion de HTML en PDF
Il s'agit du cas d'utilisation le plus courant pour la génération de PDF. Les différences architecturales entre Traitement des documents TeleriketIronPDFapparaissent clairement dans cette comparaison.
Approche de traitement des documents de Telerik:
// NuGet: Install-Package Telerik.Documents.Flow
// NuGet: Install-Package Telerik.Documents.Flow.FormatProviders.Pdf
using Telerik.Windows.Documents.Flow.FormatProviders.Html;
using Telerik.Windows.Documents.Flow.FormatProviders.Pdf;
using Telerik.Windows.Documents.Flow.Model;
using System.IO;
string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
HtmlFormatProvider htmlProvider = new HtmlFormatProvider();
RadFlowDocument document = htmlProvider.Import(html);
PdfFormatProvider pdfProvider = new PdfFormatProvider();
using (FileStream output = File.OpenWrite("output.pdf"))
{
pdfProvider.Export(document, output);
}
// NuGet: Install-Package Telerik.Documents.Flow
// NuGet: Install-Package Telerik.Documents.Flow.FormatProviders.Pdf
using Telerik.Windows.Documents.Flow.FormatProviders.Html;
using Telerik.Windows.Documents.Flow.FormatProviders.Pdf;
using Telerik.Windows.Documents.Flow.Model;
using System.IO;
string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
HtmlFormatProvider htmlProvider = new HtmlFormatProvider();
RadFlowDocument document = htmlProvider.Import(html);
PdfFormatProvider pdfProvider = new PdfFormatProvider();
using (FileStream output = File.OpenWrite("output.pdf"))
{
pdfProvider.Export(document, output);
}
Imports Telerik.Windows.Documents.Flow.FormatProviders.Html
Imports Telerik.Windows.Documents.Flow.FormatProviders.Pdf
Imports Telerik.Windows.Documents.Flow.Model
Imports System.IO
Dim html As String = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>"
Dim htmlProvider As New HtmlFormatProvider()
Dim document As RadFlowDocument = htmlProvider.Import(html)
Dim pdfProvider As New PdfFormatProvider()
Using output As FileStream = File.OpenWrite("output.pdf")
pdfProvider.Export(document, output)
End Using
Approche IronPDF:
// NuGet: Install-Package IronPdf
using IronPdf;
string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
// NuGet: Install-Package IronPdf
using IronPdf;
string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
Imports IronPdf
Dim html As String = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>"
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")
La version Telerik nécessite la création d'un HtmlFormatProvider, l'importation dans un RadFlowDocument, la création d'un PdfFormatProvider et la gestion manuelle des flux de fichiers.IronPDFgère l'ensemble du processus avec un seul appel de méthode.
Pour des scénarios plus avancés de conversion de HTML en PDF, consultez le guide de conversion de HTML en PDF.
Conversion des URL en PDF
La capture de pages web au format PDF révèle une autre différence significative entre les bibliothèques.
Approche de traitement des documents de Telerik:
// NuGet: Install-Package Telerik.Documents.Flow
// NuGet: Install-Package Telerik.Documents.Flow.FormatProviders.Pdf
using Telerik.Windows.Documents.Flow.FormatProviders.Html;
using Telerik.Windows.Documents.Flow.FormatProviders.Pdf;
using Telerik.Windows.Documents.Flow.Model;
using System.IO;
using System.Net.Http;
using System.Threading.Tasks;
string url = "https://example.com";
using HttpClient client = new HttpClient();
string html = await client.GetStringAsync(url);
HtmlFormatProvider htmlProvider = new HtmlFormatProvider();
RadFlowDocument document = htmlProvider.Import(html);
PdfFormatProvider pdfProvider = new PdfFormatProvider();
using (FileStream output = File.OpenWrite("webpage.pdf"))
{
pdfProvider.Export(document, output);
}
// NuGet: Install-Package Telerik.Documents.Flow
// NuGet: Install-Package Telerik.Documents.Flow.FormatProviders.Pdf
using Telerik.Windows.Documents.Flow.FormatProviders.Html;
using Telerik.Windows.Documents.Flow.FormatProviders.Pdf;
using Telerik.Windows.Documents.Flow.Model;
using System.IO;
using System.Net.Http;
using System.Threading.Tasks;
string url = "https://example.com";
using HttpClient client = new HttpClient();
string html = await client.GetStringAsync(url);
HtmlFormatProvider htmlProvider = new HtmlFormatProvider();
RadFlowDocument document = htmlProvider.Import(html);
PdfFormatProvider pdfProvider = new PdfFormatProvider();
using (FileStream output = File.OpenWrite("webpage.pdf"))
{
pdfProvider.Export(document, output);
}
Imports Telerik.Windows.Documents.Flow.FormatProviders.Html
Imports Telerik.Windows.Documents.Flow.FormatProviders.Pdf
Imports Telerik.Windows.Documents.Flow.Model
Imports System.IO
Imports System.Net.Http
Imports System.Threading.Tasks
Module Module1
Sub Main()
Dim url As String = "https://example.com"
Using client As New HttpClient()
Dim html As String = Await client.GetStringAsync(url)
Dim htmlProvider As New HtmlFormatProvider()
Dim document As RadFlowDocument = htmlProvider.Import(html)
Dim pdfProvider As New PdfFormatProvider()
Using output As FileStream = File.OpenWrite("webpage.pdf")
pdfProvider.Export(document, output)
End Using
End Using
End Sub
End Module
Approche IronPDF:
// NuGet: Install-Package IronPdf
using IronPdf;
string url = "https://example.com";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf(url);
pdf.SaveAs("webpage.pdf");
// NuGet: Install-Package IronPdf
using IronPdf;
string url = "https://example.com";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf(url);
pdf.SaveAs("webpage.pdf");
Imports IronPdf
Dim url As String = "https://example.com"
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderUrlAsPdf(url)
pdf.SaveAs("webpage.pdf")
Telerik Document Processing n'a pas de capacité native de conversion d'URL en PDF. Vous devez récupérer manuellement le contenu HTML en utilisant HttpClient, perdant ainsi le CSS externe, l'exécution JavaScript et le contenu dynamique. La méthode RenderUrlAsPdf d'IronPDF capture la page rendue complète exactement telle qu'elle apparaît dans un navigateur.
Explorez la URL vers la documentation PDF pour des options supplémentaires, notamment l'authentification et les en-têtes personnalisés.
Fusionner plusieurs fichiers PDF
La fusion de PDF démontre la différence de verbosité entre ces bibliothèques PDF .NET.
Approche de traitement des documents de Telerik:
// NuGet: Install-Package Telerik.Documents.Fixed
using Telerik.Windows.Documents.Fixed.FormatProviders.Pdf;
using Telerik.Windows.Documents.Fixed.Model;
using System.IO;
PdfFormatProvider provider = new PdfFormatProvider();
RadFixedDocument document1;
using (FileStream input = File.OpenRead("document1.pdf"))
{
document1 = provider.Import(input);
}
RadFixedDocument document2;
using (FileStream input = File.OpenRead("document2.pdf"))
{
document2 = provider.Import(input);
}
RadFixedDocument mergedDocument = new RadFixedDocument();
foreach (var page in document1.Pages)
{
mergedDocument.Pages.Add(page);
}
foreach (var page in document2.Pages)
{
mergedDocument.Pages.Add(page);
}
using (FileStream output = File.OpenWrite("merged.pdf"))
{
provider.Export(mergedDocument, output);
}
// NuGet: Install-Package Telerik.Documents.Fixed
using Telerik.Windows.Documents.Fixed.FormatProviders.Pdf;
using Telerik.Windows.Documents.Fixed.Model;
using System.IO;
PdfFormatProvider provider = new PdfFormatProvider();
RadFixedDocument document1;
using (FileStream input = File.OpenRead("document1.pdf"))
{
document1 = provider.Import(input);
}
RadFixedDocument document2;
using (FileStream input = File.OpenRead("document2.pdf"))
{
document2 = provider.Import(input);
}
RadFixedDocument mergedDocument = new RadFixedDocument();
foreach (var page in document1.Pages)
{
mergedDocument.Pages.Add(page);
}
foreach (var page in document2.Pages)
{
mergedDocument.Pages.Add(page);
}
using (FileStream output = File.OpenWrite("merged.pdf"))
{
provider.Export(mergedDocument, output);
}
Imports Telerik.Windows.Documents.Fixed.FormatProviders.Pdf
Imports Telerik.Windows.Documents.Fixed.Model
Imports System.IO
Dim provider As New PdfFormatProvider()
Dim document1 As RadFixedDocument
Using input As FileStream = File.OpenRead("document1.pdf")
document1 = provider.Import(input)
End Using
Dim document2 As RadFixedDocument
Using input As FileStream = File.OpenRead("document2.pdf")
document2 = provider.Import(input)
End Using
Dim mergedDocument As New RadFixedDocument()
For Each page In document1.Pages
mergedDocument.Pages.Add(page)
Next
For Each page In document2.Pages
mergedDocument.Pages.Add(page)
Next
Using output As FileStream = File.OpenWrite("merged.pdf")
provider.Export(mergedDocument, output)
End Using
Approche IronPDF:
// NuGet: Install-Package IronPdf
using IronPdf;
var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
// NuGet: Install-Package IronPdf
using IronPdf;
var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
Imports IronPdf
Dim pdf1 = PdfDocument.FromFile("document1.pdf")
Dim pdf2 = PdfDocument.FromFile("document2.pdf")
Dim merged = PdfDocument.Merge(pdf1, pdf2)
merged.SaveAs("merged.pdf")
La version Telerik nécessite d'importer chaque document séparément, de parcourir manuellement les pages, de les ajouter à un nouveau document et de gérer plusieurs flux de fichiers. La méthode PdfDocument.Merge() d'IronPDF gère tout en un seul appel.
Pour des scénarios de fusion avancés, notamment l'extraction sélective de pages, voir le guide de fusion et de division de PDF.
Traitement des documents TelerikAPI toIronPDFMapping (en anglais)
Cette table de référence accélère la migration en indiquant les équivalents directs des API :
| Traitement des documents Telerik | IronPDF |
|---|---|
HtmlFormatProvider |
ChromePdfRenderer |
RadFlowDocument |
Pas nécessaire |
PdfFormatProvider |
pdf.SaveAs() |
RadFlowDocumentEditor |
Manipulation HTML |
Section |
HTML <section> |
Paragraph |
HTML <p> |
PdfExportSettings |
RenderingOptions |
RadFixedDocument |
PdfDocument |
| Itération manuelle des pages | PdfDocument.Merge() |
Gestion des en-têtes et des pieds de page
Telerik Document Processing utilise un modèle programmatique pour les en-têtes et les pieds de page.IronPDFfournit des en-têtes basés sur HTML avec des espaces réservés dynamiques.
Traitement de documents Telerik :
section.Headers.Default.Blocks.AddParagraph().Inlines.AddRun("Header Text");
section.Footers.Default.Blocks.AddParagraph().Inlines.AddRun("Footer Text");
section.Headers.Default.Blocks.AddParagraph().Inlines.AddRun("Header Text");
section.Footers.Default.Blocks.AddParagraph().Inlines.AddRun("Footer Text");
section.Headers.Default.Blocks.AddParagraph().Inlines.AddRun("Header Text")
section.Footers.Default.Blocks.AddParagraph().Inlines.AddRun("Footer Text")
IronPDF :
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
HtmlFragment = "<div style='text-align:center;'>Header Text</div>",
MaxHeight = 25
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
HtmlFragment = "<div style='text-align:center;'>Footer Text</div>",
MaxHeight = 25
};
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
HtmlFragment = "<div style='text-align:center;'>Header Text</div>",
MaxHeight = 25
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
HtmlFragment = "<div style='text-align:center;'>Footer Text</div>",
MaxHeight = 25
};
Imports System
renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter() With {
.HtmlFragment = "<div style='text-align:center;'>Header Text</div>",
.MaxHeight = 25
}
renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter() With {
.HtmlFragment = "<div style='text-align:center;'>Footer Text</div>",
.MaxHeight = 25
}
L'approche HTML d'IronPDF permet un style CSS complet dans les en-têtes et les pieds de page, ainsi que des espaces réservés dynamiques pour les numéros de page et les dates. Pour en savoir plus, consultez la documentation sur les en-têtes et les pieds de page.
Conversion d'unités : DIPs en Millimètres
Telerik Document Processing utilise des pixels indépendants du périphérique (DIP) pour les mesures.IronPDFutilise des millimètres. Cela nécessite une conversion lors de la migration :
// Telerik uses DIPs (device-independent pixels)
//IronPDFuses millimeters
// 1 inch = 25.4mm
renderer.RenderingOptions.MarginTop = 25.4; // 1 inch
renderer.RenderingOptions.MarginBottom = 25.4;
// Or use the helper method for paper size
renderer.RenderingOptions.SetCustomPaperSizeInInches(8.5, 11);
// Telerik uses DIPs (device-independent pixels)
//IronPDFuses millimeters
// 1 inch = 25.4mm
renderer.RenderingOptions.MarginTop = 25.4; // 1 inch
renderer.RenderingOptions.MarginBottom = 25.4;
// Or use the helper method for paper size
renderer.RenderingOptions.SetCustomPaperSizeInInches(8.5, 11);
' Telerik uses DIPs (device-independent pixels)
' IronPDF uses millimeters
' 1 inch = 25.4mm
renderer.RenderingOptions.MarginTop = 25.4 ' 1 inch
renderer.RenderingOptions.MarginBottom = 25.4
' Or use the helper method for paper size
renderer.RenderingOptions.SetCustomPaperSizeInInches(8.5, 11)
Traitement des documents TelerikChecklist pour la migration
Tâches préalables à la migration
Auditez votre base de code pour identifier toutes les utilisations de Traitement des documents Telerik:
grep -r "using Telerik.Windows.Documents" --include="*.cs" .
grep -r "RadFlowDocument\|HtmlFormatProvider\|PdfFormatProvider" --include="*.cs" .
grep -r "using Telerik.Windows.Documents" --include="*.cs" .
grep -r "RadFlowDocument\|HtmlFormatProvider\|PdfFormatProvider" --include="*.cs" .
Documenter les implémentations existantes, y compris les fournisseurs de format utilisés, les configurations d'en-tête/pied de page, les paramètres de page personnalisés et toute modification du modèle Flow Document.
Pendant la migration
- Supprimer les paquets NuGet de Telerik
- Installer le paquet NuGet IronPDF
- Mettre à jour les instructions d'utilisation de
Telerik.Windows.DocumentsàIronPdf - Ajouter l'initialisation de la clé de licence au démarrage
- Remplacez
HtmlFormatProviderparChromePdfRenderer - Supprimer les étapes intermédiaires
RadFlowDocument - Remplacez les exportations
PdfFormatProviderpar des appels directsSaveAs() - Mettez à jour les en-têtes/pieds de page pour utiliser
HtmlHeaderFooter - Convertir les paramètres de la page en
RenderingOptions - Mise à jour des unités de marge de DIPs à millimètres
Vérification post-migration
Après la migration, vérifiez ces améliorations :
- Le rendu CSS doit être amélioré de manière significative
- Les mises en page Bootstrap doivent s'afficher correctement (ce qui n'est pas le cas avec Telerik)
- Les mises en page Flexbox et Grid doivent fonctionner (elles ne fonctionnent pas dans Telerik)
- L'exécution de JavaScript doit fonctionner pour le contenu dynamique
- La génération de documents volumineux doit s'effectuer sans exception de mémoire
Avantages clés de la migration vers IronPDF
Le passage de Traitement des documents TelerikàIronPDFprésente des avantages immédiats :
Moteur de rendu Chromium moderne :IronPDFutilise 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. Cela permet d'éliminer les problèmes de compatibilité CSS inhérents au modèle de document de flux de Telerik.
Prise en charge complète de CSS3 et JavaScript : Flexbox, Grid, Bootstrap 5, les variables CSS et JavaScript moderne fonctionnent tous correctement. Alors que l'adoption de .NET 10 et C# 14 augmente jusqu'en 2026, le rendu moderne d'IronPDF garantit la compatibilité avec les normes web contemporaines.
API simplifiée : moins de lignes de code, pas de modèles de documents intermédiaires et des noms de méthodes intuitifs réduisent le temps de développement et la charge de maintenance.
Licence autonome :IronPDFpropose une licence simple sans nécessiter l'achat d'une Suite complète, offrant ainsi une solution économique pour les équipes qui n'ont besoin que des fonctionnalités PDF.
Développement actif : des mises à jour régulières garantissent la compatibilité avec les versions actuelles et futures de .NET , les correctifs de sécurité et les améliorations fonctionnelles.

