Conversion de pages ASPX en PDF en ASP.NET

Chaknith Bin
Chaknith Bin
août 28, 2018
Mise à jour février 17, 2025
Partager:
This article was translated from English: Does it need improvement?
Translated
View the article in English

Ce tutoriel ASPX en PDF vous guidera pas à pas sur la façon de convertir ASPX en PDF. Enregistrer une page ASPX au format PDF dans les applications web ASP.NET.

Les utilisateurs ne devraient jamais avoir à ouvrir le fichier ASPX avec l'extension .aspx dans Google Chrome. Nous demandons à notre équipe d'ingénieurs de convertir ASPX en PDF automatiquement en utilisant du code .NET ! Nous n'avons jamais besoin d'appuyer sur CTRL P ! Il existe un moyen basé sur un serveur pour convertir les médias Internet ASPX et les enregistrer en PDF.

Les paramètres à appliquer comprennent la définition du comportement et des noms de fichiers, l'ajout d'en-têtes et de pieds de page, la modification des options d'impression, l'ajout de sauts de page, la combinaison d'Async et de Multithreading, et bien plus encore.

Comment convertir des fichiers ASPX en PDF

Les applications Microsoft Web Form pour ASP.NET sont couramment utilisées dans le développement de sites web sophistiqués, de banques en ligne, d'intranets et de systèmes de comptabilité. Une fonctionnalité courante des sites web ASP.NET (ASPX) est de générer des fichiers PDF dynamiques tels que des factures, des billets ou des rapports de gestion que les utilisateurs peuvent télécharger au format PDF.

Ce didacticiel montre comment utiliser le composant logiciel IronPDF pour .NET afin de transformer n'importe quel formulaire web ASP.NET en PDF (ASP.NET en PDF). Le HTML, normalement rendu sous forme de page web, sera utilisé pour rendre le PDF téléchargeable ou consultable dans un navigateur web. Le projet source ci-joint vous montrera comment convertir une page web en PDF en ASP.NET à l'aide de C#.

Nous réalisons cette conversion HTML en PDF (convertir ASPX en PDF) lors du rendu des pages web en utilisant IronPDF et sa classe AspxToPdf.

1. Installer le convertisseur de fichiers ASPX gratuit d'IronPDF

Commencez à utiliser IronPDF dans votre projet dès aujourd'hui avec un essai gratuit.

Première étape :
green arrow pointer

Installation via NuGet

Dans Visual Studio, faites un clic droit sur l'explorateur de solutions de votre projet et sélectionnez "Manage NuGet Packages...". De là, il suffit de rechercher IronPDF et d'installer la dernière version... cliquez sur OK dans toutes les boîtes de dialogue qui s'affichent.

Cela fonctionnera dans n'importe quel projet C# .NET Framework à partir de Framework 4.6.2 ou .NET Core 2. Il fonctionnera tout aussi bien dans les projets VB.NET.

Install-Package IronPdf

Télécharger IronPDF depuis NuGet

Installation via DLL

Alternativement, la DLL IronPDF peut être téléchargée et installée manuellement dans le projet ou le GAC depuis Télécharger le package IronPDF.

N'oubliez pas d'ajouter cette déclaration en haut de tout fichier de classe cs utilisant IronPDF : ``

en utilisant IronPDF ; ``

2. Convertir des pages Web ASP.NET en PDF

Nous commençons par un "formulaire Web" ASPX normal, qui s'affiche en HTML. Nous convertissons ensuite la page ASPX en format de fichier PDF.

Dans l'exemple de code source ci-joint, nous avons rendu une facture commerciale "Invoice.aspx", une simple facture commerciale HTML rendue sous forme de page ASP.NET.

La page HTML contient des feuilles de style CSS3 et peut également inclure des images et du javascript.

Pour rendre cette page Web ASP.NET en PDF au lieu de HTML, nous devons ouvrir le code C# (ou VB.NET) et ajouter ceci à l'événement Page_Load :

:path=/static-assets/pdf/content-code-examples/how-to/aspx-to-pdf-1.cs
IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.InBrowser);
IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.InBrowser)
$vbLabelText   $csharpLabel

C'est tout ce qu'il faut ; le HTML s'affiche désormais comme un PDF. Les liens hypertextes, les feuilles de style, les images et même les formulaires HTML sont préservés. Ce résultat est très similaire à celui qui serait obtenu si l'utilisateur imprimait lui-même le code HTML au format PDF dans son navigateur. IronPDF s'appuie sur la technologie de navigateur web Chromium qui équipe Google Chrome.

L'ensemble du code C# se lit comme suit dans son intégralité : Convertir la page ASPX en PDF dans Active Server Pages.

:path=/static-assets/pdf/content-code-examples/how-to/aspx-to-pdf-2.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using IronPdf;

namespace AspxToPdfTutorial
{
    public partial class Invoice : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.InBrowser);
        }
    }
}
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports IronPdf

Namespace AspxToPdfTutorial
	Partial Public Class Invoice
		Inherits System.Web.UI.Page

		Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
			IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.InBrowser)
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

3. Appliquer les paramètres du convertisseur de fichiers ASPX en PDF

Il existe de nombreuses options à ajuster et à perfectionner lorsque nous convertissons un fichier ASPX en PDF généré à l'aide de .NET Web Forms.

Ces options sont entièrement documentées en ligne dans la référence API IronPDF.

3.1. Définir le comportement du fichier PDF

Le comportement de fichier InBrowser tente d'afficher le PDF directement dans le navigateur de l'utilisateur. Cela n'est pas toujours possible dans tous les navigateurs web, mais c'est généralement une caractéristique commune des navigateurs modernes conformes aux normes. ``

IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.InBrowser); ``

Le comportement du fichier Attachment entraîne le téléchargement du PDF. ``

IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.Attachment); ``

3.2. Définir le nom du fichier PDF

Nous pouvons également définir le nom de fichier du document PDF en ajoutant un paramètre supplémentaire. Cela signifie que nous pouvons contrôler le nom du fichier lorsque l'utilisateur décide de le télécharger ou de le conserver. Lorsque nous enregistrons la page ASPX au format PDF, ce nom sera donné au document PDF. ``

IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.Attachment, "Invoice.pdf"); ``

3.3. Modifier les options d'impression d'un PDF

Nous pouvons contrôler la sortie du PDF en ajoutant une instance de la classe IronPDF.ChromePdfRenderer. Référence de l'API ChromePdfRenderer

:path=/static-assets/pdf/content-code-examples/how-to/aspx-to-pdf-3.cs
var AspxToPdfOptions = new IronPdf.ChromePdfRenderOptions()
{
    EnableJavaScript = false,
    //.. many more options available
};
IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.Attachment, "Invoice.pdf", AspxToPdfOptions);
Dim AspxToPdfOptions = New IronPdf.ChromePdfRenderOptions() With {.EnableJavaScript = False}
IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.Attachment, "Invoice.pdf", AspxToPdfOptions)
$vbLabelText   $csharpLabel

Les options de rendu PDF disponibles sont les suivantes :

  • CreatePdfFormsFromHtml Convertit les éléments de formulaire ASPX en formulaires PDF éditables.
  • CssMediaType Screen ou Print pour les styles CSS et les feuilles de style. Voir notre tutoriel complet et approfondi avec des images comparatives.
  • CustomCssUrl Permet d'appliquer une feuille de style CSS personnalisée à l'HTML avant le rendu. Il peut s'agir d'un chemin d'accès à un fichier local ou d'une URL distante.
  • EnableMathematicalLaTex Active ou désactive le rendu des éléments mathématiques LaTeX.
  • EnableJavaScript Permet d'exécuter JavaScript et JSON avant que la page ne soit rendue. Idéal pour l'impression à partir d'applications Ajax / Angular. Voir aussi le guide d'utilisation WaitFor.
  • Javascript Spécifie une chaîne JavaScript personnalisée à exécuter après le chargement de tout le HTML mais avant le rendu PDF.
  • JavascriptMessageListener Une méthode de rappel à invoquer chaque fois qu'un message de la console JavaScript du navigateur devient disponible.
  • FirstPageNumber Numéro de la première page pour l'En-tête et le Pied de page. La valeur par défaut est 1.
  • TableOfContents Génère une table des matières à l'emplacement dans le document HTML où un élément est trouvé avec l'identifiant "ironpdf-toc".
  • TextHeader Définit le contenu du pied de page pour chaque page PDF sous forme de texte. Prend en charge la fusion de courriers électroniques et transforme automatiquement les URL en hyperliens.
  • TextFooter Définit le contenu du pied de page pour chaque page PDF sous forme de texte. Prend en charge la fusion de courriers électroniques et transforme automatiquement les URL en hyperliens.
  • HtmlHeader Définit le contenu de l'en-tête pour chaque page PDF en utilisant des chaînes de contenu ou même du HTML.
  • HtmlFooter Définit le contenu du pied de page pour chaque page PDF en utilisant des chaînes de contenu ou même du HTML.
  • MarginBottom Marge inférieure du papier PDF en millimètres. Régler à zéro pour un pdf sans bordure.
  • MarginLeft Marge de papier PDF gauche en millimètres. Régler à zéro pour un pdf sans bordure.
  • MarginRight Marge droite du papier PDF en millimètres. Régler à zéro pour un pdf sans bordure.
  • MarginTop Marge supérieure du papier PDF en millimètres. Régler à zéro pour un pdf sans bordure.
  • UseMarginsOnHeaderAndFooter Spécifie si les valeurs de marge du document principal doivent être utilisées lors de l'affichage des en-têtes et des pieds de page.
  • PaperFit: Un gestionnaire pour configurer les mises en page virtuelles, contrôlant la disposition du contenu sur les pages "papier" des PDF. Inclut des options pour le comportement par défaut de Chrome, le zoom, les mises en page CSS3 réactives, la mise à l'échelle de la page et les configurations de pages PDF de type flux continu.
  • PaperOrientation L'orientation du papier PDF. Paysage ou Portrait.
  • PageRotation Rotation de page à partir d’un document existant. Explication complète et exemple de code accompagnant.
  • PaperSize Définissez un format de papier de sortie pour les pages PDF en utilisant System.Drawing.Printing.PaperKind.
  • SetCustomPaperSizeinCentimeters Définit la taille du papier en centimètres.
  • SetCustomPaperSizeInInches Définit le format du papier en pouces.
  • SetCustomPaperSizeinMilimeters Définit la taille du papier en millimètres.
  • SetCustomPaperSizeinPixelsOrPoints Définit la taille du papier en pixels d'écran ou en points d'imprimante.
  • ForcePaperSize Spécifie s'il faut forcer les tailles de page à être exactement celles spécifiées via PaperSize en redimensionnant la page après la génération d'un PDF à partir de HTML.
  • PrintHtmlBackgrounds Imprime les arrière-plans d'images HTML.
  • GrayScale Produit un PDF en niveaux de gris au lieu de la couleur complète.
  • WaitFor Un objet encapsulateur qui contient la configuration pour le mécanisme d'attente. Cela peut s'avérer utile lorsque l'on envisage le rendu de JavaScript, d'Ajax ou d'animations.

    • PageLoad : Rendu par défaut sans attente.

    • RenderDelay : Définir un temps d'attente arbitraire.

    • Polices : Attend jusqu'à ce que toutes les polices soient chargées.

    • JavaScript : Déclencher le rendu avec une fonction JavaScript.

    • Éléments HTML : Attend des éléments HTML spécifiques, tels que les ID d'élément, les noms, les noms de balise et les sélecteurs de requêtes pour cibler les éléments.
  • NetworkIdle : Attente de l'inactivité du réseau (0, 2 ou un montant personnalisé).
  • Titre Métadonnées du document PDF 'Titre'.
  • InputEncoding L'encodage des caractères d'entrée sous forme de chaîne. UTF-8 est la valeur par défaut pour ASP.NET.
  • RequestContext Spécifie le contexte de la requête pour le rendu.
  • Délai d'attente. Délai de rendu en secondes.

4. Ajouter des en-têtes et des pieds de page aux PDF ASPX

IronPDF permet d'ajouter des en-têtes et des pieds de page à la sortie du PDF.

La manière la plus simple de le faire est avec la classe TextHeaderFooter, qui prend en charge une disposition de base pouvant facilement ajouter des données dynamiques telles que l'heure actuelle et la numérotation des pages.

4.1. Exemple d'en-tête et de pied de page ASPX vers PDF

:path=/static-assets/pdf/content-code-examples/how-to/aspx-to-pdf-4.cs
using IronSoftware.Drawing;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace AspxToPdfTutorial
{
    public partial class Invoice : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            var AspxToPdfOptions = new IronPdf.ChromePdfRenderOptions()
            {
                TextHeader = new IronPdf.TextHeaderFooter()
                {
                    CenterText = "Invoice",
                    DrawDividerLine = false,
                    Font = FontTypes.Arial,
                    FontSize = 12
                },
                TextFooter = new IronPdf.TextHeaderFooter()
                {
                    LeftText = "{date} - {time}",
                    RightText = "Page {page} of {total-pages}",
                    Font = IronSoftware.Drawing.FontTypes.Arial,
                    FontSize = 12,
                },
            };
            IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.Attachment, "Invoice.pdf", AspxToPdfOptions);
        }
    }
}
Imports IronSoftware.Drawing
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls

Namespace AspxToPdfTutorial
	Partial Public Class Invoice
		Inherits System.Web.UI.Page

		Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
			Dim AspxToPdfOptions = New IronPdf.ChromePdfRenderOptions() With {
				.TextHeader = New IronPdf.TextHeaderFooter() With {
					.CenterText = "Invoice",
					.DrawDividerLine = False,
					.Font = FontTypes.Arial,
					.FontSize = 12
				},
				.TextFooter = New IronPdf.TextHeaderFooter() With {
					.LeftText = "{date} - {time}",
					.RightText = "Page {page} of {total-pages}",
					.Font = IronSoftware.Drawing.FontTypes.Arial,
					.FontSize = 12
				}
			}
			IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.Attachment, "Invoice.pdf", AspxToPdfOptions)
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

Nous pouvons également générer des en-têtes et des pieds de page HTML à l'aide de la classe HtmlHeaderFooter, qui prend également en charge les feuilles de style CSS, les images et les liens hypertextes.

:path=/static-assets/pdf/content-code-examples/how-to/aspx-to-pdf-5.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace AspxToPdfTutorial
{
    public partial class Invoice : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            var AspxToPdfOptions = new IronPdf.ChromePdfRenderOptions()
            {
                MarginTop = 50, // make sufficiant space for an HTML header
                HtmlHeader = new IronPdf.HtmlHeaderFooter()
                {
                    HtmlFragment = "<div style='text-align:right'><em style='color:pink'>page {page} of {total-pages}</em></div>"
                }
            };
            IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.Attachment, "MyDocument.pdf", AspxToPdfOptions);
        }
    }
}
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls

Namespace AspxToPdfTutorial
	Partial Public Class Invoice
		Inherits System.Web.UI.Page

		Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
			Dim AspxToPdfOptions = New IronPdf.ChromePdfRenderOptions() With {
				.MarginTop = 50,
				.HtmlHeader = New IronPdf.HtmlHeaderFooter() With {.HtmlFragment = "<div style='text-align:right'><em style='color:pink'>page {page} of {total-pages}</em></div>"}
			}
			IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.Attachment, "MyDocument.pdf", AspxToPdfOptions)
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

Comme nous l'avons vu dans nos exemples, nous pouvons "fusionner" du texte dynamique ou du HTML dans les en-têtes et les pieds de page à l'aide de caractères de remplissage :

  • {page} : pour le numéro de page actuel du PDF.
  • {total-pages} : comme le nombre total de pages dans le PDF.
  • {url} : URL Web à partir de laquelle le document PDF a été généré.
  • {date} : pour la date du jour dans un format approprié à l'environnement système du serveur.
  • {time} : pour l'heure en heures:secondes au format 24 heures.
  • {html-title} : insère le titre depuis la balise head du formulaire web ASPX.
  • {pdf-title} : pour le nom de fichier du document.

5. Appliquer les astuces du fichier ASPX au PDF : Sauts de page

Alors que le HTML se présente généralement sous la forme d'une longue page, les PDF simulent le papier numérique et sont divisés en pages cohérentes. L'ajout du code suivant à votre page ASPX créera automatiquement un saut de page dans le PDF généré par .NET.

:path=/static-assets/pdf/content-code-examples/how-to/aspx-to-pdf-6.cs
<div style='page-break-after: always;'>&nbsp;</div>
HTML

6. Combiner l'asynchronisme et le multithreading pour plus de performance

IronPDF a été conçu pour le Framework .NET 4.6.2, ou .NET Core 2 ou supérieur. Dans les projets Framework 4.6.2 ou supérieurs, les capacités ASYNC peuvent être utilisées pour améliorer les performances lors du travail avec plusieurs documents.

La combinaison d'Async avec des processeurs multithreads et la commande Parallel.ForEach améliorera considérablement le traitement des formats PDF en vrac.

7. Télécharger le code source ASP.NET

Le code source complet du convertisseur de fichier ASPX en PDF pour ce tutoriel est disponible en téléchargement sous forme de projet d'application Web Visual Studio zippé.

Téléchargez ce tutoriel sous forme de projet ASP.NET Visual Studio

Le téléchargement gratuit contient des exemples de code de travail pour un projet ASP.NET Web Forms en C# montrant une page web rendue sous forme de PDF avec des paramètres appliqués. Nous espérons que ce tutoriel vous a aidé à apprendre comment enregistrer un fichier ASPX au format PDF.

Aller de l'avant

En règle générale, la meilleure façon d'apprendre une technique de programmation est de l'expérimenter dans le cadre de vos propres projets ASP.NET. Il s'agit notamment d'essayer le convertisseur ASPX en PDF d'IronPDF.

Les développeurs pourraient également être intéressés par la référence de classe IronPdf.AspxToPdf.

8. Regarder la vidéo du tutoriel ASPX vers PDF


Tutoriel Accès rapide

Brand Visual Studio related to Tutoriel Accès rapide

Télécharger ce tutoriel sous forme de code source

The full ASPX File to PDF Converter Source Code for this tutorial is available as a zipped Visual Studio Web Application project. Le téléchargement gratuit contient des exemples de code fonctionnels pour un projet C# ASP.NET Web Forms, montrant une page web rendue en PDF avec des paramètres appliqués. Télécharger

Explorer ce tutoriel sur GitHub

Le code de ce projet C# ASPX-To-PDF est disponible en C# et VB.NET sur GitHub en tant que projet de site web ASP.NET. N'hésitez pas à créer un fork de notre projet sur GitHub pour obtenir plus d'aide avec IronPDF. N'hésitez pas à partager ceci avec quiconque se demande : 'Comment convertir un ASPX en PDF ?'

Projet de site web C# ASPX vers PDF Échantillons avancés de pages ASP.NET en PDF en C# pour créer des PDF Exemples PDF ASP.NET en VB.NET pour créer des PDFs
Github Icon related to Tutoriel Accès rapide
Html To Pdf Icon related to Tutoriel Accès rapide

Télécharger le guide de démarrage rapide C# PDF

Pour faciliter le développement de PDF dans vos applications .NET, nous avons compilé un guide de démarrage rapide sous forme de document PDF. Ce " Cheat-Sheet " permet d'accéder rapidement aux fonctions et exemples courants de génération et d'édition de PDF en C# et VB.NET, et aidera à gagner du temps pour commencer à utiliser IronPDF dans votre projet .NET.

Télécharger

Voir la référence de l'API

Explorez la référence API pour IronPDF, décrivant les détails de toutes les fonctionnalités, espaces de noms, classes, champs de méthodes et enums d'IronPDF.

Consultez la référence API de IronPDF
Documentation related to Tutoriel Accès rapide
Chaknith Bin
Ingénieur logiciel
Chaknith travaille sur IronXL et IronBarcode. Il possède une expertise approfondie en C# et .NET, aidant à améliorer le logiciel et à soutenir les clients. Ses idées issues des interactions avec les utilisateurs contribuent à de meilleurs produits, une documentation améliorée et une expérience globale enrichie.