Passer au contenu du pied de page
GUIDES DE MIGRATION

Comment migrer de MigraDoc à IronPDF en C#

Migrer de MigraDocàIronPDF: Guide complet de migration vers C

La migration de MigraDocversIronPDFtransforme votre flux de travail PDF .NET d'un modèle de document programmatique verbeux nécessitant une construction manuelle élément par élément à une approche moderne basée sur HTML/CSSqui exploite les compétences existantes en matière de développement web. Ce guide fournit un chemin de migration complet, étape par étape, qui élimine la courbe d'apprentissage abrupte du modèle d'objet de document propriétaire de MigraDocpour les développeurs .NET professionnels.

Pourquoi migrer de MigraDocà IronPDF

Les défis de MigraDoc

MigraDoc, bien que puissant pour la génération programmatique de PDF, présente des limitations fondamentales qui affectent les flux de développement modernes :

  1. Pas de support HTML : MigraDocne supporte pas directement le HTML. Vous devez construire manuellement des documents élément par élément en utilisant les objets Document, Section, Paragraphe et Table- vous ne pouvez pas tirer parti des conceptions HTML/CSSexistantes.

  2. Modèle de document propriétaire : MigraDocnécessite l'apprentissage d'un modèle de document unique avec des concepts tels que AddSection(), AddParagraph(), AddTable(), AddRow(), et AddCell(). Cette courbe d'apprentissage abrupte est particulièrement difficile à suivre pour les développeurs ayant une formation en développement web.

  3. Options de style limitées : Bien que MigraDocoffre une gestion robuste de la structure des documents, ses capacités de stylisation sont modestes par rapport aux outils web modernes. Les propriétés telles que Format.Font.Size, Format.Font.Bold et Format.Alignment sont limitées par rapport au CSS3 complet.

  4. Code verbeux : La création de mises en page, même simples, nécessite des dizaines de lignes de code. Un tableau de base avec des en-têtes peut nécessiter 15 à 20 lignes de code MigraDoc.

  5. Pas de support JavaScript : MigraDocne peut pas rendre un contenu dynamique ou exécuter JavaScript, ce qui limite les options pour les graphiques modernes et les éléments interactifs.

  6. Les graphiques sont basiques : Les fonctionnalités graphiques de MigraDocsont limitées par rapport aux bibliothèques graphiques JavaScriptmodernes telles que Chart.js ou D3.

Comparaison MigraDocvs IronPDF

Fonction MigraDoc IronPDF
Définition du contenu Programmatique (document/section/paragraphe) HTML/CSS
Courbe d'apprentissage Steep (DOM propriétaire) Facile (compétences web)
Stylisme Propriétés limitées CSS3 complet
JavaScript Aucun Exécution complète de Chromium
Tableaux Définition manuelle des colonnes et des lignes HTML <table>avec CSS
Graphiques Graphiques MigraDocde base Toute bibliothèque graphique JavaScript
Images Dimensionnement/positionnement manuel HTML standard <img>
Mises en page réactives Non pris en charge Flexbox, Grille
Licence Open Source (MIT) Commercial

Pour les équipes qui prévoient l'adoption de .NET 10 et C# 14 jusqu'en 2025 et 2026,IronPDFconstitue une base pérenne qui permet aux développeurs d'utiliser des compétences HTML/CSSfamilières plutôt que d'apprendre un modèle de document propriétaire.


Évaluation de la complexité de la migration

Estimation de l'effort par fonctionnalité

Fonction Complexité de la migration Notes
Texte simple Très faible Paragraphe → éléments HTML
Tableaux Faible Table/Row/Cell → HTML <table>
En-têtes/Pieds de page Faible Section.Headers → RenderingOptions
Styles Moyen Propriétés de format → classes CSS
Images Faible AddImage → HTML <img>
Graphiques Moyen Nécessite une bibliothèque JavaScript

Changement de paradigme

Le changement fondamental dans cette migration MigraDocest de passer de la construction programmatique de documents au rendu HTML d'abord :

MigraDoc : Document → AddSection() → AddParagraph() → PdfDocumentRenderer → Save()
IronPDF :   ChromePdfRenderer → RenderHtmlAsPdf(html) → SaveAs()

Ce changement de paradigme réduit considérablement la complexité du code tout en offrant des capacités de stylisme illimitées grâce à CSS.


Avant de commencer

Prérequis

  1. Environnement .NET : .NET Framework 4.6.2+ ou .NET Core 3.1+ / .NET 5/6/7/8/9+
  2. Accès NuGet : Capacité à installer des paquets NuGet
  3. Licence IronPDF : Obtenez votre clé de licence sur ironpdf.com

Modifications du paquet NuGet

# Remove MigraDocpackages
dotnet remove package PdfSharp-MigraDoc
dotnet remove package PdfSharp-MigraDoc-GDI
dotnet remove package PDFsharp.MigraDoc.Standard

# Install IronPDF
dotnet add package IronPdf
# Remove MigraDocpackages
dotnet remove package PdfSharp-MigraDoc
dotnet remove package PdfSharp-MigraDoc-GDI
dotnet remove package PDFsharp.MigraDoc.Standard

# Install IronPDF
dotnet add package IronPdf
SHELL

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";
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Identifier l'utilisation de MigraDoc

# Find all MigraDocreferences
grep -r "using MigraDoc\|PdfDocumentRenderer\|AddSection\|AddParagraph" --include="*.cs" .
grep -r "AddTable\|AddRow\|AddColumn\|AddCell\|AddImage" --include="*.cs" .
# Find all MigraDocreferences
grep -r "using MigraDoc\|PdfDocumentRenderer\|AddSection\|AddParagraph" --include="*.cs" .
grep -r "AddTable\|AddRow\|AddColumn\|AddCell\|AddImage" --include="*.cs" .
SHELL

Référence API complète

Mappages de classes

Classe MigraDoc Équivalent d'IronPDF Notes
Document ChromePdfRenderer Utiliser le moteur de rendu et non le document
Section HTML <body> ou <div> Conteneur structurel
Paragraphe HTML <p>, <h1>, etc. Éléments de texte
Texte formaté HTML <span>, <strong>, etc. Formatage en ligne
Table HTML <table> Avec style CSS
Row HTML <tr> Rangée de table
Colonne HTML <col> ou CSS Style des colonnes
Cell HTML <td>, <th> Cellule de tableau
PdfDocumentRenderer ChromePdfRenderer Rendu principal

Mise en correspondance des méthodes

Méthode MigraDoc Équivalent d'IronPDF Notes
document.AddSection() Structure HTML Utilisez <div> ou <section>
section.AddParagraph(text) <p>texte</p> Paragraphe HTML
section.AddTable() <table> Tableau HTML
table.AddColumn(width) Propriété CSS width (largeur) Style sur <th> ou <td>
table.AddRow() <tr> Rangée HTML
row.Cells[n].AddParagraph() <td>contenu</td> Cellule HTML
renderer.RenderDocument() RenderHtmlAsPdf(html) Rendu au format PDF
pdfDocument.Save(path) pdf.SaveAs(path) Enregistrer le fichier

Mappages de caractères de remplacement (en-têtes/pieds de page)

Méthode MigraDoc IronPDFPlaceholder Notes
AddPageField() {page} Numéro de page actuel
AddNumPagesField() {total-pages} Nombre total de pages
AddDateField() {date} Date actuelle

Exemples de migration de code

Exemple 1 : HTML de base à PDF (la différence fondamentale)

Avant (MigraDoc):

// NuGet: Install-Package PdfSharp-MigraDoc-GDI
using MigraDoc.DocumentObjectModel;
using MigraDoc.Rendering;
using System.Diagnostics;

class Program
{
    static void Main()
    {
        // MigraDocdoesn't support HTML directly
        // Must manually create document structure
        Document document = new Document();
        Section section = document.AddSection();

        Paragraph paragraph = section.AddParagraph();
        paragraph.AddFormattedText("Hello World", TextFormat.Bold);
        paragraph.Format.Font.Size = 16;

        PdfDocumentRenderer pdfRenderer = new PdfDocumentRenderer();
        pdfRenderer.Document = document;
        pdfRenderer.RenderDocument();
        pdfRenderer.PdfDocument.Save("output.pdf");
    }
}
// NuGet: Install-Package PdfSharp-MigraDoc-GDI
using MigraDoc.DocumentObjectModel;
using MigraDoc.Rendering;
using System.Diagnostics;

class Program
{
    static void Main()
    {
        // MigraDocdoesn't support HTML directly
        // Must manually create document structure
        Document document = new Document();
        Section section = document.AddSection();

        Paragraph paragraph = section.AddParagraph();
        paragraph.AddFormattedText("Hello World", TextFormat.Bold);
        paragraph.Format.Font.Size = 16;

        PdfDocumentRenderer pdfRenderer = new PdfDocumentRenderer();
        pdfRenderer.Document = document;
        pdfRenderer.RenderDocument();
        pdfRenderer.PdfDocument.Save("output.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Après (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
        pdf.SaveAs("output.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
        pdf.SaveAs("output.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Cet exemple illustre la différence fondamentale entre MigraDocet IronPDF. MigraDocnécessite la création d'un Document, l'ajout d'une Section, l'ajout d'un Paragraphe, l'utilisation de AddFormattedText() avec TextFormat.Bold, en définissant Format.Font.Size, en créant un PdfDocumentRenderer, en assignant le document, en appelant RenderDocument(), et enfin en sauvegardant. Il s'agit de plus de 10 lignes de code avec plusieurs objets.

IronPDF permet d'obtenir le même résultat en 3 lignes : création d'un moteur de rendu, rendu HTML et sauvegarde. La balise HTML <h1> fournit naturellement le style de titre gras et large. Voir la documentation HTML vers PDF pour des options de rendu supplémentaires.

Exemple 2 : Création de tableaux

Avant (MigraDoc):

// NuGet: Install-Package PdfSharp-MigraDoc-GDI
using MigraDoc.DocumentObjectModel;
using MigraDoc.DocumentObjectModel.Tables;
using MigraDoc.Rendering;

class Program
{
    static void Main()
    {
        Document document = new Document();
        Section section = document.AddSection();

        Table table = section.AddTable();
        table.Borders.Width = 0.75;

        Column column1 = table.AddColumn("3cm");
        Column column2 = table.AddColumn("3cm");

        Row row1 = table.AddRow();
        row1.Cells[0].AddParagraph("Name");
        row1.Cells[1].AddParagraph("Age");

        Row row2 = table.AddRow();
        row2.Cells[0].AddParagraph("John");
        row2.Cells[1].AddParagraph("30");

        PdfDocumentRenderer pdfRenderer = new PdfDocumentRenderer();
        pdfRenderer.Document = document;
        pdfRenderer.RenderDocument();
        pdfRenderer.PdfDocument.Save("table.pdf");
    }
}
// NuGet: Install-Package PdfSharp-MigraDoc-GDI
using MigraDoc.DocumentObjectModel;
using MigraDoc.DocumentObjectModel.Tables;
using MigraDoc.Rendering;

class Program
{
    static void Main()
    {
        Document document = new Document();
        Section section = document.AddSection();

        Table table = section.AddTable();
        table.Borders.Width = 0.75;

        Column column1 = table.AddColumn("3cm");
        Column column2 = table.AddColumn("3cm");

        Row row1 = table.AddRow();
        row1.Cells[0].AddParagraph("Name");
        row1.Cells[1].AddParagraph("Age");

        Row row2 = table.AddRow();
        row2.Cells[0].AddParagraph("John");
        row2.Cells[1].AddParagraph("30");

        PdfDocumentRenderer pdfRenderer = new PdfDocumentRenderer();
        pdfRenderer.Document = document;
        pdfRenderer.RenderDocument();
        pdfRenderer.PdfDocument.Save("table.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Après (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        string htmlTable = @"
            <table border='1'>
                <tr><th>Name</th><th>Age</th></tr>
                <tr><td>John</td><td>30</td></tr>
            </table>";

        var pdf = renderer.RenderHtmlAsPdf(htmlTable);
        pdf.SaveAs("table.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        string htmlTable = @"
            <table border='1'>
                <tr><th>Name</th><th>Age</th></tr>
                <tr><td>John</td><td>30</td></tr>
            </table>";

        var pdf = renderer.RenderHtmlAsPdf(htmlTable);
        pdf.SaveAs("table.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

La création d'un tableau MigraDocnécessite de comprendre la hiérarchie Table, Colonne, Rowet Cell. Vous devez explicitement ajouter des colonnes avec AddColumn(), créer des lignes avec AddRow(), accéder aux cellules par index avec Cells[n], et ajouter du contenu avec AddParagraph(). La bordure est définie par table.Borders.Width.

IronPDF utilise la syntaxe de tableau HTML standard que tout développeur web connaît. L'attribut border='1' fournit la bordure, les éléments <th> créent des cellules d'en-tête et les éléments <td> créent des cellules de données. Des feuilles de style CSS peuvent être ajoutées pour une mise en forme avancée, comme les bandes zébrées, les effets de survol ou les mises en page réactives. En savoir plus sur la création de tableaux dans les PDF.

Exemple 3 : En-têtes et pieds de page avec numéros de page

Avant (MigraDoc):

// NuGet: Install-Package PdfSharp-MigraDoc-GDI
using MigraDoc.DocumentObjectModel;
using MigraDoc.Rendering;

class Program
{
    static void Main()
    {
        Document document = new Document();
        Section section = document.AddSection();

        // Add header
        Paragraph headerPara = section.Headers.Primary.AddParagraph();
        headerPara.AddText("Document Header");
        headerPara.Format.Font.Size = 12;
        headerPara.Format.Alignment = ParagraphAlignment.Center;

        // Add footer
        Paragraph footerPara = section.Footers.Primary.AddParagraph();
        footerPara.AddText("Page ");
        footerPara.AddPageField();
        footerPara.Format.Alignment = ParagraphAlignment.Center;

        // Add content
        section.AddParagraph("Main content of the document");

        PdfDocumentRenderer pdfRenderer = new PdfDocumentRenderer();
        pdfRenderer.Document = document;
        pdfRenderer.RenderDocument();
        pdfRenderer.PdfDocument.Save("header-footer.pdf");
    }
}
// NuGet: Install-Package PdfSharp-MigraDoc-GDI
using MigraDoc.DocumentObjectModel;
using MigraDoc.Rendering;

class Program
{
    static void Main()
    {
        Document document = new Document();
        Section section = document.AddSection();

        // Add header
        Paragraph headerPara = section.Headers.Primary.AddParagraph();
        headerPara.AddText("Document Header");
        headerPara.Format.Font.Size = 12;
        headerPara.Format.Alignment = ParagraphAlignment.Center;

        // Add footer
        Paragraph footerPara = section.Footers.Primary.AddParagraph();
        footerPara.AddText("Page ");
        footerPara.AddPageField();
        footerPara.Format.Alignment = ParagraphAlignment.Center;

        // Add content
        section.AddParagraph("Main content of the document");

        PdfDocumentRenderer pdfRenderer = new PdfDocumentRenderer();
        pdfRenderer.Document = document;
        pdfRenderer.RenderDocument();
        pdfRenderer.PdfDocument.Save("header-footer.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Après (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Main content of the document</h1>");

        pdf.AddTextHeader("Document Header");
        pdf.AddTextFooter("Page {page}");

        pdf.SaveAs("header-footer.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Main content of the document</h1>");

        pdf.AddTextHeader("Document Header");
        pdf.AddTextFooter("Page {page}");

        pdf.SaveAs("header-footer.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Les en-têtes et pieds de page MigraDocnécessitent l'accès à section.Headers.Primary et section.Footers.Primary, la création de paragraphes à l'intérieur de ceux-ci, l'ajout de texte avec AddText(), et l'utilisation de méthodes spéciales telles que AddPageField()pour le contenu dynamique. L'alignement nécessite le paramétrage de Format.Alignment.

IronPDF fournit des méthodes simples AddTextHeader() et AddTextFooter() sur l'objet PdfDocument. L'espace réservé {page}insère automatiquement le numéro de la page en cours. Pour des en-têtes plus complexes, vous pouvez utiliser HtmlHeaderFooter avec un support HTML/CSScomplet. Voir la documentation sur les en-têtes et pieds de page pour les options avancées.


Notesde migration essentielles

Syntaxe de l'espace réservé au numéro de page

Le changement le plus important pour les en-têtes et les pieds de page est la syntaxe des espaces réservés :

// MigraDocfield methods:
footerPara.AddPageField();       // Current page
footerPara.AddNumPagesField();   // Total pages

//IronPDFplaceholders:
"Page {page} of {total-pages}"
// MigraDocfield methods:
footerPara.AddPageField();       // Current page
footerPara.AddNumPagesField();   // Total pages

//IronPDFplaceholders:
"Page {page} of {total-pages}"
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Formater les propriétés en CSS

Les propriétés Format de MigraDoccorrespondent aux CSS :

// MigraDoc:
paragraph.Format.Font.Size = 16;
paragraph.Format.Font.Bold = true;
paragraph.Format.Alignment = ParagraphAlignment.Center;

//IronPDF(CSS):
<p style="font-size: 16pt; font-weight: bold; text-align: center;">
// MigraDoc:
paragraph.Format.Font.Size = 16;
paragraph.Format.Font.Bold = true;
paragraph.Format.Alignment = ParagraphAlignment.Center;

//IronPDF(CSS):
<p style="font-size: 16pt; font-weight: bold; text-align: center;">
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Conversion d'unités

MigraDoc utilise différentes unités ; Les marges d'IronPDF sont exprimées en millimètres :

  • "1cm" = 10mm
  • "1 pouce = 25,4 mm
  • "72pt" = 25,4 mm
// MigraDoc:
table.AddColumn("3cm");

//IronPDF(CSS):
<th style="width: 3cm;">
// MigraDoc:
table.AddColumn("3cm");

//IronPDF(CSS):
<th style="width: 3cm;">
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Modification du modèle de rendu

L'ensemble du modèle de rendu change :

// MigraDocpattern (DELETE):
PdfDocumentRenderer pdfRenderer = new PdfDocumentRenderer();
pdfRenderer.Document = document;
pdfRenderer.RenderDocument();
pdfRenderer.PdfDocument.Save("output.pdf");

//IronPDFpattern:
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
// MigraDocpattern (DELETE):
PdfDocumentRenderer pdfRenderer = new PdfDocumentRenderer();
pdfRenderer.Document = document;
pdfRenderer.RenderDocument();
pdfRenderer.PdfDocument.Save("output.pdf");

//IronPDFpattern:
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Dépannage

Sujet 1 : Document/Section introuvable

Problème : les classes Documentet Sectionn'existent pas dans IronPDF.

Solution : Remplacer par une structure HTML :

// MigraDoc
Document document = new Document();
Section section = document.AddSection();

// IronPDF
string html = "<html><body>...</body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
// MigraDoc
Document document = new Document();
Section section = document.AddSection();

// IronPDF
string html = "<html><body>...</body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Sujet 2 : AddParagraph Not Found

Problème : la méthode AddParagraph() n'existe pas.

Solution : Utilisez des éléments HTML :

// MigraDoc
section.AddParagraph("Hello World");

// IronPDF
"<p>Hello World</p>"
// MigraDoc
section.AddParagraph("Hello World");

// IronPDF
"<p>Hello World</p>"
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Sujet 3 : PdfDocumentRenderer introuvable

Problème : la classe PdfDocumentRenderern'existe pas.

Solution : Utilisez ChromePdfRenderer:

// MigraDoc
PdfDocumentRenderer pdfRenderer = new PdfDocumentRenderer();

// IronPDF
var renderer = new ChromePdfRenderer();
// MigraDoc
PdfDocumentRenderer pdfRenderer = new PdfDocumentRenderer();

// IronPDF
var renderer = new ChromePdfRenderer();
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Edition 4 : AddPageField ne fonctionne pas

Problème : la méthode AddPageField()n'existe pas.

Solution : Utiliser la syntaxe des espaces réservés d'IronPDF :

// MigraDoc
footerPara.AddPageField();

// IronPDF
pdf.AddTextFooter("Page {page}");
// MigraDoc
footerPara.AddPageField();

// IronPDF
pdf.AddTextFooter("Page {page}");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Liste de contrôle de la migration

Pré-migration

  • [Identifier toutes les déclarations de MigraDocutilisant
  • [Les structures de tableaux de documents (colonnes, lignes, style)
  • [Le contenu de l'en-tête et du pied de page ainsi que l'utilisation des champs de la page doivent être notés
  • [Lister les styles personnalisés définis avec document.Styles
  • [Obtenir la clé de licence IronPDF

Modifications du paquet

  • supprimer le paquet PdfSharp-MigraDoc [ ] Supprimer le paquet PdfSharp-MigraDoc [ ]
  • supprimer le paquet PdfSharp-MigraDoc-GDI [ ] Supprimer le paquet PdfSharp-MigraDoc-GDI [ ]
  • [Installer le package NuGet IronPdf : dotnet add package IronPdf
  • [Mise à jour des importations d'espaces de noms

Modifications du code

  • [Ajouter la configuration de la clé de licence au démarrage
  • [Remplacer Document/Section par une structure HTML
  • [Convertir les éléments AddParagraph() en éléments HTML <p>
  • [ ] Convertir Table/Row/Cell en structure HTML <table>
  • [Remplacer AddPageField()par {page}
  • [Remplacer AddNumPagesField()par {total-pages}
  • [Convertir les propriétés Format en styles CSS
  • [Remplacer PdfDocumentRendererpar ChromePdfRenderer

Testing

  • [Comparer les résultats visuels entre l'ancien et le nouveau PDF
  • [Vérifier que les sauts de page fonctionnent correctement
  • [Vérifier le rendu des en-têtes/pieds de page et les numéros de page
  • [Valider la mise en forme et les bordures des tableaux
  • [Test avec des documents complexes de plusieurs pages

Post-Migration

  • [Supprimer la documentation relative à MigraDoc
  • [Mettre à jour les supports de formation de l'équipe
  • [Documenter les nouveaux emplacements des modèles HTML

Conclusion

La migration de MigraDocvers IronPdf élimine la courbe d'apprentissage abrupte du modèle d'objet de document propriétaire de MigraDoctout en donnant accès à des capacités de stylisme CSS3 complètes. Le passage du paradigme de la construction programmatique de documents au rendu HTML d'abord réduit considérablement la complexité du code - souvent de 80 % ou plus pour les mises en page complexes.

Les principaux changements apportés à cette migration sont les suivants :

  1. Modèle de contenu : Document/Section/Paragraphe → éléments HTML
  2. Styling : propriétés Format → CSS
  3. Tables : AddTable()/AddRow()/AddColumn() → HTML <table>
  4. Placeholders : AddPageField(){page}
  5. Renderer : PdfDocumentRendererChromePdfRenderer

Explorez la documentation complète IronPDF, tutoriel, et référence API pour accélérer votre migration MigraDoc.

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