Test dans un environnement réel
Test en production sans filigrane.
Fonctionne partout où vous en avez besoin.
Lorsque l'on travaille avec des PDF en C#.NET, il est préférable d'utiliser des bibliothèques de manipulation et de génération de PDF plutôt que d'accomplir nos tâches à partir de zéro. SpirePDF et IronPDF ils permettent tous deux de créer, d'éditer et d'imprimer des fichiers PDF dans .NET et .NET Core. Ils peuvent également lire le PDF des exemples de textes, de données, de tableaux et d'images de manière très compétente.
Nous examinerons ces deux bibliothèques dans cet article. Nous montrerons ce que chaque bibliothèque PDF peut faire, et nous comparerons la façon dont elles le font à travers des exemples de code et des tutoriels étape par étape. Bien que cet article ne puisse pas couvrir toutes les fonctionnalités des deux bibliothèques PDF, il expliquera les utilisations les plus courantes et les plus populaires de chacune d'entre elles. Cela vous permettra de décider lequel est le mieux adapté à vos projets.
IronPDF est la bibliothèque de rendu HTML vers PDF pour C# et Java. Convertissez vos pages web en PDF fonctionnels et parfaits au pixel près, rapidement et avec un minimum de lignes de code. Découvrez les capacités d'IronPDF for .NET C# dans l'article ci-dessous. En savoir plus sur IronPDF for Java ici.
Il arrive souvent que les outils fournis par Microsoft dans le cadre de Visual Studio manquent de fonctionnalité ou de convivialité. C'est là qu'interviennent les bibliothèques tierces. Les développeurs utilisent des bibliothèques tierces pour leur facilité d'utilisation ou, le plus souvent, pour leurs fonctionnalités.
Cet article va comparer deux des bibliothèques PDF les plus populaires pour les développeurs .NET et .NET Core. Ces deux bibliothèques sont :
Spire.PDF for .NET est une API qui peut être appliquée à la création, l'édition, l'écriture, la lecture et la manipulation de fichiers PDF sans nécessiter de dépendances externes dans les applications C#, VB.NET, ASP.NET, .NET Core, Xamarin. Avec Spire.PDF, vous pouvez créer des fichiers PDF à partir de zéro ou traiter des documents PDF existants uniquement en C#/VB.NET sans avoir à installer Adobe Acrobat.
IronPDF permet aux développeurs .NET et .NET Core de générer, fusionner, diviser, modifier et extraire facilement du contenu pdf en C#, F# et VB.NET pour .NET Core et .NET Framework, ainsi que de créer des PDF à partir de fichiers HTML, ASPX, CSS, JS et d'images.
IronPDF utilise un moteur de rendu intégré, entièrement basé sur Chromium, pour convertir HTML en PDF. Cela permet aux développeurs de générer des PDF à partir de HTML, d'images et de CSS, de travailler en étroite collaboration avec les ressources web existantes et de travailler en parallèle avec les concepteurs au cours d'un projet.
IronPDF se concentre sur la productivité des développeurs. La bibliothèque simplifie de nombreuses tâches complexes courantes du code PDF en méthodes C# pratiques pour extraire du texte et des images, signer des PDF, éditer des PDF avec du nouveau HTML et plus encore - sans que le développeur ait besoin d'étudier la norme du document PDF pour comprendre comment obtenir le meilleur résultat.
Examinons quelques-unes de leurs caractéristiques.
IronPDF | SpirePDF |
---|---|
Convertir HTML en PDF en C# à l'aide d'IronPDF | Spire.PDF for .NET permet de convertir du HTML en C# |
URL vers PDF en 3 lignes de code | Une solution de contournement a été nécessaire pour essayer de convertir l'URL |
Conversion facile de la chaîne HTML en PDF | Peut convertir une chaîne HTML en PDF |
Polices d'icônes (Fontello, Bootstrap, FontAwesome) | 14 polices de base Polices de caractères de type 1 Polices de caractères de type 3 Polices CJK Polices True Type Support Unicode |
Licences de $749 | Licences à partir de 599 |
Option de licence | IronPDF | SpirePDF |
---|---|---|
1 développeur, 1 site | $749 | $599 |
1 développeur, un nombre illimité de projets, 1 site | $699 | $599 |
Jusqu'à 10 développeurs, un nombre illimité de projets, jusqu'à 10 sites | $1199 | $3070 |
Nombre illimité de développeurs, nombre illimité de projets, nombre illimité de lieux | $1799 | Pas de licence |
1 produit SaaS/OEM, jusqu'à 50 développeurs, nombre de sites illimité | $1599 | $8988 |
Acheter une licence | Options de licence d'IronPDF | Options de licence de SpirePDF |
Laissons maintenant le code parler!
Tout d'abord, nous allons créer un projet pour tester différentes fonctions PDF à l'aide de chaque bibliothèque logicielle.
Créez un site web ASP.NET en suivant les étapes suivantes :
Sélectionnez ASP.NET Web Application, comme indiqué ci-dessous
L'écran suivant apparaît et dans celui-ci, sélectionnez Formulaires Web comme indiqué ci-dessous
Il y a deux façons principales d'installer IronPDF sur votre PC, elles sont présentées ci-dessous :
Téléchargez la bibliothèque IronPDF, comme nous l'expliquerons un peu plus loin.
Il existe essentiellement trois façons d'installer rapidement le package NuGet IronPDF dans vos projets Visual Studio :
Le gestionnaire de paquets NuGet permet de télécharger et d'installer divers paquets que vous pouvez inclure dans vos applications afin d'en améliorer les fonctionnalités. L'un de ces logiciels est IronPDF. Pour télécharger et installer le NuGet Package IronPDF, sélectionnez le menu Projet ou cliquez avec le bouton droit de la souris sur votre projet dans l'explorateur de solutions. Une capture d'écran de chacune d'entre elles est présentée ci-dessous.
Recherchez le paquetage IronPDF et installez-le comme indiqué ci-dessous.
Vous pouvez également installer le package NuGet IronPDF à l'aide de l'Invite de Commande Developer. Les étapes suivantes expliquent comment procéder.
PM > Installer le paquet IronPDF
Les étapes suivantes vous permettent de télécharger IronPDF directement depuis NuGet :
La deuxième façon d'installer IronPDF est de le télécharger directement en cliquant ici pour télécharger IronPDF.dll.
Faites référence à la bibliothèque dans votre projet en suivant les étapes suivantes :
Cliquez sur OK
Il y a trois façons d'installer le paquet NuGet SpirePDF dans vos projets Visual Studio :
Télécharger le paquet NuGet directement à partir du site Site NuGet de SpirePDF
Dans Visual Studio, recherchez SpirePDF et installez les paquets correspondants, comme indiqué ci-dessous. (Les étapes sont similaires à celles présentées précédemment)
Ou, dans l'invite de commandes du développeur (comme indiqué précédemment, entrez la commande suivante) ``` Installer-Package Spire.PDF -Version 6.9.16
Vous pouvez également le télécharger directement à partir de leur site web : https://www.e-iceblue.com/Download/download-pdf-for-net-now.html Vous devez vous enregistrer.
Si tout s'est bien passé, vous devriez être prêt à utiliser les bibliothèques.
Le code suivant télécharge une page web et la convertit en document PDF.
Le code qui suit utilise IronPDF pour créer un PDF à partir d'une URL - dans ce cas : la description du format PDF sur Wikipedia. Les en-têtes et pieds de page des clients sont également inclus.
var Renderer = new IronPdf.ChromePdfRenderer();
// Create a PDF from an existing HTML
Renderer.RenderingOptions.MarginTop = 50; //millimetres
Renderer.RenderingOptions.MarginBottom = 50;
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
Renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
{
CenterText = "{pdf-title}",
DrawDividerLine = true,
FontSize = 16
};
Renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
{
LeftText = "{date} {time}",
RightText = "Page {page} of {total-pages}",
DrawDividerLine = true,
FontSize = 14
};
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
Renderer.RenderingOptions.EnableJavaScript = true;
Renderer.RenderingOptions.RenderDelay = 500; //milliseconds
using var PDF = Renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Portable_Document_Format");
PDF.SaveAs("wikipedia.pdf");
var Renderer = new IronPdf.ChromePdfRenderer();
// Create a PDF from an existing HTML
Renderer.RenderingOptions.MarginTop = 50; //millimetres
Renderer.RenderingOptions.MarginBottom = 50;
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
Renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
{
CenterText = "{pdf-title}",
DrawDividerLine = true,
FontSize = 16
};
Renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
{
LeftText = "{date} {time}",
RightText = "Page {page} of {total-pages}",
DrawDividerLine = true,
FontSize = 14
};
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
Renderer.RenderingOptions.EnableJavaScript = true;
Renderer.RenderingOptions.RenderDelay = 500; //milliseconds
using var PDF = Renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Portable_Document_Format");
PDF.SaveAs("wikipedia.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
Le fichier de sortie contient 12 pages et le rendu de JavaScript et CSS est exceptionnellement bon. Le résultat est illustré ci-dessous :
Générer un PDF à partir d'une URL est une conversion apparemment simple, comme nous l'avons vu plus haut. Mais en raison d'un certain nombre de facteurs, notre équipe d'ingénieurs a eu du mal à y parvenir avec SpirePDF. Il n'y a pas beaucoup de documentation disponible à ce sujet et, en tant que développeurs, nous avons essayé de trouver une solution de contournement.
Pour ce faire, nous pensons que vous devez télécharger et installer d'autres outils, comme indiqué ici : http://www.e-iceblue.com/Download/download-pdf-for-net-now.html Nous n'avons toujours pas trouvé la solution. Au lieu de cela, voici un segment de code pour une application console que vous pouvez utiliser pour y parvenir après avoir suivi toutes les étapes de la procédure :
//Create a pdf document.
PdfDocument doc = new PdfDocument();
PdfPageSettings setting = new PdfPageSettings();
setting.Size = new SizeF(1000, 1000);
setting.Margins = new Spire.Pdf.Graphics.PdfMargins(20);
PdfHtmlLayoutFormat htmlLayoutFormat = new PdfHtmlLayoutFormat();
htmlLayoutFormat.IsWaiting = true;
String url = "https://www.wikipedia.org/";
Thread thread = new Thread(() =>
{ doc.LoadFromHTML(url, false, false, false, setting, htmlLayoutFormat); });
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
thread.Join();
//Save pdf file.
doc.SaveToFile("output-wiki.pdf");
doc.Close();
//Launching the Pdf file.
System.Diagnostics.Process.Start("output-wiki.pdf");
//Create a pdf document.
PdfDocument doc = new PdfDocument();
PdfPageSettings setting = new PdfPageSettings();
setting.Size = new SizeF(1000, 1000);
setting.Margins = new Spire.Pdf.Graphics.PdfMargins(20);
PdfHtmlLayoutFormat htmlLayoutFormat = new PdfHtmlLayoutFormat();
htmlLayoutFormat.IsWaiting = true;
String url = "https://www.wikipedia.org/";
Thread thread = new Thread(() =>
{ doc.LoadFromHTML(url, false, false, false, setting, htmlLayoutFormat); });
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
thread.Join();
//Save pdf file.
doc.SaveToFile("output-wiki.pdf");
doc.Close();
//Launching the Pdf file.
System.Diagnostics.Process.Start("output-wiki.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
IronPDF a nécessité trois lignes de code (si vous incluez également la méthode SaveAs au bas du segment de code)mais pour le reste, seules deux lignes sont nécessaires :
var Renderer = new IronPdf.ChromePdfRenderer();
using var PDF = Renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Portable_Document_Format");
var Renderer = new IronPdf.ChromePdfRenderer();
using var PDF = Renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Portable_Document_Format");
Dim Renderer = New IronPdf.ChromePdfRenderer()
Dim PDF = Renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Portable_Document_Format")
Rapide et concret. Comme vous l'avez peut-être remarqué, le code n'utilise pas de FileStream ou d'autres objets .NET ; La méthode RenderUrlAsPdf gère toutes les complexités du Framework .NET dans les coulisses.
SpirePDF, en revanche, rendait la conversion d'URL en PDF très compliquée et nécessitait des solutions de contournement créatives.
Nous allons comparer IronPDF et Spire.PDF sur leur qualité de conversion.
Spire.PDF for .NET est une API utilisée pour manipuler les fichiers PDF comme IronPDF, mais elle n'offre pas autant de fonctionnalités qu'IronPDF, ni la qualité du moteur de rendu d'IronPDF. La meilleure façon de comparer deux outils est de le faire côte à côte. Ci-dessus se trouvent les résultats d'IronPDF et de Spire.PDF. Le panneau d'administration de Bucket est un tableau de bord web qui sert à afficher toutes les informations utiles.
Il y a une nette différence dans la qualité de rendu des deux outils. Le résultat généré par IronPDF est une copie identique à 100 % de la page web originale. D'autre part, le PDF créé par Spire.PDF n'est que le squelette du site web.
IronPDF a utilisé et rendu tous les fichiers CSS et JavaScript de la page web et son apparence est parfaite, mais Spire.PDF manque presque tous les fichiers CSS et JavaScript de la page web de l'administrateur du seau. Tous les graphiques sont manquants - Si leurs valeurs ne sont pas manquantes, elles ne sont pas calculées et affichées en sortie.
Le moteur de rendu de Spire.PDF ne rend pas les couleurs avec précision sur le site web ; seules quelques couleurs sont visibles sur la sortie créée par Spire.PDF. IronPDF fait une copie identique de la page web et toutes les couleurs sont parfaites pixel par pixel.
Dans le fichier de sortie Spire.PDF, la barre de navigation latérale ne peut pas être identifiée et il semble qu'il n'y ait que du texte à la place de la barre. Dans le fichier de sortie IronPDF, la barre de navigation latérale est parfaite.
IronPDF et Spire.PDF prennent presque le même temps pour convertir une URL en fichier PDF, mais IronPDF rend avec précision tout le contenu du site web et le moteur de rendu de Spire.PDF ne peut pas créer des PDF de bonne qualité.
Les exemples suivants utilisent IronPDF et SpirePDF pour créer un document PDF à partir d'une chaîne HTML fournie.
Le code suivant utilise IronPDF pour créer un PDF contenant une entrée HTML.
/**
PDF from HTML String
anchor-pdf-from-html-string-with-ironpdf
**/
private void HTMLString()
{
var Renderer = new IronPdf.ChromePdfRenderer();
using var PDF = Renderer.RenderHtmlAsPdf("<h1>Hi there IronPdf</h1>");
Renderer.RenderingOptions.TextFooter = new HtmlHeaderFooter() { HtmlFragment = "<div style='text-align:right'><em style='color:pink'>page {page} of {total-pages}</em></div>" };
var OutputPath = "ChromePdfRenderer.pdf";
PDF.SaveAs(OutputPath);
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen;
}
/**
PDF from HTML String
anchor-pdf-from-html-string-with-ironpdf
**/
private void HTMLString()
{
var Renderer = new IronPdf.ChromePdfRenderer();
using var PDF = Renderer.RenderHtmlAsPdf("<h1>Hi there IronPdf</h1>");
Renderer.RenderingOptions.TextFooter = new HtmlHeaderFooter() { HtmlFragment = "<div style='text-align:right'><em style='color:pink'>page {page} of {total-pages}</em></div>" };
var OutputPath = "ChromePdfRenderer.pdf";
PDF.SaveAs(OutputPath);
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen;
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
Le code suivant utilise SpirePDF pour créer un PDF contenant du texte HTML.
private void HTMLString()
{
Document document = new Document();
document.LoadFromFile("sample.htm", FileFormat.Html, XHTMLValidationType.None);
//Save html to PDF.
document.SaveToFile("Sample.pdf", FileFormat.PDF);
}
private void HTMLString()
{
Document document = new Document();
document.LoadFromFile("sample.htm", FileFormat.Html, XHTMLValidationType.None);
//Save html to PDF.
document.SaveToFile("Sample.pdf", FileFormat.PDF);
}
Private Sub HTMLString()
Dim document As New Document()
document.LoadFromFile("sample.htm", FileFormat.Html, XHTMLValidationType.None)
'Save html to PDF.
document.SaveToFile("Sample.pdf", FileFormat.PDF)
End Sub
SpirePDF ne semble pouvoir charger des fichiers HTML qu'en utilisant la méthode LoadFromFile et utilise ensuite l'appel SaveToFile pour envoyer un fichier HTML qui sera édité au format PDF.
IronPDF utilise RenderHtmlAsPdf pour rendre la chaîne HTML donnée au format PDF.
Le code IronPDF et SpirePDF suivant crée un document PDF à partir d'une page ASPX.
Le code suivant utilise IronPDF pour créer un document PDF à partir d'un fichier ASPX.
/**
ASPX to PDF
anchor-aspx-to-pdf-with-ironpdf
**/
protected void Page_Load(object sender, EventArgs e)
{
IronPdf.AspxToPdf.RenderThisPageAsPdf();
}
/**
ASPX to PDF
anchor-aspx-to-pdf-with-ironpdf
**/
protected void Page_Load(object sender, EventArgs e)
{
IronPdf.AspxToPdf.RenderThisPageAsPdf();
}
'''
'''ASPX to PDF
'''anchor-aspx-to-pdf-with-ironpdf
'''*
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
IronPdf.AspxToPdf.RenderThisPageAsPdf()
End Sub
Le code suivant permet de convertir un fichier ASPX en PDF.
protected void Page_Load(object sender, EventArgs e)
{
using PdfDocument pdf = new PdfDocument();
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
this.RenderControl(htw);
//string sourceCode = sw.ToString();
string url=Request.Url.AbsoluteUri;
Thread thread = new Thread(() =>
{
PdfPageSettings settings = new PdfPageSettings();
PdfHtmlLayoutFormat format = new PdfHtmlLayoutFormat();
pdf.LoadFromHTML(url, false, true, true, settings, format);
//pdf.LoadFromHTML(Request.Url.AbsoluteUri, false, true, true);
});
pdf.SaveToHttpResponse("NameOfFile.pdf", Response, HttpReadType.Save);
}
protected void Page_Load(object sender, EventArgs e)
{
using PdfDocument pdf = new PdfDocument();
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
this.RenderControl(htw);
//string sourceCode = sw.ToString();
string url=Request.Url.AbsoluteUri;
Thread thread = new Thread(() =>
{
PdfPageSettings settings = new PdfPageSettings();
PdfHtmlLayoutFormat format = new PdfHtmlLayoutFormat();
pdf.LoadFromHTML(url, false, true, true, settings, format);
//pdf.LoadFromHTML(Request.Url.AbsoluteUri, false, true, true);
});
pdf.SaveToHttpResponse("NameOfFile.pdf", Response, HttpReadType.Save);
}
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
Using pdf As New PdfDocument()
Dim sw As New StringWriter()
Dim htw As New HtmlTextWriter(sw)
Me.RenderControl(htw)
'string sourceCode = sw.ToString();
Dim url As String=Request.Url.AbsoluteUri
Dim thread As New Thread(Sub()
Dim settings As New PdfPageSettings()
Dim format As New PdfHtmlLayoutFormat()
pdf.LoadFromHTML(url, False, True, True, settings, format)
'pdf.LoadFromHTML(Request.Url.AbsoluteUri, false, true, true);
End Sub)
pdf.SaveToHttpResponse("NameOfFile.pdf", Response, HttpReadType.Save)
End Using
End Sub
Il y a cependant quelques mises en garde : il peut arriver qu'un PDF vierge soit créé car l'adhésion à l'authentification des formulaires n'est pas prise en charge.
Le code suivant prend du XML et le convertit en un document PDF
/**
XML to PDF
anchor-xml-to-pdf-with-ironpdf
**/
private void XMLtoPDF(string XSLT, string XML)
{
XslCompiledTransform transform = new XslCompiledTransform();
using(XmlReader reader = XmlReader.Create(new StringReader(XSLT)))
{
transform.Load(reader);
}
StringWriter results = new StringWriter();
using(XmlReader reader = XmlReader.Create(new StringReader(XML)))
{
transform.Transform(reader, null, results);
}
IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
Renderer.RenderHtmlAsPdf(results.ToString()).SaveAs("XMLtoPDF.pdf");
}
/**
XML to PDF
anchor-xml-to-pdf-with-ironpdf
**/
private void XMLtoPDF(string XSLT, string XML)
{
XslCompiledTransform transform = new XslCompiledTransform();
using(XmlReader reader = XmlReader.Create(new StringReader(XSLT)))
{
transform.Load(reader);
}
StringWriter results = new StringWriter();
using(XmlReader reader = XmlReader.Create(new StringReader(XML)))
{
transform.Transform(reader, null, results);
}
IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
Renderer.RenderHtmlAsPdf(results.ToString()).SaveAs("XMLtoPDF.pdf");
}
'''
'''XML to PDF
'''anchor-xml-to-pdf-with-ironpdf
'''*
Private Sub XMLtoPDF(ByVal XSLT As String, ByVal XML As String)
Dim transform As New XslCompiledTransform()
Using reader As XmlReader = XmlReader.Create(New StringReader(XSLT))
transform.Load(reader)
End Using
Dim results As New StringWriter()
Using reader As XmlReader = XmlReader.Create(New StringReader(XML))
transform.Transform(reader, Nothing, results)
End Using
Dim Renderer As New IronPdf.ChromePdfRenderer()
Renderer.RenderHtmlAsPdf(results.ToString()).SaveAs("XMLtoPDF.pdf")
End Sub
Le prix est très probablement le facteur décisif numéro un dans le choix d'un produit. Dans le tableau, je mettrai rapidement en évidence les différentes options pour IronPDF et SpirePDF. Voir le tableau de comparaison des prix
Comparons ensuite l'assistance et les mises à jour d'Iron Software et de SpirePDF.
La couverture des mises à jour des produits permet de passer à la dernière version à tout moment pendant la durée de validité de la couverture.
Les services de soutien suivants sont disponibles :
Explorez la référence API de la bibliothèque C# d'IronPDF, y compris les détails de toutes les fonctionnalités, classes, champs de méthodes, espaces de noms et enums d'IronPDF.
Voir la référence de l'API9 produits de l'API .NET pour vos documents de bureau