Passer au contenu du pied de page
UTILISATION DE IRONPDF

Comment créer des fichiers PDF dans .NET Core

Créer un document PDF par programmation est une approche courante et une exigence fréquente dans les applications web modernes. Que vous construisiez des factures, des rapports ou tout système basé sur des documents, savoir comment créer efficacement des fichiers PDF dans les applications ASP et .NET Core est essentiel. Dans ce tutoriel, nous explorerons les meilleures méthodes pour gérer la tâche de création de fichiers PDF .NET Core en utilisant IronPDF. Il s'agit d'une puissante bibliothèque .NET Core qui simplifie les capacités de génération de PDF. Pour des détails techniques complets, consultez la documentation officielle.

Commencer avec IronPDF

IronPDF est une bibliothèque PDF complète .NET Core qui transforme la création complexe de PDF en opérations simples. Contrairement aux approches traditionnelles qui nécessitent de dessiner manuellement des éléments, IronPDF exploite le balisage HTML et CSS pour générer des fichiers PDF qui répondent précisément à vos exigences de conception.

Pour commencer à créer des PDF dans votre projet de bibliothèque .NET Core, installez le package IronPDF NuGet en utilisant la console du gestionnaire de packages de Visual Studio avec la commande suivante :

Install-Package IronPdf

Cette simple installation vous donne accès immédiatement à des capacités robustes de génération de PDF pour vos applications web.

Créer votre premier document PDF

Créons un document PDF simple pour comprendre les bases. L'exemple suivant démontre la génération de PDF avec un contenu formaté :

using IronPdf;
// Create a new ChromePdfRenderer object
var renderer = new ChromePdfRenderer();
// Define HTML content with styling
var html = @"
    <html>
        <body style='font-family: Arial; margin: 40px;'>
            <h1>Hello World PDF Document</h1>
            <p>This is your first PDF file created with IronPDF!</p>
        </body>
    </html>";
// Generate PDF from HTML
var pdf = renderer.RenderHtmlAsPdf(html);
// Save the PDF document
pdf.SaveAs("output.pdf");
using IronPdf;
// Create a new ChromePdfRenderer object
var renderer = new ChromePdfRenderer();
// Define HTML content with styling
var html = @"
    <html>
        <body style='font-family: Arial; margin: 40px;'>
            <h1>Hello World PDF Document</h1>
            <p>This is your first PDF file created with IronPDF!</p>
        </body>
    </html>";
// Generate PDF from HTML
var pdf = renderer.RenderHtmlAsPdf(html);
// Save the PDF document
pdf.SaveAs("output.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Ce code crée un nouvel objet PdfDocument qui créera un nouveau PDF en rendant le contenu HTML. Le ChromePdfRenderer gère la conversion, garantissant que vos documents PDF conservent un formatage cohérent.

Sortie

Conversion de HTML en PDF avec des fonctionnalités avancées

IronPDF excelle à convertir des pages web complexes et du contenu HTML en fichiers PDF professionnels. Le code suivant explore comment créer un nouveau document PDF avec des fonctionnalités plus avancées comme les tableaux, les images et les éléments stylisés :

public void CreateAdvancedPdf()
{
    var renderer = new ChromePdfRenderer();
    // Configure rendering options
    renderer.RenderingOptions.MarginTop = 25;
    renderer.RenderingOptions.MarginBottom = 25;
    var html = @"
        <html>
        <head>
            <style>
                table { width: 100%; border-collapse: collapse; }
                th, td { padding: 10px; border: 1px solid #ddd; }
                th { background-color: #f2f2f2; }
            </style>
        </head>
        <body>
            <h2>Sales Report</h2>
            <table>
                <tr>
                    <th>Product</th>
                    <th>Quantity</th>
                    <th>Total</th>
                </tr>
                <tr>
                    <td>Software License</td>
                    <td>10</td>
                    <td>$500</td>
               </tr>
            </table>
        </body>
        </html>";
    // Create PDF file
    var pdf = renderer.RenderHtmlAsPdf(html);
    pdf.SaveAs("report.pdf");
}
public void CreateAdvancedPdf()
{
    var renderer = new ChromePdfRenderer();
    // Configure rendering options
    renderer.RenderingOptions.MarginTop = 25;
    renderer.RenderingOptions.MarginBottom = 25;
    var html = @"
        <html>
        <head>
            <style>
                table { width: 100%; border-collapse: collapse; }
                th, td { padding: 10px; border: 1px solid #ddd; }
                th { background-color: #f2f2f2; }
            </style>
        </head>
        <body>
            <h2>Sales Report</h2>
            <table>
                <tr>
                    <th>Product</th>
                    <th>Quantity</th>
                    <th>Total</th>
                </tr>
                <tr>
                    <td>Software License</td>
                    <td>10</td>
                    <td>$500</td>
               </tr>
            </table>
        </body>
        </html>";
    // Create PDF file
    var pdf = renderer.RenderHtmlAsPdf(html);
    pdf.SaveAs("report.pdf");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Cet exemple montre comment créer des documents PDF avec des tableaux formatés, démontrant la capacité d'IronPDF à gérer des mises en page complexes et le style CSS.

Sortie

Comment créer des fichiers PDF dans .NET Core : Figure 2 - PDF avec fonctionnalités avancées

Travailler avec les applications ASP.NET Core

Intégrer la génération de PDF dans les vues ASP.NET Core MVC est simple. Voici un exemple d'implémentation de projet pour générer des PDF à partir d'un contrôleur :

using Microsoft.AspNetCore.Mvc;
using IronPdf;
using System.IO;
public class DocumentController : Controller
{
    public IActionResult GeneratePdf()
    {
        var renderer = new ChromePdfRenderer();
        // Create HTML content
        var html = "<h1>Invoice</h1><p>Thank you for your purchase!</p>";
        // Generate PDF
        var pdf = renderer.RenderHtmlAsPdf(html);
        byte[] pdfBytes = pdf.BinaryData;
    // Return PDF file using the byte array, setting the content type to PDF
    return File(pdfBytes,
            "application/pdf",
            "document.pdf");
       }
    }
}
using Microsoft.AspNetCore.Mvc;
using IronPdf;
using System.IO;
public class DocumentController : Controller
{
    public IActionResult GeneratePdf()
    {
        var renderer = new ChromePdfRenderer();
        // Create HTML content
        var html = "<h1>Invoice</h1><p>Thank you for your purchase!</p>";
        // Generate PDF
        var pdf = renderer.RenderHtmlAsPdf(html);
        byte[] pdfBytes = pdf.BinaryData;
    // Return PDF file using the byte array, setting the content type to PDF
    return File(pdfBytes,
            "application/pdf",
            "document.pdf");
       }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Cette méthode de contrôleur génère un document PDF et le renvoie comme un fichier téléchargeable, parfait pour le traitement côté serveur dans les applications web. Vous pourriez également utiliser un nouvel objet MemoryStream pour gérer la création du document PDF.

Sortie

Comment créer des fichiers PDF dans .NET Core : Figure 3 - PDF généré avec notre contrôleur ASP.NET

Techniques avancées de génération de PDF

IronPDF prend en charge de nombreuses fonctionnalités avancées pour la création de PDF. Vous pouvez ajouter des en-têtes, pieds de page, numéros de page, et même fusionner plusieurs fichiers PDF :

public void CreatePdfWithHeaderFooter()
{
    var renderer = new ChromePdfRenderer();
    // Add header
    renderer.RenderingOptions.TextHeader = new TextHeaderFooter
    {
        CenterText = "Company Report",
        DrawDividerLine = true
    };
    // Add footer with page numbers
    renderer.RenderingOptions.TextFooter = new TextHeaderFooter
    {
        CenterText = "Page {page} of {total-pages}",
        DrawDividerLine = true
    };
    var html = "<h1>Annual Report</h1><p>Content goes here...</p>";
    var pdf = renderer.RenderHtmlAsPdf(html);
    // Save the new document
    pdf.SaveAs("report-with-header.pdf");
}
// Merge multiple PDFs
public void MergePdfFiles()
{
    var renderer = new ChromePdfRenderer();
    var pdf1 = renderer.RenderHtmlAsPdf("<p>First Document</p>");
    var pdf2 = renderer.RenderHtmlAsPdf("<p>Second Document</p>");
    // Merge PDF documents
    var merged = PdfDocument.Merge(pdf1, pdf2);
    merged.SaveAs("merged.pdf");
}
// Example of iterating over something, illustrating 'int i' and 'index'
public void ProcessMultipleFiles(string[] filePaths)
{
    for (int i = 0; i < filePaths.Length; i++)
    {
        // Use 'i' as an index to process each source file
        var source file = filePaths[i];
        Console.WriteLine($"Processing file at index {i}: {source file}");
        // Imagine code here to load or process the file
        // var pdf = PdfDocument.FromFile(sourceFile); // load
    }
}
public void CreatePdfWithHeaderFooter()
{
    var renderer = new ChromePdfRenderer();
    // Add header
    renderer.RenderingOptions.TextHeader = new TextHeaderFooter
    {
        CenterText = "Company Report",
        DrawDividerLine = true
    };
    // Add footer with page numbers
    renderer.RenderingOptions.TextFooter = new TextHeaderFooter
    {
        CenterText = "Page {page} of {total-pages}",
        DrawDividerLine = true
    };
    var html = "<h1>Annual Report</h1><p>Content goes here...</p>";
    var pdf = renderer.RenderHtmlAsPdf(html);
    // Save the new document
    pdf.SaveAs("report-with-header.pdf");
}
// Merge multiple PDFs
public void MergePdfFiles()
{
    var renderer = new ChromePdfRenderer();
    var pdf1 = renderer.RenderHtmlAsPdf("<p>First Document</p>");
    var pdf2 = renderer.RenderHtmlAsPdf("<p>Second Document</p>");
    // Merge PDF documents
    var merged = PdfDocument.Merge(pdf1, pdf2);
    merged.SaveAs("merged.pdf");
}
// Example of iterating over something, illustrating 'int i' and 'index'
public void ProcessMultipleFiles(string[] filePaths)
{
    for (int i = 0; i < filePaths.Length; i++)
    {
        // Use 'i' as an index to process each source file
        var source file = filePaths[i];
        Console.WriteLine($"Processing file at index {i}: {source file}");
        // Imagine code here to load or process the file
        // var pdf = PdfDocument.FromFile(sourceFile); // load
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Ces exemples démontrent l'ajout de touches professionnelles à vos documents PDF et la combinaison de plusieurs fichiers en un seul document.

Comment créer des fichiers PDF dans .NET Core : Figure 4 - PDF créé avec en-têtes et pieds de page simples, personnalisés

Travailler avec les formulaires et le contenu dynamique

IronPDF peut créer des documents PDF interactifs avec des champs de formulaire :

public void CreatePdfWithForm()
{
    var html = @"
    <!DOCTYPE html>
    <html>
    <head>
        <title>PDF Test Form</title>
        <style>
            body {
                font-family: Arial, sans-serif;
                margin: 20px;
                background-color: #f4f4f4;
            }
            .form-container {
                width: 400px;
                padding: 20px;
                border: 1px solid #ccc;
                border-radius: 8px;
                background-color: #fff;
                box-shadow: 2px 2px 5px rgba(0,0,0,0.1);
            }
            .form-group {
                margin-bottom: 15px;
            }
            label {
                display: block; /* Make label take up full width */
                margin-bottom: 5px;
                font-weight: bold;
                color: #333;
            }
            input[type='text'], textarea {
                width: 100%;
                padding: 10px;
                border: 1px solid #ddd;
                border-radius: 4px;
                box-sizing: border-box; /* Include padding and border in the element's total width and height */
            }
            textarea {
                height: 100px;
                resize: vertical;
            }
            .checkbox-group {
                display: flex;
                align-items: center;
            }
            .checkbox-group label {
                display: inline;
                font-weight: normal;
                margin-left: 8px;
            }
        </style>
    </head>
    <body>
        <div class='form-container'>
            <h2>Document Generation Test Form</h2>
            <form>
                <div class='form-group'>
                    <label for='fullName'>Full Name:</label>
                </div>
                <div class='form-group'>
                    <label for='comments'>Comments/Feedback:</label>
                    <textarea id='comments' name='comments' placeholder='Type your feedback here...'></textarea>
                </div>
                <div class='form-group checkbox-group'>
                    <label for='agree'>I agree to the terms and conditions.</label>
                </div>
                <button style='padding: 10px 15px; background-color: #007bff; color: white; border: none; border-radius: 4px; cursor: pointer;'>
                    Test Button Rendering
                </button>
            </form>
        </div>
    </body>
    </html>";
    var renderer = new ChromePdfRenderer();
    renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
    var pdf = renderer.RenderHtmlAsPdf(html);
    pdf.SaveAs("form.pdf");
}
public void CreatePdfWithForm()
{
    var html = @"
    <!DOCTYPE html>
    <html>
    <head>
        <title>PDF Test Form</title>
        <style>
            body {
                font-family: Arial, sans-serif;
                margin: 20px;
                background-color: #f4f4f4;
            }
            .form-container {
                width: 400px;
                padding: 20px;
                border: 1px solid #ccc;
                border-radius: 8px;
                background-color: #fff;
                box-shadow: 2px 2px 5px rgba(0,0,0,0.1);
            }
            .form-group {
                margin-bottom: 15px;
            }
            label {
                display: block; /* Make label take up full width */
                margin-bottom: 5px;
                font-weight: bold;
                color: #333;
            }
            input[type='text'], textarea {
                width: 100%;
                padding: 10px;
                border: 1px solid #ddd;
                border-radius: 4px;
                box-sizing: border-box; /* Include padding and border in the element's total width and height */
            }
            textarea {
                height: 100px;
                resize: vertical;
            }
            .checkbox-group {
                display: flex;
                align-items: center;
            }
            .checkbox-group label {
                display: inline;
                font-weight: normal;
                margin-left: 8px;
            }
        </style>
    </head>
    <body>
        <div class='form-container'>
            <h2>Document Generation Test Form</h2>
            <form>
                <div class='form-group'>
                    <label for='fullName'>Full Name:</label>
                </div>
                <div class='form-group'>
                    <label for='comments'>Comments/Feedback:</label>
                    <textarea id='comments' name='comments' placeholder='Type your feedback here...'></textarea>
                </div>
                <div class='form-group checkbox-group'>
                    <label for='agree'>I agree to the terms and conditions.</label>
                </div>
                <button style='padding: 10px 15px; background-color: #007bff; color: white; border: none; border-radius: 4px; cursor: pointer;'>
                    Test Button Rendering
                </button>
            </form>
        </div>
    </body>
    </html>";
    var renderer = new ChromePdfRenderer();
    renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
    var pdf = renderer.RenderHtmlAsPdf(html);
    pdf.SaveAs("form.pdf");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Cela crée un PDF interactif avec des champs de formulaire que les utilisateurs peuvent remplir, parfait pour les applications nécessitant une saisie utilisateur. Le code montre également où un lien HTML pourrait être utilisé dans le contenu généré.

Sortie PDF with Editable Form

Comment créer des fichiers PDF dans .NET Core : Figure 5 - PDF avec formulaire remplissable

Meilleures pratiques et gestion des erreurs

Lors de la génération de fichiers PDF en production, implémentez une gestion appropriée des erreurs :

try
{
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf(html);
    pdf.SaveAs("output.pdf");
}
catch (Exception ex)
{
    // Log error and handle appropriately
    Console.WriteLine($"PDF generation failed: {ex.Message}");
}
try
{
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf(html);
    pdf.SaveAs("output.pdf");
}
catch (Exception ex)
{
    // Log error and handle appropriately
    Console.WriteLine($"PDF generation failed: {ex.Message}");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Validez toujours les données d'entrée et gérez les exceptions avec soin pour garantir une génération de PDF fiable dans vos applications.

Conclusion

IronPDF transforme la tâche complexe de création d'un fichier PDF dans .NET Core en un processus simple et gérable. De la création de documents de base aux fonctionnalités avancées comme les formulaires, les images et la gestion des pages, cette bibliothèque .NET fournit des outils complets pour générer des documents PDF par programmation. En utilisant une approche commune de conversion HTML, vous pouvez rapidement charger des données et télécharger les fichiers finis.

Que vous construisiez des rapports simples ou des documents complexes sur plusieurs pages, l'API intuitive d'IronPDF et son puissant moteur de rendu en font le choix idéal pour les développeurs .NET. Commencez à créer des fichiers PDF professionnels dans vos applications ASP.NET Core dès aujourd'hui avec l'essai gratuit d'IronPDF.

Prêt à améliorer votre application avec des capacités de génération de PDF ? Commencez avec IronPDF et découvrez à quel point la création de PDF peut être facile.

Questions Fréquemment Posées

Qu'est-ce que IronPDF ?

IronPDF est une bibliothèque puissante pour .NET Core conçue pour simplifier la création et la manipulation de documents PDF dans les applications ASP.NET.

Comment puis-je créer des documents PDF dans .NET Core ?

Vous pouvez créer des documents PDF dans .NET Core en utilisant la bibliothèque IronPDF, qui offre des méthodes simples pour générer des PDF de manière programmatique dans vos applications.

Quels types de documents puis-je créer avec IronPDF ?

Avec IronPDF, vous pouvez créer un large éventail de types de documents, y compris des factures, des rapports et tout autre système basé sur des documents nécessitant la génération de PDF.

IronPDF est-il adapté aux applications ASP.NET ?

Oui, IronPDF est particulièrement bien adapté pour les applications ASP.NET, offrant une intégration transparente et des capacités de création de PDF efficaces.

Où puis-je trouver la documentation officielle pour IronPDF ?

La documentation officielle pour IronPDF est disponible sur le site web d'Iron Software, offrant des détails techniques complets et des guides pour utiliser la bibliothèque.

Quels sont les avantages d'utiliser IronPDF pour la création de PDF ?

Les avantages d'utiliser IronPDF incluent sa facilité d'utilisation, ses fonctionnalités robustes et la capacité de générer des PDFs de haute qualité de manière programmatique dans les applications .NET Core.

IronPDF peut-il gérer des tâches complexes de génération de PDF ?

Oui, IronPDF est capable de gérer des tâches complexes de génération de PDF, ce qui le rend idéal pour les applications nécessitant des manipulations et créations de PDF avancées.

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