Passer au contenu du pied de page
UTILISATION DE IRONPDF

Comment convertir les vues ASP.NET MVC en PDF : IronPDF vs iTextSharp

Full Comparison

Looking for a detailed feature-by-feature breakdown? See how IronPDF stacks up against Itext on pricing, HTML support, and licensing.

View Full Comparison

La conversion des vues ASP.NET MVC en documents PDF est une exigence fondamentale des applications web modernes. Que vous génériez des factures, des rapports ou des certificats, le défi est clair : comment transformer les vues Razor en fichiers PDF Professional qui préservent la mise en forme et le style ? Ce guide compare l'ancienne bibliothèque iTextSharp avec IronPDF — la solution moderne basée sur Chromium — afin que vous puissiez choisir l'outil adapté à votre flux de travail de génération de PDF.

 IronPDF vs iTextSharp MVC : Vue vers fichier PDF en C# : Image 1 - IronPDF

Pourquoi convertir des vues MVC en PDF ?

Les entreprises dépendent de la génération de PDF pour d'innombrables opérations critiques. Les systèmes de facturation nécessitent des documents de facturation infalsifiables. Les services des ressources humaines produisent des certificats et des contrats de travail. Les équipes de vente établissent des devis et des propositions. Les plateformes éducatives délivrent des certificats d'achèvement. Chaque scénario exige une génération de PDF côté serveur qui maintient un formatage cohérent sur tous les appareils et toutes les plateformes.

Selon la documentation ASP.NET Core , les vues Razor offrent un excellent système de modèles pour générer du contenu dynamique pouvant ensuite être converti en PDF. La question essentielle est de savoir quelle bibliothèque offre la solution la plus précise, la plus facile à maintenir et la plus conforme à la législation.

 IronPDF vs iTextSharp MVC : Vue vers fichier PDF en C# : Image 2 - Fonctionnalités

Comment iTextSharp gère-t-il la conversion MVC vers PDF?

iTextSharp est une référence en matière de génération de PDF .NET depuis plus d'une décennie. Porté à l'origine à partir de la bibliothèque Java iText, il offre un contrôle de bas niveau sur la création de PDF. Cependant, son approche de la conversion HTML montre qu'elle est dépassée, en particulier lorsqu'il s'agit d'un contenu web moderne.

Installation d'iTextSharp

Pour ajouter iTextSharp à votre projet ASP.NET Core MVC, installez le package NuGet à l'aide de la console du gestionnaire de packages :

Install-Package iTextSharp
Install-Package iTextSharp
SHELL

 IronPDF vs iTextSharp MVC : Affichage vers un fichier PDF en C# : Image 3 - Installation d'iTextSharp

Mise en œuvre de base avec iTextSharp

Voici un exemple complet montrant comment convertir une vue MVC en PDF à l'aide de la classe XMLWorkerHelper d'iTextSharp dans votre projet ASP.NET MVC :

using iTextSharp.text;
using iTextSharp.tool.xml;
using iTextSharp.text.pdf;
using System.IO;

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View();
    }

    public ActionResult GeneratePDF()
    {
        // Create a simple invoice HTML
        string invoiceHtml = @"
            <h1>Invoice #1001</h1>
            <p>Date: " + DateTime.Nonw.ToString("MM/dd/yyyy") + @"</p>
            <table border='1'>
                <tr><th>Item</th><th>Price</th></tr>
                <tr><td>Product A</td><td>$99.99</td></tr>
                <tr><td>Product B</td><td>$149.99</td></tr>
            </table>
            <p><strong>Total: $249.98</strong></p>";

        // Create PDF document using iTextSharp
        using var stream = new MemoryStream();
        var document = new Document(PageSize.A4);
        PdfWriter writer = PdfWriter.GetInstance(document, stream);
        document.Open();

        using (var srHtml = new StringReader(invoiceHtml))
        {
            XMLWorkerHelper.GetInstance().ParseXHtml(writer, document, srHtml);
        }

        document.Close();

        // Return the PDF file
        return new FileContentResult(stream.ToArray(), "application/pdf")
        {
            FileDownloadName = "invoice.pdf"
        };
    }
}
using iTextSharp.text;
using iTextSharp.tool.xml;
using iTextSharp.text.pdf;
using System.IO;

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View();
    }

    public ActionResult GeneratePDF()
    {
        // Create a simple invoice HTML
        string invoiceHtml = @"
            <h1>Invoice #1001</h1>
            <p>Date: " + DateTime.Nonw.ToString("MM/dd/yyyy") + @"</p>
            <table border='1'>
                <tr><th>Item</th><th>Price</th></tr>
                <tr><td>Product A</td><td>$99.99</td></tr>
                <tr><td>Product B</td><td>$149.99</td></tr>
            </table>
            <p><strong>Total: $249.98</strong></p>";

        // Create PDF document using iTextSharp
        using var stream = new MemoryStream();
        var document = new Document(PageSize.A4);
        PdfWriter writer = PdfWriter.GetInstance(document, stream);
        document.Open();

        using (var srHtml = new StringReader(invoiceHtml))
        {
            XMLWorkerHelper.GetInstance().ParseXHtml(writer, document, srHtml);
        }

        document.Close();

        // Return the PDF file
        return new FileContentResult(stream.ToArray(), "application/pdf")
        {
            FileDownloadName = "invoice.pdf"
        };
    }
}
Imports iTextSharp.text
Imports iTextSharp.tool.xml
Imports iTextSharp.text.pdf
Imports System.IO

Public Class HomeController
    Inherits Controller

    Public Function Index() As ActionResult
        Return View()
    End Function

    Public Function GeneratePDF() As ActionResult
        ' Create a simple invoice HTML
        Dim invoiceHtml As String = "
            <h1>Invoice #1001</h1>
            <p>Date: " & DateTime.Now.ToString("MM/dd/yyyy") & "</p>
            <table border='1'>
                <tr><th>Item</th><th>Price</th></tr>
                <tr><td>Product A</td><td>$99.99</td></tr>
                <tr><td>Product B</td><td>$149.99</td></tr>
            </table>
            <p><strong>Total: $249.98</strong></p>"

        ' Create PDF document using iTextSharp
        Using stream As New MemoryStream()
            Dim document As New Document(PageSize.A4)
            Dim writer As PdfWriter = PdfWriter.GetInstance(document, stream)
            document.Open()

            Using srHtml As New StringReader(invoiceHtml)
                XMLWorkerHelper.GetInstance().ParseXHtml(writer, document, srHtml)
            End Using

            document.Close()

            ' Return the PDF file
            Return New FileContentResult(stream.ToArray(), "application/pdf") With {
                .FileDownloadName = "invoice.pdf"
            }
        End Using
    End Function
End Class
$vbLabelText   $csharpLabel

Cet exemple crée un document PDF basique à partir de contenu HTML. La classe XMLWorkerHelper traite la chaîne HTML et ajoute des éléments au document PDF en utilisant le modèle objet. Le PdfWriter gère le processus de génération PDF proprement dit, tandis que le Document gère la structure de la page.

Sortie

 IronPDF vs iTextSharp MVC View to PDF File in C#: Image 4 - PDF Output

Quelles sont les principales limitations d'iTextSharp ?

La classe XMLWorkerHelper prend en charge les balises HTML de base et le CSS en ligne. Les propriétés CSS3 modernes, les mises en page flexbox et les systèmes de grille ne sont pas rendus. Le contenu dépendant de JavaScript disparaît entièrement. Les styles complexes tels que les dégradés, les ombres et les transformations sont ignorés. Même les classes Bootstrap standard ne s'appliquent pas, ce qui donne aux vues soigneusement conçues un aspect simple et peu professionnel.

De nombreux développeurs ont reporté ces limitations sur Stack Overflow, entraînant une frustration lorsqu'ils essaient de convertir des vues MVC en PDF avec iTextSharp.

Le modèle de licence d'iTextSharp est peut-être encore plus préoccupant. La bibliothèque utilise la licence AGPL, qui exige que vous mettiez en open-source l'ensemble de votre application si vous utilisez la version gratuite. Les licences commerciales coûtent plusieurs milliers de dollars par an, ce qui les rend prohibitifs pour de nombreuses entreprises. Cette restriction de licence a poussé de nombreux développeurs à chercher des alternatives qui correspondent mieux aux besoins de développement commercial. Comme indiqué dans la documentation .NET de Microsoft , le choix de bibliothèques dotées de licences appropriées est essentiel pour les projets commerciaux.

 IronPDF vs iTextSharp MVC View to PDF File in C#: Image 5 - IronPDF vs iTextSharp MVC View to PDF

Comment convertir des vues MVC en PDF avec une bibliothèque moderne ?

IronPDF représente une approche moderne de la génération de PDF dans ASP.NET Core MVC. Construit sur le moteur de rendu Chromium, il convertit HTML en PDF exactement comme il apparaît dans Google Chrome, en préservant tous les éléments de style, d'exécution JavaScript et de responsive design.

Comment installer IronPDF?

Ajoutez IronPDF à votre projet via la console du gestionnaire de packages NuGet :

Install-Package IronPdf
Install-Package IronPdf
SHELL

 IronPDF vs iTextSharp MVC : Vue vers fichier PDF en C# : Image 6 - Installation

Mise en œuvre moderne avec IronPDF

La même facture créée ci-dessus utilise désormais du CSS moderne et un rendu HTML5 complet grâce à ChromePdfRenderer d'IronPDF :

using IronPdf;

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View();
    }

    public ActionResult GenerateModernPDF()
    {
        // Create a styled invoice HTML with modern CSS
        string invoiceHtml = @"
            <style>
                body { font-family: 'Segoe UI', Arial; padding: 40px; }
                .invoice-header {
                    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
                    color: white;
                    padding: 30px;
                    border-radius: 10px;
                }
                table {
                    width: 100%;
                    border-collapse: collapse;
                    margin: 20px 0;
                }
                th {
                    background-color: #f3f4f6;
                    padding: 12px;
                    text-align: left;
                }
                td {
                    padding: 12px;
                    border-bottom: 1px solid #e5e7eb;
                }
                .total {
                    font-size: 24px;
                    color: #10b981;
                    text-align: right;
                    margin-top: 20px;
                }
            </style>
            <div class='invoice-header'>
                <h1>Invoice #1001</h1>
                <p>Date: " + DateTime.Nonw.ToString("MMMM dd, yyyy") + @"</p>
            </div>
            <table>
                <tr><th>Item</th><th>Quantity</th><th>Price</th></tr>
                <tr><td>Premium Package</td><td>1</td><td>$99.99</td></tr>
                <tr><td>Professional Services</td><td>2</td><td>$149.99</td></tr>
            </table>
            <div class='total'>Total: $249.98</div>
            <p>Page numbers and additional content can be added to each page.</p>";

        // Use Chromium engine for rendering
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(invoiceHtml);

        // Set content disposition for download
        Response.Headers.Append("Content-Disposition", "attachment; filename=modern-invoice.pdf");

        // Return the PDF file with binary data
        return new FileContentResult(pdf.BinaryData, "application/pdf");
    }
}
using IronPdf;

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View();
    }

    public ActionResult GenerateModernPDF()
    {
        // Create a styled invoice HTML with modern CSS
        string invoiceHtml = @"
            <style>
                body { font-family: 'Segoe UI', Arial; padding: 40px; }
                .invoice-header {
                    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
                    color: white;
                    padding: 30px;
                    border-radius: 10px;
                }
                table {
                    width: 100%;
                    border-collapse: collapse;
                    margin: 20px 0;
                }
                th {
                    background-color: #f3f4f6;
                    padding: 12px;
                    text-align: left;
                }
                td {
                    padding: 12px;
                    border-bottom: 1px solid #e5e7eb;
                }
                .total {
                    font-size: 24px;
                    color: #10b981;
                    text-align: right;
                    margin-top: 20px;
                }
            </style>
            <div class='invoice-header'>
                <h1>Invoice #1001</h1>
                <p>Date: " + DateTime.Nonw.ToString("MMMM dd, yyyy") + @"</p>
            </div>
            <table>
                <tr><th>Item</th><th>Quantity</th><th>Price</th></tr>
                <tr><td>Premium Package</td><td>1</td><td>$99.99</td></tr>
                <tr><td>Professional Services</td><td>2</td><td>$149.99</td></tr>
            </table>
            <div class='total'>Total: $249.98</div>
            <p>Page numbers and additional content can be added to each page.</p>";

        // Use Chromium engine for rendering
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(invoiceHtml);

        // Set content disposition for download
        Response.Headers.Append("Content-Disposition", "attachment; filename=modern-invoice.pdf");

        // Return the PDF file with binary data
        return new FileContentResult(pdf.BinaryData, "application/pdf");
    }
}
Imports IronPdf

Public Class HomeController
    Inherits Controller

    Public Function Index() As ActionResult
        Return View()
    End Function

    Public Function GenerateModernPDF() As ActionResult
        ' Create a styled invoice HTML with modern CSS
        Dim invoiceHtml As String = "
            <style>
                body { font-family: 'Segoe UI', Arial; padding: 40px; }
                .invoice-header {
                    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
                    color: white;
                    padding: 30px;
                    border-radius: 10px;
                }
                table {
                    width: 100%;
                    border-collapse: collapse;
                    margin: 20px 0;
                }
                th {
                    background-color: #f3f4f6;
                    padding: 12px;
                    text-align: left;
                }
                td {
                    padding: 12px;
                    border-bottom: 1px solid #e5e7eb;
                }
                .total {
                    font-size: 24px;
                    color: #10b981;
                    text-align: right;
                    margin-top: 20px;
                }
            </style>
            <div class='invoice-header'>
                <h1>Invoice #1001</h1>
                <p>Date: " & DateTime.Now.ToString("MMMM dd, yyyy") & "</p>
            </div>
            <table>
                <tr><th>Item</th><th>Quantity</th><th>Price</th></tr>
                <tr><td>Premium Package</td><td>1</td><td>$99.99</td></tr>
                <tr><td>Professional Services</td><td>2</td><td>$149.99</td></tr>
            </table>
            <div class='total'>Total: $249.98</div>
            <p>Page numbers and additional content can be added to each page.</p>"

        ' Use Chromium engine for rendering
        Dim renderer As New ChromePdfRenderer()
        Dim pdf = renderer.RenderHtmlAsPdf(invoiceHtml)

        ' Set content disposition for download
        Response.Headers.Append("Content-Disposition", "attachment; filename=modern-invoice.pdf")

        ' Return the PDF file with binary data
        Return New FileContentResult(pdf.BinaryData, "application/pdf")
    End Function
End Class
$vbLabelText   $csharpLabel

Le ChromePdfRenderer convertit le HTML exactement comme Chrome l'afficherait. Les dégradés, les polices modernes et les styles sophistiqués s'affichent tous avec précision. Le moteur de rendu gère les propriétés CSS complexes qu'iTextSharp ne peut pas traiter, notamment flexbox, les mises en page en grille et les transformations CSS rendues sous forme de cadres statiques. La méthode RenderHtmlAsPdf simplifie la conversion de HTML en PDF dans MVC.

Sortie

 IronPDF vs iTextSharp MVC View to PDF File in C#: Image 7 - IronPDF Output

Démarrez votre essai gratuit et découvrez la génération moderne de PDF grâce au moteur de rendu basé sur Chrome.

 IronPDF vs iTextSharp MVC : Vue vers fichier PDF en C# : Image 8 - Compatibilité multiplateforme

Comment choisir entre ces deux bibliothèques PDF ?

Lorsqu'on compare iTextSharp et IronPDF pour la conversion de vues .NET MVC, plusieurs facteurs différencient clairement ces bibliothèques en termes de qualité de rendu, d'expérience de développement et de licence.

Comparaison des fonctionnalités

Comparaison des fonctionnalités d'iTextSharp et IronPDF
Caractéristique iTextSharp IronPDF
Prise en charge HTML5 Limitée Complet
Rendu CSS3 Basique uniquement Complet
Exécution de JavaScript Non Oui
Prise en charge de Flexbox/Grid Non Oui
Compatibilité Bootstrap Partiel Complet
Prise en charge des polices Web Limitée Complet
Graphiques SVG Non Oui
Design réactif Non Oui
Complexité de l'API Niveau inférieur Niveau élevé

Considérations relatives aux licences

La différence de licence entre ces bibliothèques a un impact significatif sur le développement commercial. la licence AGPL d'iTextSharp crée des obligations légales que de nombreuses entreprises ne peuvent accepter. L'utilisation de la version gratuite nécessite l'ouverture de l'ensemble de votre application, y compris la logique commerciale propriétaire. Cette restriction rend iTextSharp inadapté à la plupart des projets commerciaux, à moins que vous n'achetiez une licence commerciale onéreuse.

IronPDF propose une licence commerciale simple à partir de $799 pour un seul développeur. La licence comprend un an de mises à jour et d'assistance, sans obligation de mettre votre application en open-source. Ce modèle de tarification transparent s'aligne sur les budgets typiques de développement de logiciels, rendant la génération de PDF professionnels accessible aux entreprises de toutes tailles lors de la conversion de vues MVC en PDF en C#.

 IronPDF vs iTextSharp MVC : Vue vers fichier PDF en C# : Image 9 - Licence

Analyse de la qualité des sorties

La différence de qualité de rendu devient immédiatement évidente lorsque l'on compare les résultats. iTextSharp produit des PDF basiques qui ressemblent à des documents du début des années 2000. Les tableaux n'ont pas de style approprié, les polices sont par défaut des normes du système et les éléments de conception modernes disparaissent complètement. Les PDF qui en résultent ne sont pas professionnels et ne correspondent pas à l'image de marque de votre application.

IronPDF génère des PDF d'une précision pixel parfaite, parfaitement adaptés à votre design web. Les dégradés s'affichent avec précision, les polices personnalisées correctement et les mises en page complexes conservent leur structure. Le moteur Chromium garantit que vos PDF s'affichent de manière identique à la version web, préservant ainsi l'identité de marque et l'aspect Professional de tous les documents générés.

Quelles sont les fonctionnalités avancées offertes par le moteur de rendu PDF ?

Au-delà de la simple conversion HTML, IronPDF offre des fonctionnalités de niveau entreprise qui accélèrent la génération de PDF Professional . La documentation complète de l'API démontre les vastes capacités de la bibliothèque en matière de conversion de vues MVC en PDF.

En-têtes et pieds de page

Ajoutez des en-têtes et des pieds de page professionnels avec un contenu dynamique :

var renderer = new ChromePdfRenderer
{
    RenderingOptions = new ChromePdfRenderOptions
    {
        HtmlHeader = new HtmlHeaderFooter
        {
            MaxHeight = 25,
            HtmlFragment = "<div style='text-align: center'>Company Name</div>"
        },
        HtmlFooter = new HtmlHeaderFooter
        {
            MaxHeight = 20,
            HtmlFragment = "<center>Page {page} of {total-pages}</center>"
        }
    }
};
var renderer = new ChromePdfRenderer
{
    RenderingOptions = new ChromePdfRenderOptions
    {
        HtmlHeader = new HtmlHeaderFooter
        {
            MaxHeight = 25,
            HtmlFragment = "<div style='text-align: center'>Company Name</div>"
        },
        HtmlFooter = new HtmlHeaderFooter
        {
            MaxHeight = 20,
            HtmlFragment = "<center>Page {page} of {total-pages}</center>"
        }
    }
};
Dim renderer = New ChromePdfRenderer With {
    .RenderingOptions = New ChromePdfRenderOptions With {
        .HtmlHeader = New HtmlHeaderFooter With {
            .MaxHeight = 25,
            .HtmlFragment = "<div style='text-align: center'>Company Name</div>"
        },
        .HtmlFooter = New HtmlHeaderFooter With {
            .MaxHeight = 20,
            .HtmlFragment = "<center>Page {page} of {total-pages}</center>"
        }
    }
}
$vbLabelText   $csharpLabel

Cette configuration permet d'ajouter une image de marque cohérente à chaque page. Les espaces réservés {page} et {total-pages} se remplissent automatiquement avec les valeurs correctes, assurant une pagination précise dans tout votre document. Pour plus d'options de configuration, consultez le guide des en-têtes et pieds de page .

Sécurité et Chiffrement

Protégez vos documents sensibles par des mots de passe et des autorisations grâce aux fonctionnalités de sécurité d'IronPDF :

var pdf = renderer.RenderHtmlAsPdf(html);

// Add password protection
pdf.SecuritySettings.UserPassword = "user123";
pdf.SecuritySettings.OwnerPassword = "owner456";

// Set permissions
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
var pdf = renderer.RenderHtmlAsPdf(html);

// Add password protection
pdf.SecuritySettings.UserPassword = "user123";
pdf.SecuritySettings.OwnerPassword = "owner456";

// Set permissions
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
Dim pdf = renderer.RenderHtmlAsPdf(html)

' Add password protection
pdf.SecuritySettings.UserPassword = "user123"
pdf.SecuritySettings.OwnerPassword = "owner456"

' Set permissions
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights
pdf.SecuritySettings.AllowUserCopyPasteContent = False
$vbLabelText   $csharpLabel

Ces paramètres de sécurité empêchent les accès non autorisés et contrôlent la façon dont les destinataires peuvent interagir avec vos PDF lorsque vous convertissez des vues MVC en PDF. Vous pouvez limiter l'impression, la copie et la modification tout en conservant le contrôle total du propriétaire. Pour en savoir plus, consultez la documentation de sécurité au format PDF .

Sortie

 IronPDF vs iTextSharp MVC : Vue vers fichier PDF en C# : Image 10 - Sortie PDF sécurisée

Traitement des champs de formulaire

IronPDF convertit les formulaires HTML en formulaires PDF interactifs sans nécessiter d'outils supplémentaires :

string formHtml = @"
    <form>
        <label>Name:</label>
        <input type='checkbox'> Accept Terms
        <select name='country'>
            <option>USA</option>
            <option>Canada</option>
        </select>
    </form>";

var pdf = renderer.RenderHtmlAsPdf(formHtml);
string formHtml = @"
    <form>
        <label>Name:</label>
        <input type='checkbox'> Accept Terms
        <select name='country'>
            <option>USA</option>
            <option>Canada</option>
        </select>
    </form>";

var pdf = renderer.RenderHtmlAsPdf(formHtml);
Imports System

Dim formHtml As String = "
    <form>
        <label>Name:</label>
        <input type='checkbox'> Accept Terms
        <select name='country'>
            <option>USA</option>
            <option>Canada</option>
        </select>
    </form>"

Dim pdf = renderer.RenderHtmlAsPdf(formHtml)
$vbLabelText   $csharpLabel

Le PDF résultant conserve l'interactivité du formulaire, permettant aux utilisateurs de remplir les champs directement dans leur lecteur PDF. Cette fonctionnalité élimine le besoin d'outils de création de formulaires distincts, simplifiant ainsi votre flux de travail documentaire. Consultez la documentation relative aux formulaires pour découvrir d'autres options.

Sortie

 IronPDF vs iTextSharp MVC View to PDF File in C#: Image 11 - Form Output

Comment résoudre les problèmes courants de génération de PDF ?

Même avec les bibliothèques modernes, certains défis nécessitent des solutions spécifiques pour garantir une sortie PDF optimale. Les modèles suivants traitent des problèmes les plus fréquemment rencontrés par les développeurs lors de la conversion de vues MVC en PDF.

Optimisation du rendu CSS

Pour obtenir de meilleurs résultats avec des feuilles de style CSS complexes lorsque vous convertissez des fichiers HTML au format PDF, utilisez des requêtes de support d'impression :

renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
$vbLabelText   $csharpLabel

Ce paramètre applique des règles CSS spécifiques à l'impression, optimisant les mises en page pour la sortie PDF plutôt que pour l'affichage à l'écran. L'association de ces éléments avec des feuilles de style optimisées pour l'impression vous offre un contrôle précis sur les sauts de page, les marges et la typographie. Le guide des types de médias CSS explique des options de rendu supplémentaires.

Temps d'exécution JavaScript

Lors de la conversion de contenu dynamique, laissez le temps à l'exécution du JavaScript de se terminer avant de capturer le PDF. Cela garantit que tous les appels AJAX et les manipulations du DOM se terminent correctement :

renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.RenderDelay = 500; // milliseconds
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.RenderDelay = 500; // milliseconds
$vbLabelText   $csharpLabel

Cette configuration garantit que les appels AJAX se terminent et que les manipulations DOM sont achevées avant que la génération du PDF ne commence, capturant ainsi l'état entièrement rendu de votre vue MVC. Pour les bibliothèques de graphiques et autres contenus utilisant beaucoup l'asynchrone, il peut être nécessaire d'augmenter la valeur du délai.

Sortie

 IronPDF vs iTextSharp MVC View to PDF File in C#: Image 12 - Exécution de JavaScript Output

Intégration de polices et formatage de documents

Pour garantir un affichage correct des polices personnalisées, intégrez-les directement dans votre code HTML à l'aide d'URI de données encodées en base64 :

@font-face {
    font-family: 'CustomFont';
    src: url(data:font/woff2;base64,[base64-encoded-font]) format('woff2');
}

L'intégration des polices directement dans le code HTML garantit un rendu cohérent dans tous les environnements, éliminant ainsi les problèmes de polices manquantes dans les documents PDF générés. Cette approche fonctionne tout aussi bien, que vous utilisiez un rendu basé sur une URL via RenderUrlAsPdf ou un rendu basé sur une chaîne de caractères via RenderHtmlAsPdf.

Pour plus d'options de configuration, notamment la taille de la page, l'orientation et le contrôle des marges, consultez la documentation des options de rendu IronPDF . Vous pouvez également consulter des exemples de projets sur GitHub qui illustrent les modèles d'intégration MVC courants.

Quelles sont vos prochaines étapes ?

Bien qu'iTextSharp ait bien servi la communauté .NET pendant de nombreuses années, le développement web moderne exige une génération de PDF plus performante. Le moteur de rendu d'IronPDF, basé sur Chrome, offre une précision au pixel près et une prise en charge complète de CSS3, indispensables aux applications ASP.NET MVC actuelles. Son API de haut niveau, sa documentation exhaustive et sa licence avantageuse pour les entreprises en font le choix idéal pour les projets ASP.NET Core MVC.

Pour aller plus loin dans la génération de PDF dans votre application :

Téléchargez la version d'essai gratuite et exécutez les exemples de code de ce guide dans votre propre projet.

Questions Fréquemment Posées

Quel est l'objectif de la conversion des vues MVC en PDF ?

La conversion des vues MVC en PDF permet aux développeurs de générer des documents imprimables et facilement partageables directement à partir d'applications web, en préservant la mise en page et la conception de la vue d'origine.

Qu'est-ce que IronPDF ?

IronPDF est une bibliothèque .NET qui facilite la création, l'édition et la conversion de documents PDF au sein des applications .NET, offrant ainsi un moyen simple d'intégrer la fonctionnalité PDF.

Comment IronPDF simplifie-t-il la conversion des vues MVC en PDF ?

IronPDF simplifie le processus en permettant aux développeurs de rendre les vues HTML et MVC directement au format PDF sans exigences de codage approfondies, en préservant la mise en page et la conception d'origine.

Quelles sont les limitations d'iTextSharp pour la conversion de PDF MVC ?

Le XMLWorkerHelper d'iTextSharp ne prend pas en charge les CSS3 modernes, les mises en page flexbox, grid, l'exécution de JavaScript, ou le style Bootstrap. Sa licence AGPL nécessite également l'open-source de votre application si vous utilisez la version gratuite.

IronPDF peut-il rendre JavaScript avant de générer le PDF ?

Oui, IronPDF prend en charge l'exécution de JavaScript pendant le rendu. Vous pouvez l'activer avec EnableJavaScript et contrôler le délai de rendu avec WaitFor.RenderDelay pour garantir que le contenu dynamique est entièrement chargé.

Quelles sont les exigences système pour utiliser IronPDF ?

IronPDF prend en charge .NET 6, .NET 7, .NET 8, .NET Core, et .NET Framework 4.6.2+. Il fonctionne sur Windows, Linux et macOS.

Est-il possible de personnaliser la sortie PDF lors de la conversion de vues MVC ?

Oui, en using IronPDF, les développeurs peuvent personnaliser la sortie PDF en ajustant les paramètres tels que la taille de la page, l'orientation, les marges, les en-têtes, les pieds de page, les paramètres de sécurité, et le type de média CSS.

IronPDF prend-il en charge le style CSS pour la conversion PDF ?

IronPDF prend en charge le style CSS3 complet via son moteur de rendu Chromium, garantissant que le PDF converti conserve l'apparence visuelle de l'HTML ou de la vue MVC d'origine, y compris les polices, les couleurs, les gradients, et la mise en page.

Comment la performance d'IronPDF se compare-t-elle à iTextSharp ?

IronPDF utilise le moteur Chromium pour le rendu, ce qui ajoute une surcharge de démarrage mais offre une précision de rendu bien supérieure. Pour les scénarios de volume élevé, IronPDF prend en charge le rendu asynchrone et peut être optimisé avec des instances de rendu sécurisées par thread.

Où puis-je trouver de la documentation sur IronPDF ?

La documentation complète pour IronPDF est disponible sur https://ironpdf.com/how-to/, incluant des guides, tutoriels, et des références API pour aider les développeurs dans l'implémentation.

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