UTILISATION D'IRONPDF

Comparaison des 7 bibliothèques C# pour la génération de PDF (outils gratuits et payants)

Publié décembre 16, 2024
Partager:

La fonction de génération de PDF en C# est essentielle pour de nombreuses applications modernes, allant de la création de rapports aux systèmes de facturation. Dans cet article, nous explorerons six manières populaires de générerPDF (EN ANGLAIS)fichiers en utilisant C#, en mettant en avant à la fois les bibliothèques basées sur le code, telles queIronPDF, et les API et outils en ligne. Que vous ayez besoin de générer un fichier PDF de manière dynamique dans une application web ou simplement de créer des fichiers PDF à partir de documents existants, ces outils vous couvrent.

1. IronPDF

Image cassée Ajouter depuis Pixabay, sélectionner depuis vos fichiers ou glisser-déposer une image ici.

IronPDFest une bibliothèque PDF .NET premium conçue pour les développeurs qui ont besoin de conversions de fichiers HTML en PDF de haute qualité. IronPDF utilise un moteur de rendu basé sur Chromium pour garantir des conversions précises, ce qui en fait un choix parfait pour les applications web souhaitant convertir des pages HTML ou des rapports basés sur le web en fichiers PDF en C#. L'outil est réputé pour sa gestion robuste des documents PDF existants et offre des fonctionnalités pour éditer, fusionner ou séparer des PDFs.

IronPDF s'intègre facilement dans les projets C# via NuGet Package Manager, et avec seulement quelques lignes de code, vous pouvez commencer à générer des documents PDF. C'est un outil polyvalent pour le contenu HTML dynamique et les sorties de fichiers PDF générées par le serveur.

Caractéristiques principales

  • Conversion de HTML en PDF : IronPDF excelle dans la conversion de pages HTML complexes, y compris la prise en charge de l'exécution de JavaScript et du CSS moderne, directement en PDF. Il utilise un moteur de rendu basé sur Chromium, garantissant que le résultat est identique à ce que vous verriez dans un navigateur web.
  • Manipulation de PDF : IronPDF vous permet de fusionner, diviser et modifier facilement des documents PDF existants.
  • Options de style avancées : IronPDF prend en charge les feuilles de style externes, les polices personnalisées et le JavaScript, vous permettant de créer des documents hautement stylisés. C'est parfait pour les factures, les rapports et le contenu en ligne.
  • Fonctionnalités de sécurité : IronPDF offre des fonctionnalités pour ajouter une protection par mot de passe, des signatures numériques et définir des permissions afin de restreindre des actions telles que l'impression, la copie ou la modification du PDF.
  • Gestion des formulaires : IronPDF permet aux développeurs de créer, remplir et lire des formulaires PDF de manière programmatique, ce qui en fait un bon choix pour les applications nécessitant une saisie utilisateur au format PDF.
  • Gestionnaire de packages NuGet : Installez et gérez facilement à travers la console du gestionnaire de packages dans Visual Studio.

Exemple de code

using IronPdf;
class Program
{
    static void Main()
    {
        string html = "<h1>Hello, World!</h1><p>This PDF is generated from HTML.</p>";
        ChromePdfRenderer renderer = new ChromePdfRenderer(); // Create an instance of ChromePdfRenderer
        PdfDocument pdf = renderer.RenderHtmlAsPdf(html); // Render the HTML as a PDF document
        pdf.SaveAs("Generated.pdf"); // Save the PDF to a specified file
    }
}
using IronPdf;
class Program
{
    static void Main()
    {
        string html = "<h1>Hello, World!</h1><p>This PDF is generated from HTML.</p>";
        ChromePdfRenderer renderer = new ChromePdfRenderer(); // Create an instance of ChromePdfRenderer
        PdfDocument pdf = renderer.RenderHtmlAsPdf(html); // Render the HTML as a PDF document
        pdf.SaveAs("Generated.pdf"); // Save the PDF to a specified file
    }
}
Imports IronPdf
Friend Class Program
	Shared Sub Main()
		Dim html As String = "<h1>Hello, World!</h1><p>This PDF is generated from HTML.</p>"
		Dim renderer As New ChromePdfRenderer() ' Create an instance of ChromePdfRenderer
		Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(html) ' Render the HTML as a PDF document
		pdf.SaveAs("Generated.pdf") ' Save the PDF to a specified file
	End Sub
End Class
VB   C#
  1. Importation d'Espace de Noms: using IronPdf; importe la bibliothèque IronPDF pour accéder à ses classes et méthodes.

  2. Chaîne HTML : La variable HTML contient le contenu HTML que vous souhaitez convertir en PDF.

  3. Instance de Rendu : new ChromePdfRenderer();** crée une instance de la classe HtmlToPdf, qui fournit des méthodes pour rendre le contenu HTML au format PDF.

  4. Render PDF: PdfDocument PDF = renderer.RenderHtmlAsPdf(html);** convertit la chaîne HTML en document PDF.

  5. Save PDF: pdf.SaveAs("Generated.pdf");** enregistre le PDF généré à l'emplacement de fichier spécifié.

Pour

  • Excellente qualité de rendu pour le contenu web.
  • Prise en charge robuste des formulaires, des hyperliens et des signets.

Cons

  • Les frais de licence peuvent être un facteur à prendre en compte pour les projets plus importants.
  • Des fonctionnalités plus avancées peuvent nécessiter un apprentissage plus approfondi.

2. iTextSharp

Comparaison de 7 bibliothèques C# pour générer des PDF (Outils gratuits et payants) : Figure 2

iTextSharp est une bibliothèque PDF .NET bien établie qui offre une fonctionnalité étendue pour la création et l'édition de fichiers PDF. Il est largement utilisé dans des secteurs comme la finance et le juridique, où les documents doivent être personnalisés et sécurisés. iTextSharp vous permet de créer des fichiers PDF à partir de zéro, de remplir des formulaires et de modifier des fichiers PDF, offrant un contrôle étendu sur le contenu du document. Il est particulièrement utile pour les applications d'entreprise qui doivent générer des fichiers PDF avec des mises en page précises et des données dynamiques, telles que des factures ou des contrats.

Caractéristiques principales

  • Capacités complètes de création de PDF : iTextSharp facilite la création d'un fichier PDF en C# à partir de zéro, permettant aux développeurs d'ajouter du texte, des images, des tableaux et des graphiques vectoriels. Il offre un contrôle complet sur la mise en page du document, y compris la possibilité de définir les tailles de page, les marges et les métadonnées.
  • Remplissage de formulaire : Une force significative d'iTextSharp est sa capacité à gérer les formulaires PDF.(AcroForms). Vous pouvez créer des formulaires avec divers champs de saisie et les remplir ensuite de manière programmatique, une fonctionnalité utile dans les flux de travail de génération de documents automatisés.
  • Conversion XML en PDF : iTextSharp offre un support robuste pour la conversion des données XML en PDF en utilisant XFA(Architecture des formulaires XML). Cela est particulièrement précieux dans les industries où les données XML doivent être formatées en formulaires ou rapports standard.
  • Sécurité PDF : iTextSharp comprend des fonctionnalités avancées telles que l'ajout de chiffrement, de signatures numériques et de filigranes pour garantir l'authenticité des documents et protéger les données sensibles.
  • Extraction et manipulation de texte : Vous pouvez extraire du texte à partir de PDF existants, réorganiser le contenu des documents ou manipuler des éléments de page, ce qui est utile pour le post-traitement de documents ou pour générer des rapports résumés à partir de PDF complexes.

Exemple de code

using System;
using System.Collections.Generic;
using System.Data.Entity.Core.Mapping;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.tool.xml;
using Voodoo;
namespace Helpers
{
    public class PdfGenerator
    {
        public static Byte[] GeneratePdfFromFragment(string htmlFragment)
        {
            var html = string.Format(@"
            <html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en'>
            <head>
            <style type='text/css'>
            table,td {{border: 1px solid black;}}
            div {{ white-space: nowrap; padding: 2px;}}
            table{{ border-collapse: collapse; width: 100%; empty-cells: show;}}
            body table {{font-size: 50%;}}
            th {{width:500px; height: 28px;}}
            td {{width:300px; height: 28px;}}
            </style>
            </head><body>{0}</body></html>", htmlFragment);
          return generate(html);
        }
        public static Byte[] GeneratePdfFromPage(string htmlPage)
        {
            return generate(htmlPage);
        }
        private static Byte[] generate (string html)
        {
            using (var memoryStream = new MemoryStream())
            {
                var pdfDocument = new Document(PageSize.LETTER);
                var pdfWriter = PdfWriter.GetInstance(pdfDocument, memoryStream);
                pdfDocument.Open();
                using (var fw = new StringReader(html))
                {                    
                    XMLWorkerHelper.GetInstance().ParseXHtml(pdfWriter, pdfDocument, fw);
                    pdfDocument.Close();
                    fw.Close();
                }
                return memoryStream.ToArray();
            }
        }
    }
}
using System;
using System.Collections.Generic;
using System.Data.Entity.Core.Mapping;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.tool.xml;
using Voodoo;
namespace Helpers
{
    public class PdfGenerator
    {
        public static Byte[] GeneratePdfFromFragment(string htmlFragment)
        {
            var html = string.Format(@"
            <html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en'>
            <head>
            <style type='text/css'>
            table,td {{border: 1px solid black;}}
            div {{ white-space: nowrap; padding: 2px;}}
            table{{ border-collapse: collapse; width: 100%; empty-cells: show;}}
            body table {{font-size: 50%;}}
            th {{width:500px; height: 28px;}}
            td {{width:300px; height: 28px;}}
            </style>
            </head><body>{0}</body></html>", htmlFragment);
          return generate(html);
        }
        public static Byte[] GeneratePdfFromPage(string htmlPage)
        {
            return generate(htmlPage);
        }
        private static Byte[] generate (string html)
        {
            using (var memoryStream = new MemoryStream())
            {
                var pdfDocument = new Document(PageSize.LETTER);
                var pdfWriter = PdfWriter.GetInstance(pdfDocument, memoryStream);
                pdfDocument.Open();
                using (var fw = new StringReader(html))
                {                    
                    XMLWorkerHelper.GetInstance().ParseXHtml(pdfWriter, pdfDocument, fw);
                    pdfDocument.Close();
                    fw.Close();
                }
                return memoryStream.ToArray();
            }
        }
    }
}
Imports System
Imports System.Collections.Generic
Imports System.Data.Entity.Core.Mapping
Imports System.IO
Imports System.Linq
Imports System.Text
Imports System.Threading.Tasks
Imports iTextSharp.text
Imports iTextSharp.text.pdf
Imports iTextSharp.tool.xml
Imports Voodoo
Namespace Helpers
	Public Class PdfGenerator
		Public Shared Function GeneratePdfFromFragment(ByVal htmlFragment As String) As Byte()
			Dim html = String.Format("
            <html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en'>
            <head>
            <style type='text/css'>
            table,td {{border: 1px solid black;}}
            div {{ white-space: nowrap; padding: 2px;}}
            table{{ border-collapse: collapse; width: 100%; empty-cells: show;}}
            body table {{font-size: 50%;}}
            th {{width:500px; height: 28px;}}
            td {{width:300px; height: 28px;}}
            </style>
            </head><body>{0}</body></html>", htmlFragment)
		  Return generate(html)
		End Function
		Public Shared Function GeneratePdfFromPage(ByVal htmlPage As String) As Byte()
			Return generate(htmlPage)
		End Function
		Private Shared Function generate(ByVal html As String) As Byte()
			Using memoryStream As New MemoryStream()
				Dim pdfDocument = New Document(PageSize.LETTER)
				Dim pdfWriter = PdfWriter.GetInstance(pdfDocument, memoryStream)
				pdfDocument.Open()
				Using fw = New StringReader(html)
					XMLWorkerHelper.GetInstance().ParseXHtml(pdfWriter, pdfDocument, fw)
					pdfDocument.Close()
					fw.Close()
				End Using
				Return memoryStream.ToArray()
			End Using
		End Function
	End Class
End Namespace
VB   C#
  1. GeneratePdfFromFragment : Prend un fragment HTML(comme un document HTML partiel) et le convertit en une structure HTML complète en l'encapsulant dans une structure de base

    etmodèle. Il appelle ensuite la méthode interne generate.

  2. GeneratePdfFromPage : Accepte une page HTML complète et appelle directement la méthode de génération.

    1. generate : Cette méthode gère la conversion de HTML en PDF.

      • Il initialise un MemoryStream pour contenir le PDF généré en mémoire.

      • Il crée un objet Document iTextSharp avec des pages de format Lettre.
    • Le XMLWorkerHelper analyse le contenu HTML et l'écrit dans le document PDF en utilisant le StringReader fourni.

    4.

Pour

  • Hautement personnalisable avec un ensemble de fonctionnalités riche.
  • Documentation complète et support communautaire.

Cons

  • iTextSharp(qui est gratuit pour un usage personnel mais nécessite une licence commerciale pour des projets à plus grande échelle)peut avoir des limitations dans la gestion des CSS ou JavaScript complexes.
  • XMLWorker(qui est utilisé ici)est un outil obsolète d'iTextSharp pour l'analyse du HTML/CSS. iText7(la version plus récente d'iText)utilise un analyseur HTML plus robuste, pdfHTML, qui pourrait offrir un meilleur support pour les normes web modernes.
  • Courbe d'apprentissage plus raide pour les débutants.

3. PDFsharp

Comparaison de 7 bibliothèques C# pour générer des PDF (Outils gratuits et payants) : Figure 3

PDFSharp est une bibliothèque PDF .NET légère et open-source idéale pour les tâches de création de PDF de base. Si votre application nécessite uniquement des opérations simples comme l'ajout de texte, d'images ou de tableaux, PdfSharp est une option facile à utiliser pour générer des documents PDF en C#. Il manque de fonctionnalités avancées comme la conversion HTML en PDF, mais il se distingue par sa simplicité pour générer des fichiers PDF de petite à moyenne taille en C#.

Caractéristiques principales

  • Création de PDF de base : API simple et facile à utiliser pour dessiner du texte et des graphiques. Idéal pour créer des documents simples.
  • Manipulation de documents : Fusionnez et modifiez facilement les PDF existants, offrant ainsi une flexibilité dans la gestion des documents.
  • Support de Dessin et Graphisme : PDFsharp offre un ensemble d'outils pour dessiner sur des pages PDF, y compris des lignes, des rectangles et d'autres graphiques vectoriels. Il prend également en charge l'intégration d'images dans vos PDF.
  • Gratuit et Open Source : PDFsharp est complètement gratuit pour une utilisation commerciale et non commerciale, ce qui en fait une option attrayante pour les petites entreprises et les développeurs travaillant sur des projets open source.

Exemple de code

using PdfSharp.Pdf;
using PdfSharp.Drawing;
class Program
{
    static void Main()
    {
        // Create a new PDF document
        PdfDocument document = new PdfDocument();
        document.Info.Title = "Created with PdfSharp";
        // Add a page to the document
        PdfPage page = document.AddPage();
        // Create an XGraphics object to draw on the page
        XGraphics gfx = XGraphics.FromPdfPage(page);
        // Set a font to use for drawing text
        XFont font = new XFont("Verdana", 20, XFontStyle.Bold);
        // Draw the text on the PDF page
        gfx.DrawString("Hello, World!", font, XBrushes.Black, 
            new XRect(0, 0, page.Width, page.Height), XStringFormats.Center);
        // Save the document to disk
        document.Save("Generated.pdf");
    }
}
using PdfSharp.Pdf;
using PdfSharp.Drawing;
class Program
{
    static void Main()
    {
        // Create a new PDF document
        PdfDocument document = new PdfDocument();
        document.Info.Title = "Created with PdfSharp";
        // Add a page to the document
        PdfPage page = document.AddPage();
        // Create an XGraphics object to draw on the page
        XGraphics gfx = XGraphics.FromPdfPage(page);
        // Set a font to use for drawing text
        XFont font = new XFont("Verdana", 20, XFontStyle.Bold);
        // Draw the text on the PDF page
        gfx.DrawString("Hello, World!", font, XBrushes.Black, 
            new XRect(0, 0, page.Width, page.Height), XStringFormats.Center);
        // Save the document to disk
        document.Save("Generated.pdf");
    }
}
Imports PdfSharp.Pdf
Imports PdfSharp.Drawing
Friend Class Program
	Shared Sub Main()
		' Create a new PDF document
		Dim document As New PdfDocument()
		document.Info.Title = "Created with PdfSharp"
		' Add a page to the document
		Dim page As PdfPage = document.AddPage()
		' Create an XGraphics object to draw on the page
		Dim gfx As XGraphics = XGraphics.FromPdfPage(page)
		' Set a font to use for drawing text
		Dim font As New XFont("Verdana", 20, XFontStyle.Bold)
		' Draw the text on the PDF page
		gfx.DrawString("Hello, World!", font, XBrushes.Black, New XRect(0, 0, page.Width, page.Height), XStringFormats.Center)
		' Save the document to disk
		document.Save("Generated.pdf")
	End Sub
End Class
VB   C#
  • PdfDocument : Représente l'ensemble du document PDF. Vous pouvez ajouter des pages, définir des métadonnées et manipuler le document.
  • PdfPage : Représente une seule page dans le document. De nouvelles pages sont ajoutées à l’aide de la méthode AddPage.
  • XGraphics : Cela est utilisé pour dessiner du texte, des images et des formes sur une page spécifique. C’est similaire à GDI+ dans .NET.
  • XFont : Spécifie la police et le style pour le rendu du texte. Dans cet exemple, "Verdana" est utilisé avec un style gras.
  • DrawString : Dessine la chaîne spécifiée à la position définie dans le document.

Pour

  • Gratuit et open-source sans restrictions de licence.
  • Simple et léger, ce qui facilite la mise en route avec la génération de PDF basique.
  • Fonctionne bien pour les projets qui ne nécessitent pas de fonctionnalités complexes.

Cons

  • Fonctionnalités limitées par rapport à d'autres bibliothèques.
  • Pas de prise en charge native pour la conversion de HTML en PDF.

4. Bibliothèque PDF Syncfusion

C# Comparaison des 7 bibliothèques pour générer des PDF (outils gratuits et payants) : Figure 4

Syncfusion PDF Library est un outil performant et complet conçu pour les entreprises qui doivent travailler avec des PDF dans un large éventail d'applications. Il fait partie de la suite Syncfusion plus large, qui propose des bibliothèques pour une variété de formats et de plateformes. La bibliothèque PDF se distingue par son ensemble de fonctionnalités étendu qui va au-delà de la simple création de documents et permet une manipulation détaillée, y compris le remplissage de formulaires, les signatures numériques et la sécurité des documents.

Caractéristiques principales

  • API PDF complète : Syncfusion PDF est capable de générer des PDFs hautement personnalisés, y compris ceux avec des mises en page complexes, des polices intégrées et des images haute résolution. Il offre un contrôle détaillé sur tous les aspects de la création de PDF, de la mise en forme des pages aux options de mise en page avancées.
  • Traitement des formulaires : La bibliothèque excelle dans la création, le remplissage et l'extraction de données à partir de formulaires PDF interactifs.(AcroForms). Ceci est utile pour créer des PDFs remplissables pour la saisie utilisateur, automatiser la saisie de données ou traiter des formulaires remplis.
  • Signatures numériques et chiffrement : Syncfusion offre des fonctionnalités de sécurité robustes, y compris la possibilité de crypter des documents PDF, d'ajouter une protection par mot de passe et d'appliquer des signatures numériques. Ces fonctionnalités sont cruciales pour des industries comme les services de santé et juridiques qui nécessitent l'authenticité et la sécurité des documents. Exemple de code
using Syncfusion.Pdf;
using Syncfusion.Pdf.Parsing;
using Syncfusion.Pdf.Graphics;
using Syncfusion.Pdf.Grid;
class Program
{
    static void Main()
    {
        //Create a new PDF document.
    PdfDocument document = new PdfDocument();
    //Add a page to the document.
    PdfPage page = document.Pages.Add();
    //Create PDF graphics for the page.
    PdfGraphics graphics = page.Graphics;
    //Set the standard font.
    PdfFont font = new PdfStandardFont(PdfFontFamily.Helvetica, 20);
    //Draw the text.
    graphics.DrawString("Hello World!!!", font, PdfBrushes.Black, new PointF(0, 0));
    //Save the document.
    document.Save("Output.pdf");
    //Close the document.
    document.Close(true);
    }
}
using Syncfusion.Pdf;
using Syncfusion.Pdf.Parsing;
using Syncfusion.Pdf.Graphics;
using Syncfusion.Pdf.Grid;
class Program
{
    static void Main()
    {
        //Create a new PDF document.
    PdfDocument document = new PdfDocument();
    //Add a page to the document.
    PdfPage page = document.Pages.Add();
    //Create PDF graphics for the page.
    PdfGraphics graphics = page.Graphics;
    //Set the standard font.
    PdfFont font = new PdfStandardFont(PdfFontFamily.Helvetica, 20);
    //Draw the text.
    graphics.DrawString("Hello World!!!", font, PdfBrushes.Black, new PointF(0, 0));
    //Save the document.
    document.Save("Output.pdf");
    //Close the document.
    document.Close(true);
    }
}
Imports Syncfusion.Pdf
Imports Syncfusion.Pdf.Parsing
Imports Syncfusion.Pdf.Graphics
Imports Syncfusion.Pdf.Grid
Friend Class Program
	Shared Sub Main()
		'Create a new PDF document.
	Dim document As New PdfDocument()
	'Add a page to the document.
	Dim page As PdfPage = document.Pages.Add()
	'Create PDF graphics for the page.
	Dim graphics As PdfGraphics = page.Graphics
	'Set the standard font.
	Dim font As PdfFont = New PdfStandardFont(PdfFontFamily.Helvetica, 20)
	'Draw the text.
	graphics.DrawString("Hello World!!!", font, PdfBrushes.Black, New PointF(0, 0))
	'Save the document.
	document.Save("Output.pdf")
	'Close the document.
	document.Close(True)
	End Sub
End Class
VB   C#
  • PdfDocument : Représente le document PDF. Vous pouvez ajouter des pages, définir des propriétés et manipuler son contenu.
  • PdfPage : Représente une page dans le document PDF.
  • PdfFont : Définit la police pour le rendu du texte. Dans ce cas, une police Helvetica standard est utilisée.
  • DrawString : Dessine la chaîne spécifiée sur la page PDF aux coordonnées données.

Pour

  • Riche ensemble de fonctionnalités, adapté à la création de PDF complexes.
  • Le support professionnel et la documentation en font un choix idéal pour les applications à grande échelle.
  • Prend en charge des capacités PDF avancées telles que le remplissage de formulaires, le cryptage et les annotations.

Cons

  • Les frais de licence sont relativement élevés pour une utilisation commerciale.
  • API complexe, qui peut nécessiter du temps pour maîtriser.

5. PDFShift(Outil en ligne)

Comparaison de 7 bibliothèques pour générer des PDF en C# (Outils gratuits et payants) : Figure 5

PDFShift est un service basé sur le cloud conçu pour convertir des fichiers HTML en fichiers PDF. Il s'intègre parfaitement aux applications C# via son API, vous permettant de convertir des pages web HTML générées dynamiquement en PDF de qualité professionnelle. PDFShift est particulièrement utile pour les développeurs web qui souhaitent générer des documents PDF à la demande à partir de contenu HTML, tels que des factures ou des rapports. Étant donné que PDFShift fonctionne entièrement via son API REST, vous pouvez envoyer quelques lignes de HTML au service et recevoir en retour un fichier PDF téléchargeable. C'est une solution simple et évolutive pour la génération de fichiers PDF en ligne.

Caractéristiques principales

  • Conversion HTML en PDF : PDFShift excelle dans la conversion de documents HTML en PDF de haute qualité. Il gère des styles CSS complexes, du JavaScript et des mises en page réactives, garantissant que votre page web conserve exactement le même aspect au format PDF.
  • Intégration API : L'API PDFShift est conçue pour une intégration fluide dans les applications web. C'est simple à utiliser : envoyez simplement une requête HTTP POST avec le contenu HTML, et le service renvoie un document PDF.
  • Options de personnalisation : PDFShift permet la personnalisation du PDF généré, y compris la définition de la taille de la page, de l'orientation, des marges et des en-têtes/pieds de page. Vous pouvez également ajouter du contenu dynamique aux en-têtes et pieds de page, tels que des numéros de page ou des métadonnées de document.

Comment ça marche

  • Envoyez une requête POST avec le contenu HTML au point de terminaison de l'API PDFShift.
  • Recevez le PDF généré en réponse, prêt à être téléchargé ou enregistré.

Exemple de code

using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
class Program
{
    static async Task Main(string[] args)
    {
        using (HttpClient client = new HttpClient())
        {
            string htmlContent = "<h1>Hello, World!</h1><p>This is generated using PDFShift API.</p>";
            var content = new StringContent(htmlContent, Encoding.UTF8, "application/json");
            HttpResponseMessage response = await client.PostAsync("https://api.pdfshift.io/v3/convert", content);
            byte[] pdfBytes = await response.Content.ReadAsByteArrayAsync();
            System.IO.File.WriteAllBytes("Generated.pdf", pdfBytes);
        }
    }
}
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
class Program
{
    static async Task Main(string[] args)
    {
        using (HttpClient client = new HttpClient())
        {
            string htmlContent = "<h1>Hello, World!</h1><p>This is generated using PDFShift API.</p>";
            var content = new StringContent(htmlContent, Encoding.UTF8, "application/json");
            HttpResponseMessage response = await client.PostAsync("https://api.pdfshift.io/v3/convert", content);
            byte[] pdfBytes = await response.Content.ReadAsByteArrayAsync();
            System.IO.File.WriteAllBytes("Generated.pdf", pdfBytes);
        }
    }
}
Imports System.Net.Http
Imports System.Text
Imports System.Threading.Tasks
Friend Class Program
	Shared Async Function Main(ByVal args() As String) As Task
		Using client As New HttpClient()
			Dim htmlContent As String = "<h1>Hello, World!</h1><p>This is generated using PDFShift API.</p>"
			Dim content = New StringContent(htmlContent, Encoding.UTF8, "application/json")
			Dim response As HttpResponseMessage = Await client.PostAsync("https://api.pdfshift.io/v3/convert", content)
			Dim pdfBytes() As Byte = Await response.Content.ReadAsByteArrayAsync()
			System.IO.File.WriteAllBytes("Generated.pdf", pdfBytes)
		End Using
	End Function
End Class
VB   C#
  • HttpClient : Envoie le contenu HTML en tant que requête POST à l'API PDFShift.
  • PostAsync : Envoie la requête à l'API, qui traite le HTML et renvoie le PDF.
  • ReadAsByteArrayAsync : Lit la réponse PDF sous forme de tableau d'octets, qui peut ensuite être enregistré en tant que fichier.

Pour

  • API simple avec une configuration minimale.
  • Idéal pour les applications web nécessitant une conversion dynamique de HTML en PDF.
  • Aucun besoin de gérer des bibliothèques ou des serveurs PDF.

Cons

  • Limité à la conversion de HTML en PDF; ne prend pas en charge les fonctionnalités PDF plus complexes.
  • Nécessite une connexion internet et entraîne des coûts après un certain seuil d'utilisation.

6. DocRaptor(Outil en ligne)

Comparaison de 7 bibliothèques pour générer des PDF en C# (Outils gratuits et payants) : Figure 6

DocRaptor est un autre service puissant de génération de PDF basé sur API qui convertit HTML et CSS en PDF de haute qualité. Il est connu pour son excellent rendu des documents HTML, en particulier pour la gestion des styles CSS complexes, des requêtes média et des polices Web. Cela fait de DocRaptor un excellent choix pour générer des documents professionnels tels que des rapports, des factures et des eBooks, directement à partir de modèles HTML.

Caractéristiques principales

  • Prise en charge de HTML et CSS : Convertit les documents HTML avec des styles CSS complexes, y compris les requêtes multimédias et les polices.
  • Intégration API : API REST pour une intégration transparente dans les applications web.
  • En-têtes/Pieds de page personnalisés : Ajoutez des en-têtes et pieds de page dynamiques, y compris des numéros de page et une mise en forme personnalisée.
  • Sécurité PDF : Prend en charge le chiffrement et la protection par mot de passe.

Comment ça marche

  • Envoyez une requête POST à l'API DocRaptor avec le contenu HTML.
  • Personnalisez le rendu PDF avec des paramètres pour la taille de la page, les marges, les en-têtes et les pieds de page.
  • Recevez le PDF généré en réponse.

Exemple de code

using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
class Program
{
    static async Task Main(string[] args)
    {
        using (HttpClient client = new HttpClient())
        {
            string apiKey = "YOUR_API_KEY";
            string htmlContent = "<h1>Professional Report</h1><p>Generated using DocRaptor API.</p>";
            string jsonData = $"{{\"test\": true, \"document_content\": \"{htmlContent}\", \"name\": \"Generated.pdf\", \"document_type\": \"pdf\"}}";
            var content = new StringContent(jsonData, Encoding.UTF8, "application/json");
            HttpResponseMessage response = await client.PostAsync($"https://docraptor.com/docs?user_key={apiKey}", content);
            byte[] pdfBytes = await response.Content.ReadAsByteArrayAsync();
            System.IO.File.WriteAllBytes("Generated.pdf", pdfBytes);
        }
    }
}
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
class Program
{
    static async Task Main(string[] args)
    {
        using (HttpClient client = new HttpClient())
        {
            string apiKey = "YOUR_API_KEY";
            string htmlContent = "<h1>Professional Report</h1><p>Generated using DocRaptor API.</p>";
            string jsonData = $"{{\"test\": true, \"document_content\": \"{htmlContent}\", \"name\": \"Generated.pdf\", \"document_type\": \"pdf\"}}";
            var content = new StringContent(jsonData, Encoding.UTF8, "application/json");
            HttpResponseMessage response = await client.PostAsync($"https://docraptor.com/docs?user_key={apiKey}", content);
            byte[] pdfBytes = await response.Content.ReadAsByteArrayAsync();
            System.IO.File.WriteAllBytes("Generated.pdf", pdfBytes);
        }
    }
}
Imports System.Net.Http
Imports System.Text
Imports System.Threading.Tasks
Friend Class Program
	Shared Async Function Main(ByVal args() As String) As Task
		Using client As New HttpClient()
			Dim apiKey As String = "YOUR_API_KEY"
			Dim htmlContent As String = "<h1>Professional Report</h1><p>Generated using DocRaptor API.</p>"
			Dim jsonData As String = $"{{""test"": true, ""document_content"": ""{htmlContent}"", ""name"": ""Generated.pdf"", ""document_type"": ""pdf""}}"
			Dim content = New StringContent(jsonData, Encoding.UTF8, "application/json")
			Dim response As HttpResponseMessage = Await client.PostAsync($"https://docraptor.com/docs?user_key={apiKey}", content)
			Dim pdfBytes() As Byte = Await response.Content.ReadAsByteArrayAsync()
			System.IO.File.WriteAllBytes("Generated.pdf", pdfBytes)
		End Using
	End Function
End Class
VB   C#
  • Clé API : Vous devez fournir une clé API pour l'authentification lors de l'utilisation de DocRaptor. Remplacez "YOUR_API_KEY" par votre clé réelle.
  • JsonData : Cette chaîne JSON contient le contenu HTML, le nom du document et le type.(PDF dans ce cas).
  • PostAsync : Envoie le contenu HTML et les paramètres à l'API DocRaptor pour la génération de PDF.

Pour

  • Rendu de haute qualité avec prise en charge complète de HTML, CSS et JavaScript.
  • Options de personnalisation avancées pour la mise en page et la sécurité des documents.
  • Pas besoin de maintenir des bibliothèques ou une infrastructure de génération de PDF.

Cons

  • Service payant après dépassement de la limite d'utilisation gratuite.
  • Dépendant de la connectivité internet.

7. Outils en ligne sans code

Si vous ne souhaitez pas programmer ou avez besoin d'une solution rapide pour générer des PDF, plusieurs outils en ligne vous permettent de créer des PDF rapidement et facilement. Voici quelques options notables :

7.1. Smallpdf

Comparaison de 7 bibliothèques C# pour générer des PDF (outils gratuits et payants) : Figure 7

Smallpdf est une plateforme en ligne offrant une variété d'outils liés aux PDF, y compris la capacité de créer des PDFs à partir d'un large éventail de formats de fichiers. Il est conçu pour les utilisateurs qui souhaitent une interface de glisser-déposer simple sans avoir besoin de coder. Smallpdf est largement utilisé pour des conversions rapides de fichiers, comme transformer des documents Word, des feuilles Excel ou des images en PDFs. Il offre également des outils pour fusionner, compresser et diviser des PDF, ce qui en fait un outil polyvalent pour les tâches PDF de base.

Caractéristiques principales

  • Conversion de fichiers : Smallpdf prend en charge la conversion de fichiers Word, Excel, PowerPoint et image(JPG, PNG)en PDF. Cela le rend idéal pour les utilisateurs qui ont besoin de créer des PDF à partir d'une variété de types de documents rapidement.
  • Fusionner et scinder des PDF : Smallpdf offre une interface simple permettant de fusionner plusieurs PDFs en un seul fichier ou de scinder un PDF en pages individuelles.
  • Intégration du stockage cloud : Vous pouvez facilement télécharger des fichiers depuis Google Drive ou Dropbox et enregistrer les PDF convertis sur ces plateformes, simplifiant ainsi la gestion des fichiers.
  • Outils d'édition PDF : En plus de la conversion, Smallpdf propose des outils d'édition PDF de base pour modifier tout document PDF existant, tels que l'ajout d'annotations, le remplissage de formulaires, et la signature de documents numériquement.

Pour

  • Très facile à utiliser pour les non-développeurs.
  • Gratuit pour une utilisation de base avec des options de mise à niveau pour plus de fonctionnalités.
  • Offre une large gamme d'outils liés aux PDF tels que la fusion, la division et la compression de PDFs.

Cons

  • Personnalisation limitée par rapport aux solutions basées sur le code.
  • Le niveau gratuit peut comporter certaines restrictions de fonctionnalités.

7.2. PDFescape

C# Générer un PDF : Comparaison de 7 bibliothèques (Outils gratuits et payants) : Figure 8

PDFescape est un éditeur PDF en ligne facile à utiliser qui permet aux utilisateurs de créer, modifier et visualiser des PDF sans avoir besoin d'installer de logiciel. C'est un excellent outil pour ceux qui ont besoin d'effectuer des modifications rapides sur des PDF, comme remplir des formulaires, ajouter des annotations textuelles ou insérer des images. PDFescape propose également des outils pour créer de nouveaux PDF à partir de zéro, ce qui en fait un choix flexible pour la création de documents de base.

Caractéristiques principales

  • Remplissage et Édition de Formulaires : PDFescape excelle dans la gestion des formulaires PDF. Les utilisateurs peuvent facilement remplir des formulaires ou modifier des champs existants dans des documents PDF, ce qui est utile pour les contrats, les candidatures et d'autres formulaires.
  • Création de PDF de base : Pour les utilisateurs cherchant à créer des PDF à partir de zéro, PDFescape offre des outils pour ajouter du texte, des formes, des images et des champs de formulaire. Ceci est utile pour créer des documents simples comme des lettres ou des formulaires.
  • Annotations et Commentaires : Vous pouvez ajouter des commentaires, des notes autocollantes et d'autres annotations aux fichiers PDF existants, ce qui fait de PDFescape un excellent outil pour la révision et la collaboration de documents.
  • Aucune installation requise : En tant qu'outil basé sur le web, PDFescape fonctionne entièrement dans votre navigateur, il n'est donc pas nécessaire d'installer de logiciel. Cela le rend idéal pour les utilisateurs qui ont besoin d'un accès rapide aux outils PDF en déplacement.

Pour

  • Simple à utiliser pour les utilisateurs non techniques.
  • Niveau gratuit pour la création et l'édition de PDF de base.
  • Convient pour des tâches mineures d'édition de PDF.

Cons

  • Manque de fonctionnalités avancées pour la création de PDF complexes.
  • Options limitées de conception et de mise en forme.

7.3. PDF Candy

Comparaison de 7 bibliothèques C# pour générer des PDF (outils gratuits et payants) : Figure 9

PDF Candy est une suite d'outils PDF gratuits en ligne qui couvre un large éventail de tâches liées aux PDF, allant de la conversion de fichiers à l'édition. C'est un excellent choix pour les utilisateurs qui ont besoin d'effectuer rapidement des opérations PDF sans créer de compte ou installer de logiciel. PDF Candy prend en charge la conversion de divers types de fichiers, tels que des documents Word, des images et des fichiers texte, en PDF. Il offre également des outils pour fusionner, diviser et compresser des fichiers PDF.

Caractéristiques principales

  • Large éventail d'options de conversion : PDF Candy peut convertir de nombreux formats de fichiers, y compris les documents Word, les images et les fichiers texte, en PDF. Cela en fait un outil flexible pour gérer différents types de contenu.
  • Fusionner et diviser des PDF : La plateforme permet aux utilisateurs de fusionner plusieurs PDF en un seul ou de diviser de grands PDF en fichiers plus petits et plus maniables.
  • Confidentialité des fichiers : PDF Candy supprime automatiquement les fichiers de ses serveurs après une courte période, garantissant que vos documents restent privés.
  • Libre d'utilisation : La plupart des outils sur PDF Candy sont gratuits et accessibles sans inscription, ce qui les rend accessibles à un large public. Cependant, il propose également une version premium avec des fonctionnalités plus avancées pour ceux qui ont besoin d'une utilisation plus fréquente ou de conversion de fichiers plus volumineux.

Pour

  • Facile à utiliser et totalement gratuit pour la plupart des utilisateurs.
  • Prend en charge une variété de types de fichiers pour la conversion en PDF.
  • Aucune inscription de compte requise pour une utilisation de base.

Cons

  • Fonctionnalités avancées de personnalisation PDF limitées.
  • Certaines outils peuvent avoir des restrictions concernant la taille des fichiers ou la complexité de la conversion.

Conclusion

C# Comparaison de 7 bibliothèques de génération de PDF (outils gratuits et payants) : Figure 10

Choisir le bon outil pour générer des fichiers PDF en C# dépend de vos besoins. Si vous devez générer des documents PDF à partir de contenu HTML, IronPDF et PDFShift sont d'excellentes options. iTextSharp et Syncfusion offrent des options de personnalisation étendues et un contrôle sur la structure des documents pour des projets plus complexes. Pour des solutions open-source plus simples, PDFsharp est un choix fiable pour modifier des fichiers PDF ou créer des PDF basiques. Enfin, pour les non-développeurs, Smallpdf, PDFescape et PDF Candy offrent des options simples et sans code pour travailler avec des fichiers PDF.

Pour ceux qui souhaitent essayerIronPDF, en faisant une excellente option pour les développeurs pour tester ses fonctionnalités de conversion HTML en PDF et de manipulation de PDF avant de s'engager sur une licence payante. L'essai vous permet d'explorer ses fonctionnalités premium, telles que la génération de fichiers PDF de haute qualité, les options de sécurité et la modification de documents PDF existants, vous offrant une expérience pratique des capacités de l'outil. Si votre projet nécessite des conversions fréquentes de HTML en PDF ou une édition complexe de PDF, l'essai gratuit d'IronPDF est un excellent moyen de voir s'il répond à vos besoins.

En évaluant les fonctionnalités spécifiques de chaque outil et la portée de votre projet, vous pouvez choisir la meilleure solution pour générer des fichiers PDF efficacement en C#.

SUIVANT >
html2pdf Page Break Fixed en C# (Tutoriel pour Développeurs)