Test dans un environnement réel
Test en production sans filigrane.
Fonctionne partout où vous en avez besoin.
Avec l'amélioration de la technologie et l'augmentation de l'utilisation de l'internet, les données sont principalement envoyées et reçues sous forme numérique, principalement dans des fichiers PDF.
Travailler avec des documents PDF en C# a été difficile pour les développeurs dans un passé récent. Il existe de nombreux scénarios dans lesquels les développeurs doivent incorporer des capacités de visualisation et de génération de PDF dans leurs applications. Dans cette optique, de nombreuses bibliothèques ont été développées pour faciliter ces tâches et d'autres similaires.
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 :
La bibliothèque PDFium.NET SDK
IronPDF et PDFium.NET permettent de créer, de manipuler et d'imprimer des PDF dans des applications .NET. La question qui se pose est la suivante : quelle bibliothèque utiliser ? La lecture de cet article vous permettra d'en juger par vous-même.
Voyons d'abord ce que les deux bibliothèques ont à offrir, puis nous passerons à la comparaison proprement dite.
PDFium.NET est utilisé pour créer, modifier et visualiser des fichiers en tant que PDF (formats de documents portables). Il fournit une API C#/VB.NET de haut niveau pour la création dynamique de PDF sur un serveur web et pour mettre en œuvre la fonction Save as PDF dans les applications de bureau ou web existantes.
Les principales caractéristiques de PDFium.NET sont les suivantes :
La bibliothèque PDF IronPDF .NET est conçue pour les développeurs, en particulier pour les développeurs C#. Grâce à cette formidable bibliothèque PDF, vous pouvez facilement intégrer des fonctionnalités de visualisation de fichiers PDF dans vos projets .NET.
IronPDF dispose d'un moteur Chromium intégré qui peut convertir HTML en PDF très facilement. Cela ne nécessite pas d'API compliquées de bas niveau pour manipuler les fichiers PDF. Il peut traiter des fichiers sources HTML tels que des documents HTML, des fichiers JavaScript et des pages web ASPX.
IronPDF peut personnaliser les PDF avec des en-têtes et des pieds de page personnalisés, des filigranes et bien plus encore. La lecture des textes PDF et l'extraction des graphiques sont également un jeu d'enfant pour les développeurs.
Les principales caractéristiques d'IronPDF for .NET sont les suivantes :
Imprimer des fichiers PDF sans utiliser Adobe Acrobat Reader.
La bibliothèque IronPDF est disponible pour presque tous les systèmes d'exploitation et frameworks compatibles avec C#, notamment les suivants :
Azure, AWS, Docker, Linux, Windows
Le reste de l'article se lit comme suit :
Il existe différentes façons de télécharger et d'installer la bibliothèque IronPDF. Les méthodes les plus simples sont les suivantes :
Dans votre projet Visual Studio, à partir du menu "Outils" ou en faisant un clic droit sur votre projet dans l'explorateur de solutions et en sélectionnant "Gérer les paquets NuGet". Ces deux options sont illustrées ci-dessous par des captures d'écran.
Une fois le gestionnaire de paquets NuGet ouvert, recherchez le paquetage IronPDF et installez-le, comme le montre la capture d'écran ci-dessous.
IronPDF peut également être téléchargé via l'Invite de commande du développeur. Suivez les étapes ci-dessous :
Install-Package IronPdf
IronPDF peut également être téléchargé directement en visitant le site NuGet. Les étapes sont les suivantes :
Vous pouvez également télécharger directement le fichier IronPDF.DLL du site web.
Faites référence à la bibliothèque IronPDF dans votre projet en suivant les étapes suivantes :
Cliquez sur OK!
Tout est fait! IronPDF est téléchargé et installé. Nous allons maintenant installer la bibliothèque PDFium.NET SDK.
Nous pouvons installer PDFium.net à l'aide du NuGet Package Manager ou en téléchargeant le PDFium Windows Installer.
Recherchez PDFium.NET.SDK. Cliquez sur Installer dans votre projet actuel.
PM> Install-Package Pdfium.Net.SDK
IronPDF propose plusieurs méthodes pour générer des fichiers PDF. Examinons deux d'entre elles.
IronPDF permet de convertir très simplement HTML vers PDF en utilisant les URL existants.
Considérons le code source suivant.
IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
using var Pdf = Renderer.RenderUrlAsPdf("https://ironpdf.com/");
Pdf.SaveAs("url.pdf");
IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
using var Pdf = Renderer.RenderUrlAsPdf("https://ironpdf.com/");
Pdf.SaveAs("url.pdf");
Dim Renderer As New IronPdf.ChromePdfRenderer()
Dim Pdf = Renderer.RenderUrlAsPdf("https://ironpdf.com/")
Pdf.SaveAs("url.pdf")
L'extrait de code suivant montre comment une chaîne HTML peut être utilisée pour rendre une page PDF. Vous pouvez utiliser du simple HTML ou le combiner avec du CSS, des images et du JavaScript.
var Renderer = new IronPDF.ChromePdfRenderer();
using var PDF = Renderer.RenderHtmlAsPdf("<h1>Html with CSS and Images</h1>");
PDF.SaveAs("pixel-perfect.pdf");
// Load external html assets: images, css and javascript.
// An optional BasePath 'C:\site\assets\' is set as the file location to load assets from
using var AdvancedPDF = Renderer.RenderHtmlAsPdf("<img src='logo_square.png'>", @"e:\site\assets\");
AdvancedPDF.SaveAs("html-with-assets.pdf");
var Renderer = new IronPDF.ChromePdfRenderer();
using var PDF = Renderer.RenderHtmlAsPdf("<h1>Html with CSS and Images</h1>");
PDF.SaveAs("pixel-perfect.pdf");
// Load external html assets: images, css and javascript.
// An optional BasePath 'C:\site\assets\' is set as the file location to load assets from
using var AdvancedPDF = Renderer.RenderHtmlAsPdf("<img src='logo_square.png'>", @"e:\site\assets\");
AdvancedPDF.SaveAs("html-with-assets.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
Le résultat est le suivant :
Il peut générer des PDF à la volée en utilisant des images et des objets textuels. Cependant, il n'est pas en mesure de convertir une URL ou une chaîne HTML en fichier PDF.
Le code permettant de générer des PDF à l'aide de la construction de PDFium.NET est le suivant :
public void CreatePDF()
{
// Step 1: Initialize PDF library and create empty document
// Return value: PdfDocument main class
PdfCommon.Initialize();
var doc = PdfDocument.CreateNew(); // Create a PDF document
// Step 2: Add new page
// Arguments: page width: 8.27", page height: 11.69", Unit of measure: inches
// The PDF unit of measure is point. There are 72 points in one inch.
var page = doc.Pages.InsertPageAt(doc.Pages.Count, 8.27f * 72, 11.69f * 72);
// Step 3: Add graphics and text contents to the page
// Insert image from file using standard System.Drawing.Bitmap class
using (PdfBitmap logo = PdfBitmap.FromFile(@"e:\site\assets\logo_square.png"))
{
PdfImageObject imageObject = PdfImageObject.Create(doc, logo, 0, 0);
//image resolution is 300 DPI and location is 1.69 x 10.0 inches.
imageObject.Matrix = new FS_MATRIX(logo.Width * 72 / 300, 0, 0, logo.Height * 72 / 300, 1.69 * 72, 10.0 * 72);
page.PageObjects.Add(imageObject);
}
// Create fonts used for text objects
PdfFont calibryBold = PdfFont.CreateFont(doc, "CalibriBold");
// Insert text objects at 7.69"; 11.02" and font size is 25
PdfTextObject textObject = PdfTextObject.Create("Sample text", 7.69f * 72, 11.02f * 72, calibryBold, 25);
textObject.FillColor = FS_COLOR.Black;
page.PageObjects.Add(textObject);
// Step 5: Generate page content and save PDF file
// argument: PDF file name
page.GenerateContent();
doc.Save(@"e:\site\sample_document.pdf", SaveFlags.NoIncremental);
}
public void CreatePDF()
{
// Step 1: Initialize PDF library and create empty document
// Return value: PdfDocument main class
PdfCommon.Initialize();
var doc = PdfDocument.CreateNew(); // Create a PDF document
// Step 2: Add new page
// Arguments: page width: 8.27", page height: 11.69", Unit of measure: inches
// The PDF unit of measure is point. There are 72 points in one inch.
var page = doc.Pages.InsertPageAt(doc.Pages.Count, 8.27f * 72, 11.69f * 72);
// Step 3: Add graphics and text contents to the page
// Insert image from file using standard System.Drawing.Bitmap class
using (PdfBitmap logo = PdfBitmap.FromFile(@"e:\site\assets\logo_square.png"))
{
PdfImageObject imageObject = PdfImageObject.Create(doc, logo, 0, 0);
//image resolution is 300 DPI and location is 1.69 x 10.0 inches.
imageObject.Matrix = new FS_MATRIX(logo.Width * 72 / 300, 0, 0, logo.Height * 72 / 300, 1.69 * 72, 10.0 * 72);
page.PageObjects.Add(imageObject);
}
// Create fonts used for text objects
PdfFont calibryBold = PdfFont.CreateFont(doc, "CalibriBold");
// Insert text objects at 7.69"; 11.02" and font size is 25
PdfTextObject textObject = PdfTextObject.Create("Sample text", 7.69f * 72, 11.02f * 72, calibryBold, 25);
textObject.FillColor = FS_COLOR.Black;
page.PageObjects.Add(textObject);
// Step 5: Generate page content and save PDF file
// argument: PDF file name
page.GenerateContent();
doc.Save(@"e:\site\sample_document.pdf", SaveFlags.NoIncremental);
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
Le résultat est le suivant :
Si nous comparons les résultats des projets IronPDF et PDFium, nous pouvons clairement voir que la sortie basée sur la bibliothèque de classe IronPDF donne un meilleur résultat en utilisant le rendu HTML et sans même mettre à l'échelle la taille de l'image. D'autre part, PDFium.NET donne un résultat similaire à celui d'IronPDF, mais seulement avec la mise à l'échelle de l'image. Si nous sautons cette ligne du code :
imageObject.Matrix = new FS_MATRIX(logo.Width * 72 / 300, 0, 0, logo.Height * 72 / 300, 1.69 * 72, 10.0 * 72);
imageObject.Matrix = new FS_MATRIX(logo.Width * 72 / 300, 0, 0, logo.Height * 72 / 300, 1.69 * 72, 10.0 * 72);
imageObject.Matrix = New FS_MATRIX(logo.Width * 72 \ 300, 0, 0, logo.Height * 72 \ 300, 1.69 * 72, 10.0 * 72)
Le résultat sera le suivant :
Fusionner deux ou plusieurs PDF est facile avec IronPDF. La méthode Fusionner permet de combiner deux ou plusieurs fichiers PDF dont chacun est séparé par une virgule. Le code est le suivant :
using IronPdf;
var html_a = @"<p> [PDF_A] </p>
<p> [PDF_A] 1st Page </p>
<div style = 'page-break-after: always;' ></div>
<p> [PDF_A] 2nd Page</p>";
var html_b = @"<p> [PDF_B] </p>
<p> [PDF_B] 1st Page </p>
<div style = 'page-break-after: always;' ></div>
<p> [PDF_B] 2nd Page</p>";
var Renderer = new IronPDF.ChromePdfRenderer();
var pdfdoc_a = Renderer.RenderHtmlAsPdf(html_a);
var pdfdoc_b = Renderer.RenderHtmlAsPdf(html_b);
var merged = IronPDF.PdfDocument.Merge(pdfdoc_a, pdfdoc_b);
merged.SaveAs("Merged.PDF");
using IronPdf;
var html_a = @"<p> [PDF_A] </p>
<p> [PDF_A] 1st Page </p>
<div style = 'page-break-after: always;' ></div>
<p> [PDF_A] 2nd Page</p>";
var html_b = @"<p> [PDF_B] </p>
<p> [PDF_B] 1st Page </p>
<div style = 'page-break-after: always;' ></div>
<p> [PDF_B] 2nd Page</p>";
var Renderer = new IronPDF.ChromePdfRenderer();
var pdfdoc_a = Renderer.RenderHtmlAsPdf(html_a);
var pdfdoc_b = Renderer.RenderHtmlAsPdf(html_b);
var merged = IronPDF.PdfDocument.Merge(pdfdoc_a, pdfdoc_b);
merged.SaveAs("Merged.PDF");
IRON VB CONVERTER ERROR developers@ironsoftware.com
Avec PDFium.NET, vous pouvez non seulement fusionner plusieurs fichiers PDF en un seul fichier, mais aussi sélectionner certaines pages spécifiques des fichiers sources et les combiner en un seul document PDF.
Le code ci-dessous montre comment cela peut être fait en utilisant la méthode ImportPages
.
public void MergePDF()
{
//Initialize the SDK library.
PdfCommon.Initialize();
//Open and load a PDF document in which other files will be merged
using (var mainDoc = PdfDocument.Load(@"c:\test001.pdf")) // C# Read source PDF File #1
{
//Open one PDF document.
using (var doc = PdfDocument.Load(@"c:\doc1.pdf")) //Read PDF File #2
{
//Import all pages from document
mainDoc.Pages.ImportPages(
doc,
string.Format("1-{0}", doc.Pages.Count),
mainDoc.Pages.Count
);
}
//Open another PDF document.
using (var doc = PdfDocument.Load(@"c:\doc2.pdf"))
{
//Import all pages from document
mainDoc.Pages.ImportPages(
doc,
string.Format("1-{0}", doc.Pages.Count),
mainDoc.Pages.Count
);
}
mainDoc.Save(@"c:\ResultDocument.pdf", SaveFlags.NoIncremental);
}
}
public void MergePDF()
{
//Initialize the SDK library.
PdfCommon.Initialize();
//Open and load a PDF document in which other files will be merged
using (var mainDoc = PdfDocument.Load(@"c:\test001.pdf")) // C# Read source PDF File #1
{
//Open one PDF document.
using (var doc = PdfDocument.Load(@"c:\doc1.pdf")) //Read PDF File #2
{
//Import all pages from document
mainDoc.Pages.ImportPages(
doc,
string.Format("1-{0}", doc.Pages.Count),
mainDoc.Pages.Count
);
}
//Open another PDF document.
using (var doc = PdfDocument.Load(@"c:\doc2.pdf"))
{
//Import all pages from document
mainDoc.Pages.ImportPages(
doc,
string.Format("1-{0}", doc.Pages.Count),
mainDoc.Pages.Count
);
}
mainDoc.Save(@"c:\ResultDocument.pdf", SaveFlags.NoIncremental);
}
}
Public Sub MergePDF()
'Initialize the SDK library.
PdfCommon.Initialize()
'Open and load a PDF document in which other files will be merged
Using mainDoc = PdfDocument.Load("c:\test001.pdf") ' C# Read source PDF File #1
'Open one PDF document.
Using doc = PdfDocument.Load("c:\doc1.pdf") 'Read PDF File #2
'Import all pages from document
mainDoc.Pages.ImportPages(doc, String.Format("1-{0}", doc.Pages.Count), mainDoc.Pages.Count)
End Using
'Open another PDF document.
Using doc = PdfDocument.Load("c:\doc2.pdf")
'Import all pages from document
mainDoc.Pages.ImportPages(doc, String.Format("1-{0}", doc.Pages.Count), mainDoc.Pages.Count)
End Using
mainDoc.Save("c:\ResultDocument.pdf", SaveFlags.NoIncremental)
End Using
End Sub
L'une des fonctions les plus importantes de nos jours est la signature numérique d'un document PDF. IronPDF offre cette possibilité. Le code est le suivant :
using IronPdf;
// Cryptographically sign an existing PDF in 1 line of code!
new IronPDF.Signing.PdfSignature("Iron.p12", "123456").SignPdfFile("any.pdf");
/***** Advanced example for more control *****/
// Step 1. Create a PDF
var Renderer = new IronPdf.ChromePdfRenderer();
var doc = Renderer.RenderHtmlAsPDF("<h1>Testing 2048 bit digital security</h1>");
// Step 2. Create a Signature.
// You may create a .pfx or .p12 PDF signing certificate using Adobe Acrobat Reader.
var signature = new IronPDF.Signing.PdfSignature("Iron.pfx", "123456");
// Step 3. Handwritten signature graphic
signature.LoadSignatureImageFromFile("handwriting.png");
//Step 4. Sign the PDF with the PDFSignature. Multiple signing certificates may be used
doc.SignPdfWithDigitalSignature(signature);
//Step 4. The PDF is not signed until saved to file, stream or byte array.
doc.SaveAs("signed.pdf");
using IronPdf;
// Cryptographically sign an existing PDF in 1 line of code!
new IronPDF.Signing.PdfSignature("Iron.p12", "123456").SignPdfFile("any.pdf");
/***** Advanced example for more control *****/
// Step 1. Create a PDF
var Renderer = new IronPdf.ChromePdfRenderer();
var doc = Renderer.RenderHtmlAsPDF("<h1>Testing 2048 bit digital security</h1>");
// Step 2. Create a Signature.
// You may create a .pfx or .p12 PDF signing certificate using Adobe Acrobat Reader.
var signature = new IronPDF.Signing.PdfSignature("Iron.pfx", "123456");
// Step 3. Handwritten signature graphic
signature.LoadSignatureImageFromFile("handwriting.png");
//Step 4. Sign the PDF with the PDFSignature. Multiple signing certificates may be used
doc.SignPdfWithDigitalSignature(signature);
//Step 4. The PDF is not signed until saved to file, stream or byte array.
doc.SaveAs("signed.pdf");
Imports IronPdf
' Cryptographically sign an existing PDF in 1 line of code!
Call (New IronPDF.Signing.PdfSignature("Iron.p12", "123456")).SignPdfFile("any.pdf")
'''*** Advanced example for more control ****
' Step 1. Create a PDF
Dim Renderer = New IronPdf.ChromePdfRenderer()
Dim doc = Renderer.RenderHtmlAsPDF("<h1>Testing 2048 bit digital security</h1>")
' Step 2. Create a Signature.
' You may create a .pfx or .p12 PDF signing certificate using Adobe Acrobat Reader.
Dim signature = New IronPDF.Signing.PdfSignature("Iron.pfx", "123456")
' Step 3. Handwritten signature graphic
signature.LoadSignatureImageFromFile("handwriting.png")
'Step 4. Sign the PDF with the PDFSignature. Multiple signing certificates may be used
doc.SignPdfWithDigitalSignature(signature)
'Step 4. The PDF is not signed until saved to file, stream or byte array.
doc.SaveAs("signed.pdf")
PDFium.NET ne permet pas de signer numériquement les documents PDF.
IronPDF est gratuit pour le développement d'applications simples et peut à tout moment faire l'objet d'une licence pour un usage commercial. Il propose des licences pour un seul projet, des licences pour un seul développeur, des licences pour les agences et les organisations multinationales. Elle fournit également des licences SaaS et de redistribution OEM ainsi qu'une assistance.
Toutes les licences IronPDF sont disponibles avec une garantie de remboursement de 30 jours, ainsi qu'un an d'assistance et de mises à jour du logiciel. Plus important encore, il s'agit d'une licence perpétuelle (achat unique). Le paquetage Lite est disponible pour $749. Il n'y a absolument aucun frais récurrent avec les produits IronPDF. Des informations plus détaillées sur les licences disponibles sont disponibles sur le site IronPDF Licences page.
PDFium.NET propose une licence perpétuelle. Vous pouvez utiliser cette version du SDK avec votre clé d'enregistrement pour toujours. Cependant, la clé ne fonctionne qu'avec certaines versions spécifiques du SDK qui dépendent de la date d'achat ou de renouvellement de la licence. Vous pouvez installer toute nouvelle version du produit gratuitement, à condition qu'elle ait été publiée avant ou dans l'année qui suit votre achat. PDFium.NET propose également 3 formules de licence différentes :
La licence pour développeur unique est conçue pour les développeurs uniques et les indépendants travaillant pour plusieurs clients.
Vous pouvez visiter ce site page pour obtenir des informations complètes sur les prix.
La bibliothèque IronPDF est une bibliothèque facile à utiliser pour créer des documents PDF sans API compliquées. Le moteur chrome intégré permet une conversion HTML-PDF parfaite au pixel près avec des types de documents standards ouverts tels que HTML, JS, CSS, JPG, PNG, GIF et SVG.
PDFium.NET SDK est une bibliothèque de classes .NET conçue pour répondre à la plupart des besoins courants des développeurs à un prix plus qu'abordable. Avec PDFium.NET SDK, vos applications peuvent afficher et manipuler des documents PDF comme un charme. Son API spéciale d'édition d'objets de page est ce qui rend cette bibliothèque particulièrement puissante...
Les licences PDFium.NET se déclinent en trois éditions, comme indiqué ci-dessus. La licence pour un seul projet permet d'accueillir un seul développeur et jusqu'à trois développeurs à partir de 720 $ et 900 $ respectivement. C'est un peu moins cher qu'IronPDF, qui a une version allégée à partir de $749.
IronPDF propose une licence Unlimited pour seulement 2999 dollars. En revanche, PDFium.NET propose une licence organisationnelle pour un nombre illimité de développeurs pour 4320 $. En revanche, IronPDF propose une licence professionnelle à partir de 1499 $ qui peut être utilisée par 10 développeurs. Cette licence représente environ la moitié de la licence équivalente de PDFium.NET pour 10 développeurs, qui est de 2880 $.
Dans les exemples ci-dessus, vous avez vu qu'IronPDF crée et modifie des documents PDF en utilisant beaucoup moins de lignes de code que PDFium.NET. Cela permet d'alléger la charge de travail du développeur et de le rendre plus productif. IronPDF propose plusieurs méthodes pour convertir presque tous les formats en PDF. En revanche, PDFium.NET n'offre que quelques méthodes comme la conversion d'images et de textes en PDF.
Vous pouvez maintenant acheter toutes les bibliothèques de produits d'Iron Software pour le prix de deux d'entre eux. En outre, il existe une essai gratuit pour tester la fonctionnalité.
9 produits de l'API .NET pour vos documents de bureau