UTILISATION DE LA SUITE IRON

Comment convertir CSHTML en PDF en C#

La conversion de fichiers CSHTML en PDF est une exigence courante dans de nombreuses applications. Cette tâche peut être facilement accomplie en utilisant la bibliothèque IronPDF en C#.

IronPDF est une bibliothèque .NET populaire qui permet aux développeurs de créer, lire, modifier et convertir des documents PDF par programmation. Dans cet article, nous vous guiderons à travers les étapes de conversion du CSHTML au PDF avec IronPDF en C#, accompagnées d'exemples.

Avant de commencer, abordons quelques concepts importants qui sont nécessaires pour ce tutoriel.

Concepts importants

PDF Converter

Un convertisseur PDF est un outil qui convertit tout document imprimable ou page web en document PDF. Il peut être utilisé pour générer des fichiers PDF à partir de fichiers HTML, Word, Excel ou de tout autre document imprimable. Les convertisseurs PDF se présentent sous différentes formes, notamment des outils en ligne, des logiciels de bureau et des bibliothèques.

Vue Razor

Une vue Razor est un moteur de vues utilisé dans ASP.NET Core pour générer dynamiquement des pages HTML. Il s'agit d'une syntaxe de balisage qui combine le balisage HTML avec le code C#.

Comment convertir un fichier CSHTML en PDF en C# ? Figure 1 : Vue Razor Vue du rasoir

Razor View facilite la création de pages web dynamiques par les développeurs en séparant la logique de présentation de la logique métier.

Classe Contrôleur

Une classe de contrôleur est une classe C# qui gère les requêtes HTTP entrantes dans une application ASP.NET Core. Il contient des méthodes qui correspondent à des verbes HTTP spécifiques (par exemple, GET, POST, PUT, DELETE) et il renvoie une réponse HTTP.

Gestionnaire de packages NuGet

NuGet Package Manager est un outil utilisé dans Visual Studio pour gérer les packages dans les projets .NET. Il permet aux développeurs d'installer, de mettre à jour et de désinstaller facilement des packages dans leurs projets. Les packages NuGet sont des bibliothèques contenant du code réutilisable et distribuées via le gestionnaire de packages NuGet.

Injection de dépendances

L'injection de dépendances est un modèle de conception qui permet aux développeurs de découpler les composants de leur application en injectant des dépendances dans leurs classes. Cela facilite les tests et la maintenance des applications en réduisant les dépendances et en rendant le code plus modulaire.

Maintenant que nous avons abordé les concepts importants, plongeons-nous dans le processus de conversion de CSHTML en PDF à l'aide d'IronPDF.

Qu'est-ce que le CSHTML ?

CSHTML signifie C# Razor Syntax HTML. Il s'agit d'un type de fichier contenant à la fois du balisage HTML et du code C#. Ces fichiers sont utilisés dans les applications ASP.NET Core MVC pour définir l'interface utilisateur des pages web. Le moteur de rendu Razor est utilisé pour interpréter les fichiers CSHTML et générer une sortie HTML pouvant être affichée par un navigateur web.

Comment convertir du CSHTML en PDF en C#, Figure 2 : CSHTML5 CSHTML5

Qu'est-ce que IronPDF?

IronPDF est une puissante bibliothèque .NET qui permet aux développeurs de créer, lire, modifier et convertir des documents PDF en C#. Il s'agit d'un outil populaire pour générer des documents PDF par programmation dans les applications .NET. IronPDF prend en charge un large éventail de fonctionnalités, notamment la génération de PDF, la manipulation de PDF, la conversion de PDF et le rendu de PDF.

Comment convertir un fichier CSHTML en PDF en C# ? Figure 3 : IronPDF pour .NET IronPDF pour .NET

Comment convertir une chaîne HTML CSHTML en fichiers PDF avec IronPDF en C

Convertir un fichier CSHTML en PDF avec IronPDF est un processus simple. La bibliothèque fournit une API pratique pour convertir les fichiers HTML en documents PDF. Voici les étapes pour convertir un fichier CSHTML en PDF avec IronPDF en C# :

Étape 1 : Installez IronPDF

La première étape consiste à installer IronPDF à partir du gestionnaire de packages NuGet dans votre projet C#. Vous pouvez installer IronPDF en téléchargeant le fichier IronPDF.dll et en l'ajoutant aux références de votre projet. Pour installer IronPDF à l'aide du gestionnaire de packages NuGet, ouvrez la console du gestionnaire de packages et exécutez la commande suivante :

Étape 2 : Créer un fichier CSHTML

Ensuite, créez un fichier CSHTML contenant le contenu que vous souhaitez convertir en PDF. Dans cet exemple, nous allons créer un fichier tutoriel CSHTML simple qui affiche le texte " Bonjour, monde ! ".

@{
    Layout = null;
}
Hello
Hello, World!
@{
    Layout = null;
}
Hello
Hello, World!
@
If True Then
	Layout = Nothing
End If
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Hello Hello, World!
$vbLabelText   $csharpLabel

Enregistrez ce fichier sous le nom " Hello.cshtml " dans le répertoire de votre projet.

Comment convertir un fichier CSHTML en PDF en C# ? Figure 4 : Fichiers PDF en C# Fichiers PDF en C#

Étape 3 : Convertir le fichier CSHTML en document PDF

Pour convertir le fichier CSHTML en PDF, nous utiliserons la bibliothèque IronPDF en C#. Voici le code pour convertir " Hello.cshtml " en PDF :

using System.IO;
using IronPdf;
using Microsoft.AspNetCore.Mvc;

namespace CSHTMLtoPDF.Controllers
{
    public class HomeController : Controller
    {
        private readonly IRazorViewRenderer _viewRenderService;
        public HomeController(IRazorViewRenderer viewRenderService)
        {
            _viewRenderService = viewRenderService;
        }

        public IActionResult Index()
        {
            var items = new[] { "Item 1", "Item 2", "Item 3" };
            return View(items);
        }

        public IActionResult DownloadPDF()
        {
            var items = new[] { "Item 1", "Item 2", "Item 3" };

            // Initialize a new instance of ChromePdfRenderer from IronPDF
            ChromePdfRenderer renderer = new ChromePdfRenderer();

            // Render the specified Razor view to a PDF document
            PdfDocument pdf = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Home/Index.cshtml", items);

            // Set the headers to force the browser to download the PDF
            var contentDisposition = new System.Net.Mime.ContentDisposition
            {
                FileName = "Items.pdf",
                Inline = false,
            };
            Response.Headers.Add("Content-Disposition", contentDisposition.ToString());

            // Return the PDF document to the client
            return File(pdf.BinaryData, "application/pdf");
        }
    }
}
using System.IO;
using IronPdf;
using Microsoft.AspNetCore.Mvc;

namespace CSHTMLtoPDF.Controllers
{
    public class HomeController : Controller
    {
        private readonly IRazorViewRenderer _viewRenderService;
        public HomeController(IRazorViewRenderer viewRenderService)
        {
            _viewRenderService = viewRenderService;
        }

        public IActionResult Index()
        {
            var items = new[] { "Item 1", "Item 2", "Item 3" };
            return View(items);
        }

        public IActionResult DownloadPDF()
        {
            var items = new[] { "Item 1", "Item 2", "Item 3" };

            // Initialize a new instance of ChromePdfRenderer from IronPDF
            ChromePdfRenderer renderer = new ChromePdfRenderer();

            // Render the specified Razor view to a PDF document
            PdfDocument pdf = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Home/Index.cshtml", items);

            // Set the headers to force the browser to download the PDF
            var contentDisposition = new System.Net.Mime.ContentDisposition
            {
                FileName = "Items.pdf",
                Inline = false,
            };
            Response.Headers.Add("Content-Disposition", contentDisposition.ToString());

            // Return the PDF document to the client
            return File(pdf.BinaryData, "application/pdf");
        }
    }
}
Imports System.IO
Imports IronPdf
Imports Microsoft.AspNetCore.Mvc

Namespace CSHTMLtoPDF.Controllers
	Public Class HomeController
		Inherits Controller

		Private ReadOnly _viewRenderService As IRazorViewRenderer
		Public Sub New(ByVal viewRenderService As IRazorViewRenderer)
			_viewRenderService = viewRenderService
		End Sub

		Public Function Index() As IActionResult
			Dim items = { "Item 1", "Item 2", "Item 3" }
			Return View(items)
		End Function

		Public Function DownloadPDF() As IActionResult
			Dim items = { "Item 1", "Item 2", "Item 3" }

			' Initialize a new instance of ChromePdfRenderer from IronPDF
			Dim renderer As New ChromePdfRenderer()

			' Render the specified Razor view to a PDF document
			Dim pdf As PdfDocument = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Home/Index.cshtml", items)

			' Set the headers to force the browser to download the PDF
			Dim contentDisposition = New System.Net.Mime.ContentDisposition With {
				.FileName = "Items.pdf",
				.Inline = False
			}
			Response.Headers.Add("Content-Disposition", contentDisposition.ToString())

			' Return the PDF document to the client
			Return File(pdf.BinaryData, "application/pdf")
		End Function
	End Class
End Namespace
$vbLabelText   $csharpLabel

Analysons ce code étape par étape :

  • Nous importons d'abord les espaces de noms nécessaires, notamment l'espace de noms IronPDF, qui contient la fonctionnalité de conversion HTML vers PDF.
  • Nous définissons ensuite la méthode Index , qui renvoie simplement une liste d'éléments à une vue Razor.
  • Nous définissons la méthode DownloadPDF , qui est responsable de la génération du document PDF.
  • Nous commençons par créer un moteur de rendu ChromePdfRenderer .
  • Utilisez ensuite la méthode d'extension RenderRazorViewToPdf pour générer une vue Razor contenant des données dans un fichier PDF.
  • Nous avons ensuite configuré les en-têtes Content-Disposition pour forcer le téléchargement du PDF plutôt que son affichage dans le navigateur. Enfin, nous renvoyons le document PDF sous forme de fichier à l'aide de la méthode File.

Voici le code de base pour convertir du CSHTML en PDF avec IronPDF en C#. Cependant, de nombreuses options et paramètres vous permettent de personnaliser le fichier PDF généré. Examinons quelques-unes de ces options.

Personnalisation du fichier de retour PDF

IronPDF offre de nombreuses options pour personnaliser le fichier PDF généré. Vous pouvez définir des options telles que la taille de la page , les marges , l'orientation, l'en-tête et le pied de page , et bien plus encore. Voici un exemple de personnalisation du fichier PDF généré :

using IronPdf;

namespace ConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            // Initialize a new instance of ChromePdfRenderer
            var renderer = new ChromePdfRenderer();

            // Customize rendering options for the PDF
            renderer.RenderingOptions.MarginTop = 10;    // Set top margin in millimeters
            renderer.RenderingOptions.MarginBottom = 10; // Set bottom margin in millimeters
            renderer.RenderingOptions.MarginLeft = 20;   // Set left margin in millimeters
            renderer.RenderingOptions.MarginRight = 20;  // Set right margin in millimeters

            // Set HTML header for the PDF with a logo
            renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
            {
                MaxHeight = 20, // Height of header in millimeters
                HtmlFragment = "<img src='logo.png'>",
                BaseUrl = new Uri(@"C:\assets\images\").AbsoluteUri
            };

            // Set HTML footer for the PDF with page numbers
            renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
            {
                MaxHeight = 15, // Height of footer in millimeters
                HtmlFragment = "<center><i>{page} of {total-pages}</i></center>",
                DrawDividerLine = true // Draw a line above the footer
            };

            // Convert HTML content to PDF
            var pdf = renderer.RenderHtmlAsPdf("<div>Hello, World!</div>");

            // Save the PDF to the file system
            pdf.SaveAs("Hello.PDF");
        }
    }
}
using IronPdf;

namespace ConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            // Initialize a new instance of ChromePdfRenderer
            var renderer = new ChromePdfRenderer();

            // Customize rendering options for the PDF
            renderer.RenderingOptions.MarginTop = 10;    // Set top margin in millimeters
            renderer.RenderingOptions.MarginBottom = 10; // Set bottom margin in millimeters
            renderer.RenderingOptions.MarginLeft = 20;   // Set left margin in millimeters
            renderer.RenderingOptions.MarginRight = 20;  // Set right margin in millimeters

            // Set HTML header for the PDF with a logo
            renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
            {
                MaxHeight = 20, // Height of header in millimeters
                HtmlFragment = "<img src='logo.png'>",
                BaseUrl = new Uri(@"C:\assets\images\").AbsoluteUri
            };

            // Set HTML footer for the PDF with page numbers
            renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
            {
                MaxHeight = 15, // Height of footer in millimeters
                HtmlFragment = "<center><i>{page} of {total-pages}</i></center>",
                DrawDividerLine = true // Draw a line above the footer
            };

            // Convert HTML content to PDF
            var pdf = renderer.RenderHtmlAsPdf("<div>Hello, World!</div>");

            // Save the PDF to the file system
            pdf.SaveAs("Hello.PDF");
        }
    }
}
Imports IronPdf

Namespace ConsoleApp
	Friend Class Program
		Shared Sub Main(ByVal args() As String)
			' Initialize a new instance of ChromePdfRenderer
			Dim renderer = New ChromePdfRenderer()

			' Customize rendering options for the PDF
			renderer.RenderingOptions.MarginTop = 10 ' Set top margin in millimeters
			renderer.RenderingOptions.MarginBottom = 10 ' Set bottom margin in millimeters
			renderer.RenderingOptions.MarginLeft = 20 ' Set left margin in millimeters
			renderer.RenderingOptions.MarginRight = 20 ' Set right margin in millimeters

			' Set HTML header for the PDF with a logo
			renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter() With {
				.MaxHeight = 20,
				.HtmlFragment = "<img src='logo.png'>",
				.BaseUrl = (New Uri("C:\assets\images\")).AbsoluteUri
			}

			' Set HTML footer for the PDF with page numbers
			renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter() With {
				.MaxHeight = 15,
				.HtmlFragment = "<center><i>{page} of {total-pages}</i></center>",
				.DrawDividerLine = True
			}

			' Convert HTML content to PDF
			Dim pdf = renderer.RenderHtmlAsPdf("<div>Hello, World!</div>")

			' Save the PDF to the file system
			pdf.SaveAs("Hello.PDF")
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

Dans cet exemple, nous créons d'abord une instance de la classe ChromePdfRenderer . Nous avons ensuite défini différentes options à l'aide de la propriété RenderingOptions de la classe ChromePdfRenderer . Voici quelques-unes des options que nous avons définies :

  • MarginTop , MarginBottom , MarginLeft , MarginRight : Définit les marges du document PDF.
  • HtmlHeader : Définit l'en-tête du document PDF pour afficher un logo.
  • HtmlFooter : Définit le pied de page du document PDF pour afficher le numéro de page et le nombre total de pages.

Après avoir défini les options, nous appelons la méthode RenderHtmlAsPdf avec le contenu HTML. Enfin, nous enregistrons le document PDF dans un fichier nommé " Hello.PDF ".

Tester l'application

Maintenant que tout le code nécessaire est en place, nous pouvons tester l'application. Suivez ces étapes :

  • Exécutez l'application en appuyant sur F5 ou en cliquant sur le bouton vert " Lecture " dans Visual Studio.
  • Dans votre navigateur Web, accédez à http://localhost:/Home/Index , où est le numéro de port attribué par Visual Studio.
  • Vérifiez que la liste des éléments s'affiche correctement.
  • Cliquez sur le lien " Télécharger le PDF " pour générer et télécharger le document PDF.

Si tout fonctionne correctement, vous devriez voir un document PDF contenant la liste des éléments que vous avez définis précédemment.

Conversion d'un PDF en fichier CSHTML avec IronPDF

Comment convertir un fichier CSHTML en PDF en C# ? Figure 7 : Conversion de PDF en CSHTML PDF vers CSHTML

Pour illustrer la conversion d'un PDF en fichier CSHTML avec IronPDF, nous allons créer une application console dans Visual Studio et utiliser IronPDF pour convertir un exemple de document PDF en fichier CSHTML. Procédez comme suit :

Étape 1 : Créer une nouvelle application console

Ouvrez Visual Studio et créez une nouvelle application console en sélectionnant " Fichier > Nouveau > Projet " dans le menu, puis en sélectionnant " Application console (.NET Framework) " ou " Application console (.NET Core) " dans la liste des modèles de projet.

Étape 2 : Installez le package NuGet IronPDF

Ensuite, nous devons installer le package NuGet IronPDF dans notre application console. Pour ce faire, cliquez avec le bouton droit sur le projet dans l'Explorateur de solutions et sélectionnez " Gérer les packages NuGet " dans le menu contextuel.

Dans le gestionnaire de packages NuGet, recherchez " IronPDF " et sélectionnez le package " IronPDF " dans les résultats de la recherche. Cliquez sur le bouton " Installer " pour installer le package et ses dépendances.

Étape 3 : Ajouter les fichiers PDF et CSHTML au projet

Pour cet exemple, nous utiliserons un fichier PDF que nous souhaitons convertir en fichier CSHTML. Vous pouvez utiliser n'importe quel fichier PDF pour cette étape.

Ajoutez le fichier PDF au projet en cliquant avec le bouton droit sur le projet dans l'Explorateur de solutions et en sélectionnant " Ajouter > Élément existant " dans le menu contextuel.

Nous devons également créer un fichier CSHTML vide qui servira à stocker la chaîne HTML convertie. Pour ce faire, cliquez avec le bouton droit sur le projet dans l'Explorateur de solutions et sélectionnez " Ajouter > Nouvel élément " dans le menu contextuel. Sélectionnez " Page HTML " dans la liste des modèles, puis donnez un nom au fichier (par exemple " converti.cshtml ") et cliquez sur " Ajouter ".

Étape 4 : Convertir le PDF en fichier CSHTML

Les fichiers nécessaires étant en place, nous pouvons maintenant écrire le code permettant de convertir le PDF en fichier CSHTML à l'aide d'IronPDF. Ajoutez le code suivant à la méthode Main de votre application console :

using IronPdf;

namespace PdfToHtml
{
    class Program
    {
        static void Main(string[] args)
        {
            // Load the PDF file
            PdfDocument pdf = PdfDocument.FromFile("sample.PDF");

            // Convert the PDF to an HTML string
            string html = pdf.ToHtml();

            // Save the HTML string to the CSHTML file
            System.IO.File.WriteAllText("converted.cshtml", html);
        }
    }
}
using IronPdf;

namespace PdfToHtml
{
    class Program
    {
        static void Main(string[] args)
        {
            // Load the PDF file
            PdfDocument pdf = PdfDocument.FromFile("sample.PDF");

            // Convert the PDF to an HTML string
            string html = pdf.ToHtml();

            // Save the HTML string to the CSHTML file
            System.IO.File.WriteAllText("converted.cshtml", html);
        }
    }
}
Imports IronPdf

Namespace PdfToHtml
	Friend Class Program
		Shared Sub Main(ByVal args() As String)
			' Load the PDF file
			Dim pdf As PdfDocument = PdfDocument.FromFile("sample.PDF")

			' Convert the PDF to an HTML string
			Dim html As String = pdf.ToHtml()

			' Save the HTML string to the CSHTML file
			System.IO.File.WriteAllText("converted.cshtml", html)
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

Pourquoi utiliser IronPDF ?

IronPDF est un choix populaire parmi les développeurs .NET pour plusieurs raisons clés :

Fonctionnalités puissantes de génération de PDF : IronPDF offre un large éventail de fonctionnalités et d'options pour la création et la manipulation de documents PDF par programmation, notamment la possibilité d'ajouter du texte, des images et d'autres contenus aux pages PDF, ainsi que la possibilité de fusionner et de diviser des documents PDF existants.

Fonctionnalités polyvalentes de conversion PDF : IronPDF permet non seulement aux développeurs de générer des documents PDF, mais offre également des fonctionnalités pour convertir les PDF en chaînes HTML ou en fichiers CSHTML. Cela peut s'avérer utile dans les situations où vous devez afficher du contenu PDF dans une application Web ou extraire des données de documents PDF et les utiliser dans un flux de travail Web.

API facile à utiliser : L'API d'IronPDF est conçue pour être intuitive et facile à utiliser, avec un large éventail de méthodes et de propriétés d'assistance qui facilitent la génération et la manipulation de documents PDF par programmation pour les développeurs.

Un soutien communautaire important : IronPDF bénéficie d'une communauté importante et active de développeurs .NET qui contribuent à son développement et apportent leur soutien aux autres développeurs utilisant la bibliothèque.

Bonne documentation : La documentation d'IronPDF est exhaustive et bien organisée, avec une documentation de référence API détaillée, des tutoriels et des exemples qui facilitent la prise en main et l'apprentissage de l'utilisation de la bibliothèque par les développeurs.

La combinaison de puissantes fonctionnalités de génération et de conversion de PDF, d'une API facile à utiliser, d'un soutien communautaire important et d'une bonne documentation fait d'IronPDF un choix populaire parmi les développeurs .NET qui ont besoin de travailler avec des documents PDF dans leurs applications.

Conclusion

La conversion de fichiers CSHTML en PDF est une exigence courante dans de nombreuses applications. Avec IronPDF, cette tâche peut être facilement accomplie en C#. Dans cet article, nous vous avons présenté les étapes de conversion d'un fichier CSHTML en PDF avec IronPDF, à l'aide d'exemples.

Nous vous avons également montré comment personnaliser le fichier PDF généré en configurant différentes options telles que le format du papier, les marges, l'en-tête et le pied de page, et bien plus encore. Avec IronPDF, vous pouvez créer rapidement et facilement des documents PDF de haute qualité à partir de vos fichiers CSHTML.

Que vous ayez besoin de créer des documents PDF à partir de zéro, de convertir des PDF en chaînes HTML ou en fichiers CSHTML, ou d'extraire des données de documents PDF, IronPDF fournit une API flexible et intuitive qui facilite la réalisation de ces tâches.

Grâce à son solide soutien communautaire et à sa documentation exhaustive, IronPDF est un choix populaire parmi les développeurs .NET qui ont besoin de travailler avec des fichiers PDF dans leurs applications. En achetant le pack Iron Software, les développeurs peuvent accéder à un ensemble complet de bibliothèques .NET pour travailler avec les formats de fichiers courants à un prix réduit, ce qui en fait une excellente option pour toute équipe de développement .NET.

Si vous devez utiliser des documents PDF dans vos applications .NET, IronPDF mérite assurément d'être pris en considération. Grâce à ses fonctionnalités performantes, sa facilité d'utilisation et son large éventail d'options de licences, c'est un outil polyvalent et fiable qui peut vous aider à accomplir votre travail rapidement et efficacement.