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!
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
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
RenderRazorViewToPdfpour générer une vue Razor contenant des données dans un fichier PDF. - Nous avons ensuite configuré les en-têtes
Content-Dispositionpour 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
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
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.