Passer au contenu du pied de page
GUIDES DE MIGRATION

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 :

  1. Aplatit la structure HTML — Les éléments <div> deviennent des paragraphes
  2. Ignores modern CSS - Flexbox et Grid layouts échouent complètement
  3. Breaks Bootstrap - Les systèmes de colonnes ne s'affichent pas comme des colonnes
  4. 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>
HTML

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
SHELL

InstallezIronPDF:

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

É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
$vbLabelText   $csharpLabel

É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"
$vbLabelText   $csharpLabel

É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)
$vbLabelText   $csharpLabel

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")
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

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")
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

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")
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

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")
$vbLabelText   $csharpLabel

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")
$vbLabelText   $csharpLabel

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
}
$vbLabelText   $csharpLabel

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)
$vbLabelText   $csharpLabel

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" .
SHELL

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

  1. Supprimer les paquets NuGet de Telerik
  2. Installer le paquet NuGet IronPDF
  3. Mettre à jour les instructions d'utilisation de Telerik.Windows.Documents à IronPdf
  4. Ajouter l'initialisation de la clé de licence au démarrage
  5. Remplacez HtmlFormatProvider par ChromePdfRenderer
  6. Supprimer les étapes intermédiaires RadFlowDocument
  7. Remplacez les exportations PdfFormatProvider par des appels directs SaveAs()
  8. Mettez à jour les en-têtes/pieds de page pour utiliser HtmlHeaderFooter
  9. Convertir les paramètres de la page en RenderingOptions
  10. 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.

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