Test dans un environnement réel
Test en production sans filigrane.
Fonctionne partout où vous en avez besoin.
Choisir la bibliothèque PDF qui répond le mieux à vos besoins peut s'avérer une tâche ardue compte tenu du nombre croissant d'outils disponibles sur internet pour travailler avec des PDF(Format de document portable). Aujourd'hui, nous allons donc vous aider en examinant de plus près deux outils PDF différents,IronPDFet QuestPDF.
IronPDFest une bibliothèque .NET complète connue pour sa polyvalence dans la création, l'édition et le traitement des documents PDF. Avec une large gamme de fonctionnalités, y compris la conversion HTML en PDF, la sécurité des documents, les formulaires interactifs, et bien plus encore, IronPDF sera un ajout inestimable à la boîte à outils de votre développeur.
QuestPDF est une bibliothèque open-source .NET axée sur la fourniture d'une approche facile à utiliser, basée uniquement sur le code, pour la génération de PDF. QuestPDF est idéal si vous préférez un flux de travail simple, rationalisé et centré sur le code, sans avoir besoin de langages de script ou de formats propriétaires.
IronPDF prend en charge une large gamme de plateformes, garantissant ainsi que vous pouvez travailler dans votre environnement préféré. Voici un aperçu de sa compatibilité :
Versions .NET :
*(C#, VB.NET, F#)
.NET Core(8, 7, 6, 5 et 3.1+)
QuestPDF offre une forte compatibilité multiplateforme, ce qui signifie que, quel que soit le système sur lequel vous travaillez, vous pourrez très probablement intégrer QuestPDF dans votre environnement de travail.
Versions .NET :
.NET Core(3.1+)
IronPDF et QuestPDF offrent des ensembles de fonctionnalités distincts adaptés à différents besoins des utilisateurs, donc choisir la bibliothèque qui vous conviendra le mieux dépend de ce que vous prévoyez de faire avec les PDF sur lesquels vous travaillez. Voici une comparaison de leurs fonctionnalités principales :
Fonctionnalités d'édition de PDF: Avec IronPDF, vous pouvez éditer des fichiers PDF en toute simplicité. IronPDF offre des fonctions d'édition telles que l'ajout d'en-têtes et de pieds de page, l'estampage de texte et d'images sur les pages du PDF, l'ajout de filigranes personnalisés au PDF, et le travail avec des formulaires PDF, ainsi que la division ou la fusion de fichiers PDF.
Pour une liste plus détaillée des fonctionnalités, visitez le sitePage des caractéristiques d'IronPDF.
Avant de choisir quelle bibliothèque PDF vous convient le mieux, examinons quelques cas d'utilisation courants pour différents usages que vous pourriez avoir pour une bibliothèque PDF, en comparant comment IronPDF et QuestPDF gèrent ces tâches.
Conversion de HTML en PDF avec IronPDF (en anglais):
using IronPdf;
// Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
// Create a PDF from an HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
pdf.SaveAs("output.pdf");
// Advanced Example with HTML Assets
// Load external html assets: images, CSS and JavaScript.
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
myAdvancedPdf.SaveAs("html-with-assets.pdf");
using IronPdf;
// Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
// Create a PDF from an HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
pdf.SaveAs("output.pdf");
// Advanced Example with HTML Assets
// Load external html assets: images, CSS and JavaScript.
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
myAdvancedPdf.SaveAs("html-with-assets.pdf");
Imports IronPdf
' Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = True
' Instantiate Renderer
Dim renderer = New ChromePdfRenderer()
' Create a PDF from an HTML string using C#
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>")
pdf.SaveAs("output.pdf")
' Advanced Example with HTML Assets
' Load external html assets: images, CSS and JavaScript.
Dim myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", "C:\site\assets\")
myAdvancedPdf.SaveAs("html-with-assets.pdf")
QuestPDF:
QuestPDF ne prend pas en charge nativement la conversion de HTML en PDF, car il est plutôt conçu pour créer des PDF de manière programmatique, plutôt que de convertir d'autres fichiers au format PDF.
Pour la conversion de contenu HTML en document PDF,L'outil HTML-to-PDF d'IronPDF il est recommandé d'opter pour la version anglaise, qui offre une solution simple et efficace.
Cryptage de PDF avec IronPDF (en anglais):
using IronPdf;
using System;
//Open an Encrypted File, alternatively create a new PDF from Html
var pdf = PdfDocument.FromFile("encrypted.pdf", "password");
//Edit file metadata
pdf.MetaData.Author = "Satoshi Nakamoto";
pdf.MetaData.Keywords = "SEO, Friendly";
pdf.MetaData.ModifiedDate = DateTime.Now;
//The following code makes a PDF read-only and will disallow copy & paste and printing
pdf.SecuritySettings.RemovePasswordsAndEncryption();
pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key");
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserFormData = false;
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;
// change or set the document encryption password
pdf.Password = "my-password";
pdf.SaveAs("secured.pdf");
using IronPdf;
using System;
//Open an Encrypted File, alternatively create a new PDF from Html
var pdf = PdfDocument.FromFile("encrypted.pdf", "password");
//Edit file metadata
pdf.MetaData.Author = "Satoshi Nakamoto";
pdf.MetaData.Keywords = "SEO, Friendly";
pdf.MetaData.ModifiedDate = DateTime.Now;
//The following code makes a PDF read-only and will disallow copy & paste and printing
pdf.SecuritySettings.RemovePasswordsAndEncryption();
pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key");
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserFormData = false;
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;
// change or set the document encryption password
pdf.Password = "my-password";
pdf.SaveAs("secured.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
QuestPDF:
Sans support intégré pour le cryptage des PDF, les utilisateurs de QuestPDF devront se tourner vers des bibliothèques externes si le cryptage est nécessaire. Cependant, QuestPDF peut modifier les métadonnées du PDF.
Si le cryptage des documents ou l'ajustement des paramètres de sécurité sont des opérations de routine, IronPDF, avec son outil de cryptage intuitif, est préféré à des outils comme QuestPDF qui ne disposent pas de fonctionnalités étendues sans bibliothèques supplémentaires.
Redaction de contenu avec IronPDF (en anglais):
using IronPdf;
PdfDocument pdf = PdfDocument.FromFile("novel.pdf");
// Redact 'are' phrase from all pages
pdf.RedactTextOnAllPages("are");
pdf.SaveAs("redacted.pdf");
using IronPdf;
PdfDocument pdf = PdfDocument.FromFile("novel.pdf");
// Redact 'are' phrase from all pages
pdf.RedactTextOnAllPages("are");
pdf.SaveAs("redacted.pdf");
Imports IronPdf
Private pdf As PdfDocument = PdfDocument.FromFile("novel.pdf")
' Redact 'are' phrase from all pages
pdf.RedactTextOnAllPages("are")
pdf.SaveAs("redacted.pdf")
QuestPDF:
QuestPDF ne prend pas en charge directement l'occultation, donc si vous souhaitez occulter du contenu en utilisant QuestPDF, vous devrez utiliser une bibliothèque supplémentaire telle que iTextSharp.
Avec IronPDF, la rédaction de contenu est rendue simple et efficace, tandis que QuestPDF nécessite des bibliothèques complémentaires pour les tâches de rédaction.
Signature numérique avec IronPDF:
using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>foo</h1>");
// Create X509Certificate2 object with X509KeyStorageFlags set to Exportable
X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable);
// Create PdfSignature object
var sig = new PdfSignature(cert);
// Sign PDF document
pdf.Sign(sig);
pdf.SaveAs("signed.pdf");
using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>foo</h1>");
// Create X509Certificate2 object with X509KeyStorageFlags set to Exportable
X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable);
// Create PdfSignature object
var sig = new PdfSignature(cert);
// Sign PDF document
pdf.Sign(sig);
pdf.SaveAs("signed.pdf");
Imports IronPdf
Imports IronPdf.Signing
Imports System.Security.Cryptography.X509Certificates
Private renderer As New ChromePdfRenderer()
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>foo</h1>")
' Create X509Certificate2 object with X509KeyStorageFlags set to Exportable
Private cert As New X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable)
' Create PdfSignature object
Private sig = New PdfSignature(cert)
' Sign PDF document
pdf.Sign(sig)
pdf.SaveAs("signed.pdf")
QuestPDF:
QuestPDF ne peut pas être utilisé pour signer numériquement les PDF. Au lieu de cela, vous pourriez créer un PDF avec QuestPDF, puis utiliser une bibliothèque externe pour signer numériquement ce PDF.
Pour des signatures numériques simplifiées,Fonctionnalité de signature d'IronPDF questPDF offre un contrôle total et une grande facilité d'utilisation, contrairement à QuestPDF.
Watermark Application with IronPDF (Application de filigrane avec IronPDF):
using IronPdf;
// Stamps a Watermark onto a new or existing PDF
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf");
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center);
pdf.SaveAs(@"C:\Path\To\Watermarked.pdf");
using IronPdf;
// Stamps a Watermark onto a new or existing PDF
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf");
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center);
pdf.SaveAs(@"C:\Path\To\Watermarked.pdf");
Imports IronPdf
' Stamps a Watermark onto a new or existing PDF
Private renderer = New ChromePdfRenderer()
Private pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf")
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center)
pdf.SaveAs("C:\Path\To\Watermarked.pdf")
QuestPDF:
QuestPDF ne peut pas être utilisé pour ajouter des filigranes à vos fichiers PDF, en raison de la nature simpliste de cette bibliothèque.
Exploiter les capacités HTML/CSS d'IronPDF pour les filigranes personnalisés, en contraste avec l'absence de prise en charge native des filigranes par QuestPDF.
Emploi de texte et d'image IronPDF:
using IronPdf;
using IronPdf.Editing;
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>");
// Create text stamper
TextStamper textStamper = new TextStamper()
{
Text = "Text Stamper!",
FontFamily = "Bungee Spice",
UseGoogleFont = true,
FontSize = 30,
IsBold = true,
IsItalic = true,
VerticalAlignment = VerticalAlignment.Top,
};
// Stamp the text stamper
pdf.ApplyStamp(textStamper);
pdf.SaveAs("stampText.pdf");
// Create image stamper
ImageStamper imageStamper = new ImageStamper(new Uri("https://ironpdf.com/img/svgs/iron-pdf-logo.svg"))
{
VerticalAlignment = VerticalAlignment.Top,
};
// Stamp the image stamper
pdf.ApplyStamp(imageStamper, 0);
pdf.SaveAs("stampImage.pdf");
using IronPdf;
using IronPdf.Editing;
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>");
// Create text stamper
TextStamper textStamper = new TextStamper()
{
Text = "Text Stamper!",
FontFamily = "Bungee Spice",
UseGoogleFont = true,
FontSize = 30,
IsBold = true,
IsItalic = true,
VerticalAlignment = VerticalAlignment.Top,
};
// Stamp the text stamper
pdf.ApplyStamp(textStamper);
pdf.SaveAs("stampText.pdf");
// Create image stamper
ImageStamper imageStamper = new ImageStamper(new Uri("https://ironpdf.com/img/svgs/iron-pdf-logo.svg"))
{
VerticalAlignment = VerticalAlignment.Top,
};
// Stamp the image stamper
pdf.ApplyStamp(imageStamper, 0);
pdf.SaveAs("stampImage.pdf");
Imports IronPdf
Imports IronPdf.Editing
Private renderer As New ChromePdfRenderer()
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>")
' Create text stamper
Private textStamper As New TextStamper() With {
.Text = "Text Stamper!",
.FontFamily = "Bungee Spice",
.UseGoogleFont = True,
.FontSize = 30,
.IsBold = True,
.IsItalic = True,
.VerticalAlignment = VerticalAlignment.Top
}
' Stamp the text stamper
pdf.ApplyStamp(textStamper)
pdf.SaveAs("stampText.pdf")
' Create image stamper
Dim imageStamper As New ImageStamper(New Uri("https://ironpdf.com/img/svgs/iron-pdf-logo.svg")) With {.VerticalAlignment = VerticalAlignment.Top}
' Stamp the image stamper
pdf.ApplyStamp(imageStamper, 0)
pdf.SaveAs("stampImage.pdf")
QuestPDF:
using QuestPDF.Fluent;
using QuestPDF.Infrastructure;
using QuestPDF.Helpers;
Document.Create(container =>
{
container.Page(page =>
{
page.Size(PageSizes.A4);
page.Margin(2, Unit.Centimetre);
page.PageColor(Colors.White);
page.DefaultTextStyle(x => x.FontSize(12));
// Adding Header and Footer for context
page.Header()
.Text("Header Text")
.FontSize(20)
.Bold()
.AlignCenter();
page.Footer()
.Text("Footer Text")
.FontSize(12)
.AlignCenter();
// Adding main content and stamps
page.Content()
.Canvas(canvas =>
{
// Main content
canvas.DrawText("This is the main content of the page.", x =>
{
x.Translate(50, 50);
x.FontSize(12);
});
// Stamped text
canvas.DrawText("Stamped Text", x =>
{
x.Translate(200, 200); // Position the text
x.FontSize(30);
x.Bold();
x.FontColor(Colors.Red);
});
// Stamped image
canvas.DrawImage("path/to/image.png", x =>
{
x.Translate(200, 300); // Position the image
x.Width(100); // Set the width of the image
});
});
});
}).GeneratePdf("output.pdf");
using QuestPDF.Fluent;
using QuestPDF.Infrastructure;
using QuestPDF.Helpers;
Document.Create(container =>
{
container.Page(page =>
{
page.Size(PageSizes.A4);
page.Margin(2, Unit.Centimetre);
page.PageColor(Colors.White);
page.DefaultTextStyle(x => x.FontSize(12));
// Adding Header and Footer for context
page.Header()
.Text("Header Text")
.FontSize(20)
.Bold()
.AlignCenter();
page.Footer()
.Text("Footer Text")
.FontSize(12)
.AlignCenter();
// Adding main content and stamps
page.Content()
.Canvas(canvas =>
{
// Main content
canvas.DrawText("This is the main content of the page.", x =>
{
x.Translate(50, 50);
x.FontSize(12);
});
// Stamped text
canvas.DrawText("Stamped Text", x =>
{
x.Translate(200, 200); // Position the text
x.FontSize(30);
x.Bold();
x.FontColor(Colors.Red);
});
// Stamped image
canvas.DrawImage("path/to/image.png", x =>
{
x.Translate(200, 300); // Position the image
x.Width(100); // Set the width of the image
});
});
});
}).GeneratePdf("output.pdf");
Imports QuestPDF.Fluent
Imports QuestPDF.Infrastructure
Imports QuestPDF.Helpers
Document.Create(Sub(container)
container.Page(Sub(page)
page.Size(PageSizes.A4)
page.Margin(2, Unit.Centimetre)
page.PageColor(Colors.White)
page.DefaultTextStyle(Function(x) x.FontSize(12))
' Adding Header and Footer for context
page.Header().Text("Header Text").FontSize(20).Bold().AlignCenter()
page.Footer().Text("Footer Text").FontSize(12).AlignCenter()
' Adding main content and stamps
page.Content().Canvas(Sub(canvas)
' Main content
canvas.DrawText("This is the main content of the page.", Sub(x)
x.Translate(50, 50)
x.FontSize(12)
End Sub)
' Stamped text
canvas.DrawText("Stamped Text", Sub(x)
x.Translate(200, 200) ' Position the text
x.FontSize(30)
x.Bold()
x.FontColor(Colors.Red)
End Sub)
' Stamped image
canvas.DrawImage("path/to/image.png", Sub(x)
x.Translate(200, 300) ' Position the image
x.Width(100) ' Set the width of the image
End Sub)
End Sub)
End Sub)
End Sub).GeneratePdf("output.pdf")
IronPDF et QuestPDF prennent tous deux en charge l'estampillage de texte et d'image, mais la méthode concise d'IronPDF est plus directe comparée à l'approche longue de QuestPDF.
Conversion de DOCX en PDF avec IronPDF:
using IronPdf;
// Instantiate Renderer
DocxToPdfRenderer renderer = new DocxToPdfRenderer();
// Render from DOCX file
PdfDocument pdf = renderer.RenderDocxAsPdf("Modern-chronological-resume.docx");
// Save the PDF
pdf.SaveAs("pdfFromDocx.pdf");
using IronPdf;
// Instantiate Renderer
DocxToPdfRenderer renderer = new DocxToPdfRenderer();
// Render from DOCX file
PdfDocument pdf = renderer.RenderDocxAsPdf("Modern-chronological-resume.docx");
// Save the PDF
pdf.SaveAs("pdfFromDocx.pdf");
Imports IronPdf
' Instantiate Renderer
Private renderer As New DocxToPdfRenderer()
' Render from DOCX file
Private pdf As PdfDocument = renderer.RenderDocxAsPdf("Modern-chronological-resume.docx")
' Save the PDF
pdf.SaveAs("pdfFromDocx.pdf")
QuestPDF:
QuestPDF ne permet pas la conversion directe de DOCX en PDF. Pour convertir un fichier DOCX en PDF avec QuestPDF, des bibliothèques supplémentaires comme Aspose.Words ou Syncfusion sont nécessaires.
Optez pour IronPDF, qui intègre la conversion DOCX, plutôt que pour QuestPDF, qui ne dispose pas de cette fonctionnalité en natif.
VoirOptions de licence d'IronPDF la traduction doit être réalisée en anglais et en français pour les différents niveaux et les fonctionnalités supplémentaires. Les développeurs peuvent également acheterAccès à IronSuitel'offre comprend tous les produits IronSoftware pour le prix de deux. IronPDF fournit également un service deessai gratuit pour 30 jours.
IronSuite: 1 498 $ pour l'accès à tous les produits Iron Software, notamment IronPDF, IronOCR, IronWord, IronXL, IronBarcode, IronQR, IronZIP, IronPrint et IronWebScraper.
IronPDF excelle dans la fourniture d'une documentation et d'un support étendus :
Mises à jour régulières: Mises à jour mensuelles du produit pour garantir les dernières fonctionnalités et les correctifs de sécurité.
Pour plus d'informations, consultezDocumentation d'IronPDF et visitez le siteChaîne YouTube IronSoftware.
Vidéos YouTube: QuestPDF est de plus en plus présent sur YouTube et publie des vidéos pour aider les développeurs à apprendre à utiliser les différents aspects de la bibliothèque.
QuestPDF repose sur les contributions de la communauté pour la documentation et le support, ce qui pourrait ne pas être aussi vaste ou structuré que les offres de IronPDF.
IronPDF et QuestPDF offrent tous deux des outils précieux pour la génération de PDF en .NET, répondant à différents besoins de développement. Le choix de la meilleure solution dépend de vos besoins et de votre budget. QuestPDF, étant open-source et simple à utiliser, convient aux développeurs recherchant une solution légère centrée sur le code. Si vous n'avez pas besoin de toutes les fonctionnalités supplémentaires proposées par IronPDF et que vous souhaitez simplement disposer d'une bibliothèque PDF simple et gratuite, QuestPDF est peut-être ce qu'il vous faut.
IronPDF se distingue par son ensemble de fonctionnalités complet, sa documentation exhaustive et son support robuste, en faisant un choix idéal pour les applications de niveau entreprise. Avec IronPDF, aucune tâche liée au PDF n'est trop importante, et il y a moins de risques de devoir installer des bibliothèques supplémentaires pour traiter des tâches PDF complexes.
IronPDF se distingue par son ensemble de fonctionnalités complet, sa documentation exhaustive et son support robuste, en faisant un choix idéal pour les applications de niveau entreprise. Avec IronPDF dans la boîte à outils de votre développeur, aucune tâche liée aux PDF n'est trop importante et il y a moins de chances de devoir installer des bibliothèques supplémentaires pour gérer des tâches PDF plus complexes.
Vous pouvez essayer le essai gratuit de 30 jours pour découvrir leurs fonctionnalités disponibles.
9 produits de l'API .NET pour vos documents de bureau