S2iEvolution.Razor2Pdf 8.2.0
Razor to PDF
Bibliothèque permettant d'ajouter à un projet ASP.Net la fonctionnalité de conversion de vues Razor vers PDF (également de plain html vers PDF).
Sommaire
Dépendances
Convertisseur
Cette bibliothèque repose sur un système générique de vendor (fournisseur) pour fournir le système de conversion. Ce qui signifie que le système peut s'adapter et il est possible dans le futur de passer une un autre backend de conversion.
Actuellement le backend de conversion est le programme python Weasyprint pour générer les PDF. Il est automatiquement installé dans un environnement python virtuel via pip.
Vous pourrez retrouver cet environnement dans <path to executable>/vendors/weasyprint.
Python
Il faut que Python 3 soit installé pour utiliser cette bibliothèque. En outre le module venv de python doit être utilisable (par défaut dans python 3) et le dossier à côté de l'executable doit être inscriptible afin de télécharger la librairie de conversion.
S2iEvolution Process Execute
Cette bibliothèque utilise S2iEvolution.ProcessExecute pour lancer des commandes en ligne de commande. Il est inclut en dépendances de paquet nuget.
Razor
Ce service permet de générer des pdf directement à partir de fichier en .razor, il inclu donc la dépendance Microsoft.AspNetCore.Components.Web et nécessite que le projet final soit configuré pour traiter les composants razor. C'est le cas par défaut pour les projets ASP.Net MVC, pour les autres types, voir la section Mise en place > Projet générique
Mise en place
Projet ASP.Net MVC
Pour les projet MVC il suffit d'ajouter le service de génération à la collection de services via builder.Services.AddRazor2Pdf() et d'ajouter l'initialisation du convertisseur de pdf via app.InitializeRazor2Pdf().
using S2iEvolution.Razor2Pdf;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddRazor2Pdf(); // <-- Ajout du service de génération
/** ... */
var app = builder.Build();
/** ... */
app.InitializeRazor2Pdf(); // <-- Initialisation du convertisseur de pdf
/** ... */
app.Run();
Projet hosté générique
Par défaut les projets C# hors ASP.Net de sont pas configurés pour compiler les vues razor, il faut donc modifier le fichier .csproj pour mettre en place cette fonctionnalité.
Il faut remplacer la ligne:
<Project Sdk="Microsoft.NET.Sdk">
Par la ligne:
<Project Sdk="Microsoft.NET.Sdk.Razor">
La mise à disposition du service se fait de la même manière que pour les projets ASP.Net.
No packages depend on S2iEvolution.Razor2Pdf.
.NET 8.0
- Microsoft.Extensions.DependencyInjection (>= 8.0.1)
- Microsoft.Extensions.Hosting (>= 8.0.1)
- Microsoft.Extensions.Logging (>= 8.0.1)
- S2iEvolution.ProcessExecute (>= 8.0.2)
- S2iEvolution.Razor2Pdf.Html (>= 8.1.0)