Passer au contenu du pied de page
UTILISATION DE IRONPDF

Comment convertir du HTML ASP en PDF avec .NET Core et IronPDF

IronPDF convertit le HTML ASP.NET en PDF à l'aide d'un moteur de rendu basé sur Chrome qui préserve le style CSS et les fonctionnalités JavaScript. Ce tutoriel présente des méthodes efficaces pour convertir des chaînes HTML, des vues et des URL en documents PDF professionnels dans les applications ASP.NET Core.

La conversion de HTML dynamique ASP.NET en documents PDF est une exigence fondamentale dans les applications modernes ASP.NET. Que vous génériez des factures, créiez des rapports ou produisiez des fichiers PDF téléchargeables, la transformation du contenu HTML en documents PDF professionnels est essentielle pour offrir une expérience utilisateur soignée.

IronPDF simplifie ce processus de conversion ASP HTML vers PDF en fournissant un moteur de rendu fiable basé sur Chrome qui préserve parfaitement votre formatage HTML, votre style CSS et vos fonctionnalités JavaScript dans les documents PDF résultants. Ce tutoriel vous guide à travers des méthodes efficaces pour convertir du HTML en PDF dans les applications ASP.NET Core en utilisant la bibliothèque IronPDF , et son moteur de rendu Chrome pour des résultats d'une précision optimale .

Bannière de la page d'accueil de la bibliothèque IronPDF C# PDF présentant ses principales fonctionnalités, notamment la conversion HTML vers PDF, les outils d'édition PDF et les options de déploiement avec boutons de téléchargement et de licence.

Pourquoi les développeurs ont-ils besoin de la conversion HTML en PDF ?

Les applications ASP.NET Core génèrent souvent du contenu HTML dynamique que les utilisateurs doivent télécharger, partager ou archiver en fichiers PDF. La conversion HTML en PDF offre plusieurs avantages clés par rapport au simple enregistrement de pages web ou la prise de captures d'écran.

Les documents PDF conservent un formatage cohérent sur tous les appareils et plateformes, garantissant que vos factures ont le même aspect, qu'elles soient vues sur Windows, Mac ou appareils mobiles. Elles sont idéales pour les documents existants nécessitant des signatures numériques , des paramètres de sécurité ou une impression professionnelle. La conversion PDF côté serveur élimine le besoin pour les utilisateurs d'installer un logiciel spécifique et offre un meilleur contrôle sur le fichier PDF final.

Les cas d'utilisation courants incluent la génération de rapports financiers à partir des données du tableau de bord, la création de factures téléchargeables à partir des informations de commande, la production de billets et de laissez-passer avec des codes QR et la conversion des soumissions de formulaires en enregistrements permanents. En gérant la conversion ASP HTML vers PDF sur le serveur, vous garantissez des résultats cohérents quelles que soient les capacités du navigateur ou de l'appareil de l'utilisateur. IronPDF excelle dans le rendu de mises en page complexes et gère avec fluidité les contenus riches en JavaScript .

! Aperçu des fonctionnalités d'IronPDF présentant quatre catégories principales : Créer des PDF, Convertir des PDF, Modifier des PDF et Signer et sécuriser des PDF, avec des listes de fonctionnalités détaillées sous chaque section.

Comment fonctionne l'installation d'IronPDF ?

Commencer avec IronPDF dans votre projet ASP.NET Core est simple. La bibliothèque prend en charge .NET Core 2.0 et plus, ainsi que .NET 5, 6, 7 et 8, la rendant compatible avec toutes les applications modernes ASP.NET Core pour des tâches de conversion HTML en PDF. Pour connaître les exigences spécifiques à chaque plateforme, consultez le guide de compatibilité Windows ou les instructions d'installation Linux .

Quelle méthode d'installation dois-je utiliser ?

La méthode la plus rapide pour ajouter IronPDF à votre projet ASP.NET afin de convertir du HTML en PDF consiste à utiliser le gestionnaire de packages NuGet dans Visual Studio. Cliquez avec le bouton droit sur votre projet dans l'Explorateur de solutions, sélectionnez "Gérer les packages NuGet" et recherchez IronPDF. Cliquez sur Installer sur la dernière version pour l'ajouter à votre projet. Pour des instructions d'installation détaillées, consultez le guide d'installation d'IronPDF. Les autres méthodes d'installation incluent le programme d'installation Windows ou le déploiement Docker .

Install-Package IronPdf

! Console du gestionnaire de packages affichant le processus d'installation du package NuGet IronPDF avec plusieurs téléchargements de dépendances

Quels espaces de noms sont requis ?

Une fois installé, ajoutez l'espace de noms IronPDF à tout fichier C# où vous travaillerez avec la génération de PDF :

using IronPdf;
using IronPdf;
$vbLabelText   $csharpLabel

Cette simple déclaration d'importation vous donne accès à toutes les fonctionnalités d'IronPDF, y compris la classe ChromePdfRenderer pour la conversion HTML et diverses options de configuration pour personnaliser votre sortie PDF. Vous pouvez également explorer l'intégration de F# ou l'utilisation de VB.NET si vous travaillez avec d'autres langages .NET.

! Présentation des fonctionnalités d'IronPDF : rendu pixel perfect, configuration en 5 minutes et compatibilité multiplateforme pour la génération de PDF dans les applications .NET.

Comment configurer IronPDF pour mon environnement ?

Pour la plupart des applications ASP.NET Core, IronPDF fonctionne immédiatement après l'installation sans configuration supplémentaire. Cependant, vous pouvez définir des options globales dans votre fichier Program.cs ou Startup.cs :

// Optional: Configure IronPDF settings
Installation.TempFolderPath = @"C:\Temp\IronPdf\";
Installation.LinuxAndDockerDependenciesAutoConfig = true;

// Configure logging for debugging
Installation.LoggingMode = IronPdf.Logging.LoggingMode.All;
Installation.LogFilePath = "IronPdfLog.log";

// For Azure deployments
Installation.AzureQuickDeployment = true;
// Optional: Configure IronPDF settings
Installation.TempFolderPath = @"C:\Temp\IronPdf\";
Installation.LinuxAndDockerDependenciesAutoConfig = true;

// Configure logging for debugging
Installation.LoggingMode = IronPdf.Logging.LoggingMode.All;
Installation.LogFilePath = "IronPdfLog.log";

// For Azure deployments
Installation.AzureQuickDeployment = true;
$vbLabelText   $csharpLabel

Ces options de configuration permettent d'améliorer IronPDF pour votre environnement d'hébergement spécifique, que vous utilisiez Windows, Linux ou des conteneurs Docker. Pour les déploiements Azure , activez AzureQuickDeployment pour des performances optimales. Lors du déploiement sur AWS Lambda , envisagez d'utiliser des déploiements conteneurisés. Assurez-vous que les fichiers de script et d'application ne résident pas dans le même répertoire pour éviter les conflits. Pour les environnements de production, implémentez une journalisation personnalisée afin de surveiller les opérations de génération de PDF.

Diagramme de compatibilité multiplateforme d'IronPDF illustrant la compatibilité avec les versions .NET, les systèmes d'exploitation, les plateformes cloud et les environnements de développement.

Comment convertir des chaînes HTML en PDF ?

L'opération la plus fondamentale dans IronPDF est la conversion de chaînes HTML directement en documents PDF. Cette approche est parfaite lorsque vous construisez du contenu HTML dynamiquement dans votre application ASP.NET ou que vous travaillez avec des documents HTML comme modèles. La méthode RenderHtmlAsPdf offre une grande flexibilité pour la conversion de HTML provenant de diverses sources .

// Create a PDF converter instance
var renderer = new ChromePdfRenderer();

// Configure rendering options for better quality
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
renderer.RenderingOptions.RenderDelay = 500; // Wait for content to load

// Convert HTML string to PDF document
var pdf = renderer.RenderHtmlAsPdf("<h1>Sales Report</h1><p>Generated on: " + DateTime.Now + "</p>");

// Save the resultant PDF document to a file
pdf.SaveAs("report.pdf");

// Or stream directly to browser
var pdfBytes = pdf.BinaryData;
// Create a PDF converter instance
var renderer = new ChromePdfRenderer();

// Configure rendering options for better quality
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
renderer.RenderingOptions.RenderDelay = 500; // Wait for content to load

// Convert HTML string to PDF document
var pdf = renderer.RenderHtmlAsPdf("<h1>Sales Report</h1><p>Generated on: " + DateTime.Now + "</p>");

// Save the resultant PDF document to a file
pdf.SaveAs("report.pdf");

// Or stream directly to browser
var pdfBytes = pdf.BinaryData;
$vbLabelText   $csharpLabel

Cet extrait de code crée une nouvelle instance de ChromePdfRenderer, qui utilise le moteur Chromium pour rendre votre contenu HTML. La méthode RenderHtmlAsPdf accepte toute chaîne HTML valide et retourne un objet PdfDocument. Vous pouvez ensuite enregistrer ce PDF sur disque ou le diffuser directement aux utilisateurs sous forme de tableau d'octets. Découvrez plus d'informations sur la classe ChromePdfRenderer et ses fonctionnalités. Pour les scénarios avancés, explorez la génération PDF asynchrone ou le traitement parallèle pour des performances améliorées.

À quoi ressemble le fichier PDF généré ?

Capture d'écran d'un visualiseur PDF affichant un rapport de ventes basique avec titre et horodatage, généré le 1/11/2025 à 23h51min30s.

Comment inclure du style CSS et des images ?

IronPDF prend entièrement en charge le style CSS et peut intégrer des images provenant de diverses sources lors de la conversion de HTML en PDF. Le convertisseur PDF gère les éléments HTML avec une fidélité totale, y compris diverses balises HTML et URL d'images. Il prend en charge les polices web , les graphiques SVG et même les images encodées en base64 :

var html = @"
    <style>
        body { font-family: Arial, sans-serif; margin: 40px; }
        h1 { color: #2c3e50; border-bottom: 2px solid #3498db; }
        .highlight { background-color: #f1c40f; padding: 5px; }
        .table { width: 100%; border-collapse: collapse; }
        .table td { border: 1px solid #ddd; padding: 8px; }
    </style>
    <h1>Monthly Report</h1>
    <p>This HTML document includes <span class='highlight'>highlighted text</span> and styling.</p>
    <table class='table'>
        <tr><td>Product</td><td>Sales</td></tr>
        <tr><td>Widget A</td><td>$1,234</td></tr>
    </table>
    <img src='data:image/png;base64,iVBORw0KGgoAAAANS...' alt='Logo' />";

var renderer = new ChromePdfRenderer();

// Set base URL for relative paths
renderer.RenderingOptions.BaseUrl = "___PROTECTED_URL_90___";

// Enable JavaScript execution
renderer.RenderingOptions.EnableJavaScript = true;

var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("styled-report.pdf");
var html = @"
    <style>
        body { font-family: Arial, sans-serif; margin: 40px; }
        h1 { color: #2c3e50; border-bottom: 2px solid #3498db; }
        .highlight { background-color: #f1c40f; padding: 5px; }
        .table { width: 100%; border-collapse: collapse; }
        .table td { border: 1px solid #ddd; padding: 8px; }
    </style>
    <h1>Monthly Report</h1>
    <p>This HTML document includes <span class='highlight'>highlighted text</span> and styling.</p>
    <table class='table'>
        <tr><td>Product</td><td>Sales</td></tr>
        <tr><td>Widget A</td><td>$1,234</td></tr>
    </table>
    <img src='data:image/png;base64,iVBORw0KGgoAAAANS...' alt='Logo' />";

var renderer = new ChromePdfRenderer();

// Set base URL for relative paths
renderer.RenderingOptions.BaseUrl = "___PROTECTED_URL_90___";

// Enable JavaScript execution
renderer.RenderingOptions.EnableJavaScript = true;

var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("styled-report.pdf");
$vbLabelText   $csharpLabel

Le moteur de rendu traite les styles en ligne, les fichiers CSS et même les images encodées en base64. Cela garantit que vos pages PDF conservent l'apparence exacte de votre contenu HTML, y compris les fonctionnalités CSS3 modernes comme les mises en page flexbox et grille. La conversion HTML en PDF préserve toutes les balises HTML et leur style sans générer de pages blanches. Pour les mises en page complexes, envisagez d'utiliser la compatibilité Bootstrap ou d'implémenter des sauts de page personnalisés .

Comment convertir des vues ASP.NET Core en PDF ?

Convertir des pages web ou des vues ASP.NET Core entières en PDF est une exigence courante, surtout pour générer des rapports basés sur des documents HTML existants. IronPDF propose plusieurs approches pour ce scénario de conversion HTML en PDF ASP, que vous travailliez avec une seule page ou plusieurs pages. Vous pouvez convertir des vues Razor , des pages ASPX ou même des composants Blazor .

Comment convertir les vues du contrôleur ?

Dans votre contrôleur ASP.NET Core, vous pouvez afficher une vue en HTML, puis la convertir en document PDF grâce aux capacités de rendu efficaces de la bibliothèque PDF d'IronPDF. Cette approche fonctionne aussi bien avec les applications MVC Core qu'avec les applications MVC Framework :

[HttpGet]
public async Task<IActionResult> DownloadPdf()
{
    var invoiceModel = new InvoiceModel
    {
        InvoiceNumber = 12345,
        Date = DateTime.Now,
        CustomerName = "Acme Corporation",
        Items = new List<InvoiceItem>
        {
            new InvoiceItem { Description = "Service", Quantity = 1, Price = 100.0 },
            new InvoiceItem { Description = "Support", Quantity = 2, Price = 50.0 }
        },
        Total = 200.0
    };

    // Render the view to HTML string
    var htmlContent = await RenderViewToString("Invoice", invoiceModel);

    // Convert HTML to PDF with custom settings
    var renderer = new ChromePdfRenderer();
    renderer.RenderingOptions.PaperSize = PdfPaperSize.Letter;
    renderer.RenderingOptions.PrintHtmlBackgrounds = true;

    // Add header with invoice number
    renderer.RenderingOptions.TextHeader.CenterText = "Invoice #" + invoiceModel.InvoiceNumber;
    renderer.RenderingOptions.TextHeader.DrawDividerLine = true;

    var pdf = renderer.RenderHtmlAsPdf(htmlContent);

    // Apply security settings if needed
    pdf.SecuritySettings.AllowUserPrinting = true;
    pdf.SecuritySettings.AllowUserCopyPasteContent = false;

    // Return PDF to browser
    var contentType = "application/pdf";
    var fileName = $"invoice_{invoiceModel.InvoiceNumber}_{DateTime.Now:yyyyMMdd}.pdf";
    return File(pdf.BinaryData, contentType, fileName);
}

private async Task<string> RenderViewToString(string viewName, object model)
{
    ViewData.Model = model;
    using (var writer = new StringWriter())
    {
        var viewResult = viewEngine.FindView(ControllerContext, viewName, false);

        if (!viewResult.Success)
        {
            throw new ArgumentException($"View '{viewName}' not found");
        }

        var viewContext = new ViewContext(
            ControllerContext,
            viewResult.View,
            ViewData,
            TempData,
            writer,
            new HtmlHelperOptions()
        );

        await viewResult.View.RenderAsync(viewContext);
        return writer.GetStringBuilder().ToString();
    }
}
[HttpGet]
public async Task<IActionResult> DownloadPdf()
{
    var invoiceModel = new InvoiceModel
    {
        InvoiceNumber = 12345,
        Date = DateTime.Now,
        CustomerName = "Acme Corporation",
        Items = new List<InvoiceItem>
        {
            new InvoiceItem { Description = "Service", Quantity = 1, Price = 100.0 },
            new InvoiceItem { Description = "Support", Quantity = 2, Price = 50.0 }
        },
        Total = 200.0
    };

    // Render the view to HTML string
    var htmlContent = await RenderViewToString("Invoice", invoiceModel);

    // Convert HTML to PDF with custom settings
    var renderer = new ChromePdfRenderer();
    renderer.RenderingOptions.PaperSize = PdfPaperSize.Letter;
    renderer.RenderingOptions.PrintHtmlBackgrounds = true;

    // Add header with invoice number
    renderer.RenderingOptions.TextHeader.CenterText = "Invoice #" + invoiceModel.InvoiceNumber;
    renderer.RenderingOptions.TextHeader.DrawDividerLine = true;

    var pdf = renderer.RenderHtmlAsPdf(htmlContent);

    // Apply security settings if needed
    pdf.SecuritySettings.AllowUserPrinting = true;
    pdf.SecuritySettings.AllowUserCopyPasteContent = false;

    // Return PDF to browser
    var contentType = "application/pdf";
    var fileName = $"invoice_{invoiceModel.InvoiceNumber}_{DateTime.Now:yyyyMMdd}.pdf";
    return File(pdf.BinaryData, contentType, fileName);
}

private async Task<string> RenderViewToString(string viewName, object model)
{
    ViewData.Model = model;
    using (var writer = new StringWriter())
    {
        var viewResult = viewEngine.FindView(ControllerContext, viewName, false);

        if (!viewResult.Success)
        {
            throw new ArgumentException($"View '{viewName}' not found");
        }

        var viewContext = new ViewContext(
            ControllerContext,
            viewResult.View,
            ViewData,
            TempData,
            writer,
            new HtmlHelperOptions()
        );

        await viewResult.View.RenderAsync(viewContext);
        return writer.GetStringBuilder().ToString();
    }
}
$vbLabelText   $csharpLabel

Cette approche rend d'abord votre vue Razor en une chaîne HTML, puis la convertit en PDF. Le PDF est renvoyé comme un téléchargement de fichier au navigateur de l'utilisateur avec un nom de fichier approprié. Cela fonctionne parfaitement, que vous convertissiez un fichier ASPX ou des vues Razor modernes. Pour les scénarios de conversion sans interface graphique , envisagez d'utiliser Razor.Templating.Core.

À quoi ressemble le PDF généré?

! Visionneuse PDF affichant la facture rendue n° 12345 datée du 11/02/2025 pour Acme Corporation, comportant un seul élément de service d'un montant total de 100,00 $.

Comment convertir des URL en PDF ?

Pour les pages web existantes, vous pouvez utiliser IronPDF comme convertisseur HTML vers PDF efficace pour transformer directement n'importe quelle URL spécifiée en fichiers PDF. Il suffit de fournir une adresse HTTP ou HTTPS comme paramètre d'URL. Cette méthode prend en charge les cookies et les en-têtes HTTP personnalisés pour les requêtes authentifiées :

[HttpGet]
public IActionResult GeneratePdfFromUrl()
{
    var renderer = new ChromePdfRenderer();

    // Configure for web page rendering
    renderer.RenderingOptions.WaitFor.RenderDelay = 2000; // Wait for dynamic content
    renderer.RenderingOptions.ViewportWidth = 1920; // Desktop viewport

    // Add custom headers if needed
    renderer.RenderingOptions.HttpHeaders.Add("Authorization", "Bearer your-token");

    // Handle cookies for authentication
    renderer.RenderingOptions.Cookies.Add(new Cookie
    {
        Name = "session_id",
        Value = Request.Cookies["session_id"],
        Domain = "yourdomain.com"
    });

    // Convert a specified URL to PDF document
    var pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_91___");

    // Improve file size
    pdf.CompressImages(90);

    // Stream the PDF file to the browser
    return File(pdf.BinaryData, "application/pdf", "webpage.pdf");
}
[HttpGet]
public IActionResult GeneratePdfFromUrl()
{
    var renderer = new ChromePdfRenderer();

    // Configure for web page rendering
    renderer.RenderingOptions.WaitFor.RenderDelay = 2000; // Wait for dynamic content
    renderer.RenderingOptions.ViewportWidth = 1920; // Desktop viewport

    // Add custom headers if needed
    renderer.RenderingOptions.HttpHeaders.Add("Authorization", "Bearer your-token");

    // Handle cookies for authentication
    renderer.RenderingOptions.Cookies.Add(new Cookie
    {
        Name = "session_id",
        Value = Request.Cookies["session_id"],
        Domain = "yourdomain.com"
    });

    // Convert a specified URL to PDF document
    var pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_91___");

    // Improve file size
    pdf.CompressImages(90);

    // Stream the PDF file to the browser
    return File(pdf.BinaryData, "application/pdf", "webpage.pdf");
}
$vbLabelText   $csharpLabel

Cette méthode est particulièrement utile lorsque vous disposez déjà de pages web bien formatées et que vous souhaitez les proposer sous forme de versions PDF téléchargeables. La bibliothèque .NET gère toutes les ressources externes, y compris les feuilles de style, les scripts et les images, garantissant un rendu HTML complet. Le convertisseur renvoie un code d'état HTTP approprié s'il rencontre une URL invalide. Pour les sites utilisant beaucoup de JavaScript , ajustez le délai de rendu ou utilisez des conditions WaitFor .

Quel est le résultat de la conversion d'URL ?

! La page d'accueil de la bibliothèque IronPDF présente les fonctionnalités de conversion PDF en C#, notamment la conversion HTML vers PDF, les options tarifaires et des exemples de code pour les développeurs .NET.

Comment gérer les pages authentifiées ?

Lors de la conversion de pages authentifiées avec l'authentification par formulaire .NET ou d'autres mécanismes de sécurité, vous pouvez transmettre des cookies ou des en-têtes pour maintenir la session de l'utilisateur. Cela empêche la redirection vers un écran de connexion lors de la conversion PDF. IronPDF prend en charge différentes méthodes d'authentification, notamment l'authentification TLS et Kerberos :

var renderer = new ChromePdfRenderer();

// Set cookies for authenticated requests with user credentials
renderer.RenderingOptions.CustomCookies.Add("auth_token", Request.Cookies["auth_token"]);
renderer.RenderingOptions.CustomCookies.Add("session_id", Request.Cookies["session_id"]);

// Add authentication headers
renderer.RenderingOptions.HttpHeaders.Add("X-CSRF-Token", Request.Headers["X-CSRF-Token"]);

// For basic authentication
renderer.RenderingOptions.HttpLoginCredentials = new HttpLoginCredentials
{
    Username = "apiuser",
    Password = "securepassword"
};

// Configure timeout for slow-loading authenticated pages
renderer.RenderingOptions.RequestTimeout = 60000; // 60 seconds

// Convert protected web pages to PDF
var pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_92___");

// Add metadata for tracking
pdf.MetaData.Author = User.Identity.Name;
pdf.MetaData.CreationDate = DateTime.Now;

pdf.SaveAs("secure-report.pdf");
var renderer = new ChromePdfRenderer();

// Set cookies for authenticated requests with user credentials
renderer.RenderingOptions.CustomCookies.Add("auth_token", Request.Cookies["auth_token"]);
renderer.RenderingOptions.CustomCookies.Add("session_id", Request.Cookies["session_id"]);

// Add authentication headers
renderer.RenderingOptions.HttpHeaders.Add("X-CSRF-Token", Request.Headers["X-CSRF-Token"]);

// For basic authentication
renderer.RenderingOptions.HttpLoginCredentials = new HttpLoginCredentials
{
    Username = "apiuser",
    Password = "securepassword"
};

// Configure timeout for slow-loading authenticated pages
renderer.RenderingOptions.RequestTimeout = 60000; // 60 seconds

// Convert protected web pages to PDF
var pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_92___");

// Add metadata for tracking
pdf.MetaData.Author = User.Identity.Name;
pdf.MetaData.CreationDate = DateTime.Now;

pdf.SaveAs("secure-report.pdf");
$vbLabelText   $csharpLabel

Cela garantit que le contenu HTML protégé peut être converti en fichiers PDF tout en maintenant la sécurité. Le processus de conversion PDF respecte l'authentification de votre application, empêchant ainsi tout accès non autorisé aux documents sensibles. Vous pouvez transmettre les arguments nom d'utilisateur et mot de passe lorsque cela est nécessaire pour les scénarios d'authentification de base. Pour les implémentations SSO, envisagez d'utiliser la gestion du contexte de requête .## Comment puis-je personnaliser la sortie PDF ?

IronPDF offre de nombreuses options de personnalisation en tant que convertisseur PDF complet, permettant de contrôler la manière dont vos documents PDF sont générés à partir de documents HTML. Ces paramètres vous aident à créer des fichiers PDF professionnels répondant à des exigences spécifiques de mise en page et de formatage. Explorez l'ensemble des options de rendu disponibles.

Comment définir le format de page et les marges ?

Contrôlez précisément le format du papier et les marges pour des mises en page professionnelles :

var renderer = new ChromePdfRenderer();

// Set default page size for PDF pages
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;

// Control page width and margins for the PDF document
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;
renderer.RenderingOptions.MarginLeft = 20;
renderer.RenderingOptions.MarginRight = 20;

// Or use custom paper size
renderer.RenderingOptions.SetCustomPaperSizeInInches(8.5, 11);

// Control first page differently
renderer.RenderingOptions.FirstPageNumber = 1;

// Enable print-friendly CSS
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;

// Enable background colors and images
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
var renderer = new ChromePdfRenderer();

// Set default page size for PDF pages
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;

// Control page width and margins for the PDF document
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;
renderer.RenderingOptions.MarginLeft = 20;
renderer.RenderingOptions.MarginRight = 20;

// Or use custom paper size
renderer.RenderingOptions.SetCustomPaperSizeInInches(8.5, 11);

// Control first page differently
renderer.RenderingOptions.FirstPageNumber = 1;

// Enable print-friendly CSS
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;

// Enable background colors and images
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
$vbLabelText   $csharpLabel

Ces paramètres contrôlent la mise en page physique de vos pages PDF, incluant à la fois les pages impaires et paires. Vous pouvez choisir parmi les formats de papier standard ou définir des dimensions personnalisées, choisir une orientation portrait ou horizontale et ajuster les marges en fonction de vos exigences de conception pour plusieurs pages. Le système de modèles graphiques garantit un style cohérent sur toutes les pages. Pour des besoins d'orientation spécifiques, explorez les options de rotation de page .

À quoi ressemblent les PDF personnalisés ?

! La page d'accueil de la bibliothèque IronPDF présente les fonctionnalités de conversion PDF en C#, notamment la conversion HTML vers PDF, les options tarifaires et des exemples de code pour les développeurs .NET.

Comment ajouter des en-têtes et des pieds de page ?

L'ajout d'en-têtes et de pieds de page cohérents améliore l'aspect professionnel de vos documents PDF lors de la conversion de documents HTML. IronPDF prend en charge à la fois les en-têtes de texte et les en-têtes HTML :

// Add text-based header and footer
renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
{
    CenterText = "Company Report",
    LeftText = "{date}",
    RightText = "Confidential",
    FontSize = 12,
    FontFamily = "Arial",
    DrawDividerLine = true
};

renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
{
    CenterText = "Page {page} of {total-pages}",
    LeftText = "© 2024 Company Name",
    RightText = "{time}",
    FontSize = 10,
    DrawDividerLine = true
};

// Or use HTML headers for more complex layouts
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    HtmlFragment = @"
        <div style='display: flex; justify-content: space-between; align-items: center;'>
            <img src='logo.png' height='30' />
            <h2>Monthly Report</h2>
            <span>{date}</span>
        </div>",
    MaxHeight = 50,
    DrawDividerLine = true
};

renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
    HtmlFragment = @"
        <div style='text-align: center; font-size: 12px; color: #666;'>
            <p>Page {page} of {total-pages} | Document ID: {pdf-title}</p>
        </div>",
    MaxHeight = 30,
    LoadStylesAndCSSFromMainHtmlDocument = true
};
// Add text-based header and footer
renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
{
    CenterText = "Company Report",
    LeftText = "{date}",
    RightText = "Confidential",
    FontSize = 12,
    FontFamily = "Arial",
    DrawDividerLine = true
};

renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
{
    CenterText = "Page {page} of {total-pages}",
    LeftText = "© 2024 Company Name",
    RightText = "{time}",
    FontSize = 10,
    DrawDividerLine = true
};

// Or use HTML headers for more complex layouts
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    HtmlFragment = @"
        <div style='display: flex; justify-content: space-between; align-items: center;'>
            <img src='logo.png' height='30' />
            <h2>Monthly Report</h2>
            <span>{date}</span>
        </div>",
    MaxHeight = 50,
    DrawDividerLine = true
};

renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
    HtmlFragment = @"
        <div style='text-align: center; font-size: 12px; color: #666;'>
            <p>Page {page} of {total-pages} | Document ID: {pdf-title}</p>
        </div>",
    MaxHeight = 30,
    LoadStylesAndCSSFromMainHtmlDocument = true
};
$vbLabelText   $csharpLabel

Les en-têtes et les pieds de page prennent en charge les éléments HTML et la mise en forme avec des espaces réservés spéciaux pour les numéros de page , les dates et autres contenus dynamiques sur toutes les pages PDF. Le code suivant démontre comment ajouter des en-têtes professionnels à votre document généré dynamiquement ou à des documents PDF existants. Vous pouvez également appliquer des en-têtes à des pages spécifiques pour un contrôle plus précis.

Quelles sont les meilleures pratiques pour la conversion HTML vers PDF ?

Pour garantir des performances et une qualité optimales lors de la conversion de HTML en PDF, suivez ces pratiques éprouvées pour une conversion PDF réussie. Mettre en œuvre des stratégies d'optimisation des performances pour les déploiements à grande échelle.

Testez toujours votre rendu HTML dans un navigateur d'abord pour vérifier le style et la mise en page avant de générer des fichiers PDF. Utilisez les URL de base pour les ressources externes lorsque cela est possible, car les chemins relatifs peuvent poser problème lors de la conversion HTML vers PDF. Pour les pages web complexes utilisant beaucoup de JavaScript et comportant de nombreux éléments HTML, ajoutez des délais de rendu pour garantir un chargement complet :

// Performance optimization example
public class PdfService
{
    private readonly ChromePdfRenderer _renderer;

    public PdfService()
    {
        _renderer = new ChromePdfRenderer();

        // Configure for optimal performance
        _renderer.RenderingOptions.RenderDelay = 100;
        _renderer.RenderingOptions.Timeout = 60000;
        _renderer.RenderingOptions.UseMarginsOnHeaderAndFooter = UseMargins.All;

        // Enable caching for repeated conversions
        _renderer.RenderingOptions.EnableJavaScript = true;
        _renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
    }

    public async Task<byte[]> GeneratePdfAsync(string html, PdfOptions options = null)
    {
        if (options != null)
        {
            ApplyOptions(options);
        }

        // Use async for better performance
        var pdf = await Task.Run(() => _renderer.RenderHtmlAsPdf(html));

        // Improve file size
        if (options?.CompressImages ?? false)
        {
            pdf.CompressImages(90);
        }

        return pdf.BinaryData;
    }

    private void ApplyOptions(PdfOptions options)
    {
        if (options.PageSize.HasValue)
            _renderer.RenderingOptions.PaperSize = options.PageSize.Value;

        if (options.Environment)
            _renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Environment;
    }
}
// Performance optimization example
public class PdfService
{
    private readonly ChromePdfRenderer _renderer;

    public PdfService()
    {
        _renderer = new ChromePdfRenderer();

        // Configure for optimal performance
        _renderer.RenderingOptions.RenderDelay = 100;
        _renderer.RenderingOptions.Timeout = 60000;
        _renderer.RenderingOptions.UseMarginsOnHeaderAndFooter = UseMargins.All;

        // Enable caching for repeated conversions
        _renderer.RenderingOptions.EnableJavaScript = true;
        _renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
    }

    public async Task<byte[]> GeneratePdfAsync(string html, PdfOptions options = null)
    {
        if (options != null)
        {
            ApplyOptions(options);
        }

        // Use async for better performance
        var pdf = await Task.Run(() => _renderer.RenderHtmlAsPdf(html));

        // Improve file size
        if (options?.CompressImages ?? false)
        {
            pdf.CompressImages(90);
        }

        return pdf.BinaryData;
    }

    private void ApplyOptions(PdfOptions options)
    {
        if (options.PageSize.HasValue)
            _renderer.RenderingOptions.PaperSize = options.PageSize.Value;

        if (options.Environment)
            _renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Environment;
    }
}
$vbLabelText   $csharpLabel

Envisagez de mettre en œuvre le caching pour les documents PDF fréquemment générés afin de réduire la charge du serveur. Pour plus de bonnes pratiques concernant ASP.NET Core avec cette bibliothèque .NET, reportez-vous à la documentation officielle de Microsoft . Utilisez des méthodes asynchrones pour une meilleure évolutivité des applications web.

Lors du déploiement en production, configurez les chemins d'accès aux dossiers temporaires appropriés et assurez-vous que votre environnement d'hébergement dispose des dépendances nécessaires installées pour la bibliothèque PDF, en particulier pour les déploiements Linux . Évitez de placer à la fois le script et la logique de conversion dans le même répertoire pour éviter les conflits. Consultez notre guide de dépannage pour les scénarios de déploiement courants avec des documents PDF existants. Validez toujours les données saisies pour vous assurer qu'il ne s'agit pas d'une URL lorsque vous prévoyez de traiter directement du contenu HTML.

Pour les scénarios à volume élevé, envisagez la mise en œuvre d'un traitement parallèle ou l'utilisation d'IronPDF en tant que microservice . Surveillez l'utilisation de la mémoire et mettez en œuvre des modèles de libération appropriés. Lors de la manipulation de documents HTML volumineux, utilisez des approches de flux pour minimiser la surcharge mémoire.

Quelles sont les prochaines étapes de votre processus de génération de PDF ?

La conversion ASP HTML en PDF dans les applications ASP.NET Core devient simple avec IronPDF. Le moteur de rendu basé sur Chrome de la bibliothèque garantit une conversion précise tout en offrant de nombreuses options de personnalisation pour la génération de documents professionnels. Explorez des fonctionnalités avancées telles que la conformité PDF/A , les signatures numériques et la création de formulaires .

Que vous travailliez avec des chaînes HTML, des URL ou des pages Web complètes, IronPDF préserve la mise en forme exacte, le style CSS et le comportement JavaScript. Cet outil d'application web basé sur .NET gère efficacement l'ensemble du processus de conversion PDF. Pour un contrôle complet de vos documents, envisagez la compression PDF , le marquage en filigrane et la gestion des métadonnées .

Démarrez votre essai gratuit de 30 jours dès aujourd'hui pour implémenter la génération de PDF professionnels dans vos applications ASP.NET Core. Besoin d'aide pour choisir ? Consulter les options de licence ou réservez une démonstration avec notre équipe. Pour les déploiements en entreprise, découvrez nos niveaux de licences professionnelles .

La page de licences d'IronPDF présente quatre niveaux de tarification (Lite, Plus, Professionnel et Illimité) avec différentes limites par développeur, emplacement et projet.

Questions Fréquemment Posées

Quelle est la meilleure façon de convertir du HTML en PDF avec ASP.NET Core ?

La meilleure façon de convertir du HTML en PDF avec ASP.NET Core est d'utiliser IronPDF. Cette solution permet de transformer facilement le contenu HTML et de générer des PDF de haute qualité.

Pourquoi utiliser IronPDF pour convertir du HTML en PDF ?

IronPDF offre des fonctionnalités robustes telles qu'un rendu précis, la prise en charge de CSS et JavaScript, et la capacité de gérer des documents HTML complexes. Il est donc idéal pour générer des PDF de qualité professionnelle à partir d'applications ASP.NET.

IronPDF peut-il gérer le contenu dynamique dans les applications ASP.NET ?

Oui, IronPDF gère efficacement le contenu dynamique dans les applications ASP.NET. Il traite et convertit le contenu HTML dynamique en PDF, ce qui le rend idéal pour la création de factures, de rapports et d'autres documents.

Est-il possible d'inclure des styles CSS dans le PDF généré avec IronPDF ?

Bien sûr, IronPDF prend en charge les styles CSS. Vous pouvez appliquer vos feuilles de style CSS existantes pour que le PDF généré corresponde à la mise en page de votre contenu HTML.

Comment IronPDF prend-il en charge JavaScript lors de la conversion HTML vers PDF ?

IronPDF prend entièrement en charge JavaScript, ce qui vous permet d'inclure des éléments dynamiques et du contenu interactif dans votre code HTML qui seront rendus avec précision dans le PDF final.

Quels sont les cas d'utilisation courants de la conversion de HTML en PDF dans ASP.NET ?

Les cas d'utilisation courants incluent la génération de factures, la création de rapports détaillés, la production de certificats et la mise à disposition de contenu téléchargeable comme des livres électroniques et des brochures directement depuis des applications ASP.NET.

Comment IronPDF garantit-il la qualité du fichier PDF généré ?

IronPDF garantit une sortie PDF de haute qualité en reproduisant fidèlement le contenu HTML, notamment les polices, les images, les tableaux et autres éléments, préservant ainsi la fidélité de la conception originale.

Puis-je automatiser le processus de conversion HTML vers PDF avec IronPDF ?

Oui, IronPDF peut être intégré aux flux de travail d'automatisation des applications ASP.NET, ce qui vous permet d'automatiser la conversion de HTML en PDF dans le cadre des processus de votre application.

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