Test dans un environnement réel
Test en production sans filigrane.
Fonctionne partout où vous en avez besoin.
Lorsqu'il s'agit de gérer des documents PDF dans .NET, les développeurs disposent de diverses bibliothèques, chacune offrant des fonctionnalités et des capacités uniques. Parmi ceux-ci, IronPDF et PDFsharp se distinguent comme des options majeures, répondant à différents besoins et préférences.
Dans cet article, nous examinerons de plus près les différentes fonctionnalités que ces bibliothèques offrent, ainsi que leur support, tarification, documentation et compatibilité respectifs.
Une puissante bibliothèque PDF pour .NET, IronPDF permet aux développeurs de créer, modifier et extraire du contenu PDF facilement. Les utilisateurs peuvent utiliser IronPDF pour convertir divers formats, tels que HTML, ASPX, MVC et images, en documents PDF. IronPDF possède un certain nombre de fonctionnalités, telles que l'édition de texte, la manipulation d'images et la modification des métadonnées, le filigranage et le cryptage des fichiers PDF, entre autres. Il est connu pour avoir une interface facile à utiliser ainsi qu'un ensemble impressionnant de fonctionnalités qui facilitent le travail du développeur avec les documents PDF.
PDFsharp est une bibliothèque open-source basée sur .NET qui se concentre sur la génération dynamique de documents PDF. Ce produit est entièrement implémenté en C# et permet de dessiner du texte, des graphiques et des images. Il permet également des opérations de modification telles que la fusion ou la division de fichiers PDF existants. PDFsharp est idéal pour ceux qui recherchent une bibliothèque de base pour manipuler des fichiers PDF simples plutôt qu'un outil comportant de nombreuses fonctionnalités supplémentaires.
IronPDF et PDFsharp fonctionnent tous les deux dans l'environnement .NET. À partir de la version 6.1, PDFsharp prend en charge .NET Framework 4.7.2 ou supérieur, .NET Standard 2.0 et .NET 6 ou versions ultérieures, et peut fonctionner sur des plateformes compatibles .NET telles que Linux et macOS, ainsi que Windows.
IronPDF prend en charge la compatibilité avec les dernières versions de plateformes .NET, permettant aux développeurs de travailler dans des environnements d'application tels que Windows, Linux, Mac, Azure, Docker et AWS, assurant ainsi une compatibilité universelle avec de nombreux systèmes d'exploitation et environnements de développement.
Versions .NET :
(C#, VB.NET, F#)
.NET Core (8, 7, 6, 5 et 3.1+)
Versions .NET :
framework .NET (4.7.2+)
IronPDF offre une variété de fonctions pour travailler avec des fichiers PDF, telles que générer, modifier et extraire du contenu à partir de PDFs, convertir du HTML, ASPX, MVC et des images en formats PDF, et éditer du texte, des images et des métadonnées; appliquer un filigrane à vos pages PDF ou chiffrer le fichier PDF.
D'autre part, l'objectif de PDFsharp est de créer et de manipuler des documents PDF ; Il vous permet de dessiner des lignes de texte ou des paragraphes sur la page ou d'insérer des graphiques tels que des rectangles et des cercles sur les pages.
Dans divers lieux de travail et environnements, convertir HTML vers PDF est une tâche simple mais nécessaire ; la comparaison entre IronPDF et PDFsharp dans ce processus est illustrée dans les exemples de code ci-dessous.
IronPDF :
using IronPdf;
// Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
// Create a PDF from a HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
// Export to a file or Stream
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 a HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
// Export to a file or Stream
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 a HTML string using C#
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>")
' Export to a file or Stream
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")
PDFsharp :
PDFsharp, à lui seul, ne peut pas gérer la conversion de HTML en PDF; à la place, elle nécessite la bibliothèque HtmlRenderer.PdfSharp pour effectuer cette tâche. Ce moteur de rendu HTML peut gérer la conversion de HTML en PDF en utilisant du code de rendu statique.
using System.IO;
using PdfSharp.Pdf;
using TheArtOfDev.HtmlRenderer.PdfSharp;
static void Main(string[] args)
{
string html = @"<h1>Hello World</h1>";
PdfDocument pdf = PdfGenerator.GeneratePdf(html, PageSize.A4);
const string filename = "HtmlToPdfExample.pdf";
pdf.Save(filename);
}
using System.IO;
using PdfSharp.Pdf;
using TheArtOfDev.HtmlRenderer.PdfSharp;
static void Main(string[] args)
{
string html = @"<h1>Hello World</h1>";
PdfDocument pdf = PdfGenerator.GeneratePdf(html, PageSize.A4);
const string filename = "HtmlToPdfExample.pdf";
pdf.Save(filename);
}
Imports System.IO
Imports PdfSharp.Pdf
Imports TheArtOfDev.HtmlRenderer.PdfSharp
Shared Sub Main(ByVal args() As String)
Dim html As String = "<h1>Hello World</h1>"
Dim pdf As PdfDocument = PdfGenerator.GeneratePdf(html, PageSize.A4)
Const filename As String = "HtmlToPdfExample.pdf"
pdf.Save(filename)
End Sub
IronPDF offre une manière pratique et simple de convertir le code HTML, des extraits HTML ou des modèles HTML en format PDF, tout en permettant aux utilisateurs d'avoir un contrôle total. Les normes Web modernes sont bien prises en charge par IronPDF, qui peut créer des fichiers PDF fidèles à la page Web source.
D'autre part, la conversion HTML en PDF avec PDFsharp n'est pas actuellement prise en charge, de même que toute capacité à analyser les fichiers HTML ; Au lieu de cela, la bibliothèque HtmlRenderer.PdfSharp peut être utilisée avec PDFsharp afin de compléter cette tâche.
Parfois, les utilisateurs peuvent vouloir rédiger certaines parties de leurs fichiers PDF, surtout lorsqu'ils travaillent avec des informations privées ou sensibles.
IronPDF :
using IronPdf;
PdfDocument pdf = PdfDocument.FromFile("novel.pdf");
// Redact the 'are' phrase from all pages
pdf.RedactTextOnAllPages("are");
pdf.SaveAs("redacted.pdf");
using IronPdf;
PdfDocument pdf = PdfDocument.FromFile("novel.pdf");
// Redact the 'are' phrase from all pages
pdf.RedactTextOnAllPages("are");
pdf.SaveAs("redacted.pdf");
Imports IronPdf
Private pdf As PdfDocument = PdfDocument.FromFile("novel.pdf")
' Redact the 'are' phrase from all pages
pdf.RedactTextOnAllPages("are")
pdf.SaveAs("redacted.pdf")
PDFsharp :
PDFsharp n'offre actuellement aucune fonctionnalité intégrée pour expurger le contenu des PDF; toutefois, comme l'expurgation implique la suppression ou la dissimulation permanente des informations sensibles, vous pourriez tenter d'obtenir des résultats similaires en utilisant les outils de dessin graphique de PDFsharp pour dessiner manuellement sur le contenu que vous souhaitez expurger. Voici un exemple de comment cela pourrait être réalisé :
using System;
using PdfSharp.Pdf;
using PdfSharp.Drawing;
namespace PdfRedactionExample
{
class Program
{
static void Main(string[] args)
{
// Load an existing PDF document
PdfDocument document = PdfReader.Open("input.pdf", PdfDocumentOpenMode.Modify);
// Get the first page of the document
PdfPage page = document.Pages[0];
// Create a graphics object to write on the page
XGraphics gfx = XGraphics.FromPdfPage(page);
// Define the area to redact (for example, a rectangle covering text)
XRect redactRect = new XRect(100, 100, 200, 50); // Adjust coordinates and size as needed
// Fill the redaction area with a black rectangle
gfx.DrawRectangle(XBrushes.Black, redactRect);
// Save the modified document
document.Save("output.pdf");
// Optionally, close the document
document.Close();
}
}
}
using System;
using PdfSharp.Pdf;
using PdfSharp.Drawing;
namespace PdfRedactionExample
{
class Program
{
static void Main(string[] args)
{
// Load an existing PDF document
PdfDocument document = PdfReader.Open("input.pdf", PdfDocumentOpenMode.Modify);
// Get the first page of the document
PdfPage page = document.Pages[0];
// Create a graphics object to write on the page
XGraphics gfx = XGraphics.FromPdfPage(page);
// Define the area to redact (for example, a rectangle covering text)
XRect redactRect = new XRect(100, 100, 200, 50); // Adjust coordinates and size as needed
// Fill the redaction area with a black rectangle
gfx.DrawRectangle(XBrushes.Black, redactRect);
// Save the modified document
document.Save("output.pdf");
// Optionally, close the document
document.Close();
}
}
}
Imports System
Imports PdfSharp.Pdf
Imports PdfSharp.Drawing
Namespace PdfRedactionExample
Friend Class Program
Shared Sub Main(ByVal args() As String)
' Load an existing PDF document
Dim document As PdfDocument = PdfReader.Open("input.pdf", PdfDocumentOpenMode.Modify)
' Get the first page of the document
Dim page As PdfPage = document.Pages(0)
' Create a graphics object to write on the page
Dim gfx As XGraphics = XGraphics.FromPdfPage(page)
' Define the area to redact (for example, a rectangle covering text)
Dim redactRect As New XRect(100, 100, 200, 50) ' Adjust coordinates and size as needed
' Fill the redaction area with a black rectangle
gfx.DrawRectangle(XBrushes.Black, redactRect)
' Save the modified document
document.Save("output.pdf")
' Optionally, close the document
document.Close()
End Sub
End Class
End Namespace
Lorsqu'il s'agit de caviarder du contenu dans des fichiers PDF, IronPDF offre une méthode simple pour caviarder du texte directement depuis des documents PDF. Les utilisateurs peuvent facilement spécifier le texte à occulter sur toutes les pages, et son API intuitive et concise permet d'accomplir cette tâche rapidement et efficacement.
PDFsharp, en revanche, ne prend actuellement pas en charge les fonctionnalités de rédaction intégrées. Cependant, les utilisateurs peuvent tirer parti de ses capacités de dessin graphique pour superposer manuellement du contenu afin de procéder à la rédaction, bien que cette approche nécessite plus d'intervention manuelle et de personnalisation.
Si vous avez besoin de signer des documents PDF numériquement, cela peut être très chronophage. Une façon de gagner du temps est de le faire par programmation. Dans les exemples de code ci-dessous, nous comparerons le fonctionnement de la signature de documents entre IronPDF et PDFsharp.
IronPDF :
using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;
// 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
PdfDocument pdf = PdfDocument.FromFile("document.pdf");
pdf.Sign(sig);
pdf.SaveAs("signed.pdf");
using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;
// 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
PdfDocument pdf = PdfDocument.FromFile("document.pdf");
pdf.Sign(sig);
pdf.SaveAs("signed.pdf");
Imports IronPdf
Imports IronPdf.Signing
Imports System.Security.Cryptography.X509Certificates
' 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
Private pdf As PdfDocument = PdfDocument.FromFile("document.pdf")
pdf.Sign(sig)
pdf.SaveAs("signed.pdf")
PDFsharp :
PDFsharp ne dispose pas d'une prise en charge intégrée pour la signature numérique des fichiers PDF, mais s'appuie plutôt sur des bibliothèques externes telles qu'iTextSharp pour accomplir cette tâche.
Signer numériquement des documents PDF de manière programmée peut grandement simplifier les flux de travail. IronPDF prend en charge les signatures numériques, ce qui rend le processus simple et direct, nécessitant seulement quelques lignes de code pour accomplir la tâche. Cependant, PDFsharp n'est pas fourni avec des capacités de signature numérique intégrées, donc il faudrait utiliser des bibliothèques tierces telles que iTextSharp, ce qui complique encore l'implémentation.
Lorsqu'il s'agit de documents privés, de protection des droits d'auteur, de marque ou de toute autre tâche impliquant des dossiers sensibles; la capacité d'appliquer et de personnaliser filigranes sur les fichiers PDF peut être très utile. Dans cet article, nous comparons IronPDF et PDFsharp en ce qui concerne l'ajout de filigranes sur un document PDF.
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")
PDFsharp :
using PdfSharp.Pdf;
using PdfSharp.Drawing;
PdfDocument document = PdfReader.Open("Input.pdf", PdfDocumentOpenMode.Modify);
XGraphics gfx = XGraphics.FromPdfPage(document.Pages[0]);
XFont font = new XFont("Verdana", 40, XFontStyle.BoldItalic);
XBrush brush = new XSolidBrush(XColor.FromArgb(128, 255, 0, 0));
string watermarkText = "SAMPLE";
XSize textSize = gfx.MeasureString(watermarkText, font);
XPoint center = new XPoint((document.Pages[0].Width - textSize.Width) / 2, (document.Pages[0].Height - textSize.Height) / 2);
gfx.DrawString(watermarkText, font, brush, center, XStringFormats.Center);
// Save the document
document.Save("Watermarked.pdf");
using PdfSharp.Pdf;
using PdfSharp.Drawing;
PdfDocument document = PdfReader.Open("Input.pdf", PdfDocumentOpenMode.Modify);
XGraphics gfx = XGraphics.FromPdfPage(document.Pages[0]);
XFont font = new XFont("Verdana", 40, XFontStyle.BoldItalic);
XBrush brush = new XSolidBrush(XColor.FromArgb(128, 255, 0, 0));
string watermarkText = "SAMPLE";
XSize textSize = gfx.MeasureString(watermarkText, font);
XPoint center = new XPoint((document.Pages[0].Width - textSize.Width) / 2, (document.Pages[0].Height - textSize.Height) / 2);
gfx.DrawString(watermarkText, font, brush, center, XStringFormats.Center);
// Save the document
document.Save("Watermarked.pdf");
Imports PdfSharp.Pdf
Imports PdfSharp.Drawing
Private document As PdfDocument = PdfReader.Open("Input.pdf", PdfDocumentOpenMode.Modify)
Private gfx As XGraphics = XGraphics.FromPdfPage(document.Pages(0))
Private font As New XFont("Verdana", 40, XFontStyle.BoldItalic)
Private brush As XBrush = New XSolidBrush(XColor.FromArgb(128, 255, 0, 0))
Private watermarkText As String = "SAMPLE"
Private textSize As XSize = gfx.MeasureString(watermarkText, font)
Private center As New XPoint((document.Pages(0).Width - textSize.Width) \ 2, (document.Pages(0).Height - textSize.Height) \ 2)
gfx.DrawString(watermarkText, font, brush, center, XStringFormats.Center)
' Save the document
document.Save("Watermarked.pdf")
L'ajout de filigranes aux documents PDF est essentiel pour des tâches impliquant la confidentialité, la protection des droits d'auteur et le branding. IronPDF offre une API simple qui permet aux utilisateurs d'appliquer efficacement des filigranes personnalisés en utilisant HTML/CSS, offrant flexibilité et facilité de mise en œuvre tout en donnant aux utilisateurs un large contrôle sur le processus. D'autre part, PDFsharp nécessite une gestion plus manuelle, en utilisant des méthodes de dessin graphique et de texte pour superposer des filigranes sur les pages PDF.
La conversion de différents types de fichiers en PDF peut être cruciale pour la création de fichiers PDF. Pour cette instance, nous nous concentrerons sur Type de fichier DOCX et comparez comment IronPDF et PDFsharp fonctionnent pour accomplir cette tâche.
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")
PDFsharp :
Actuellement, PDFsharp ne prend pas en charge la conversion directe de DOCX au format de fichier PDF. Au lieu de cela, si les utilisateurs souhaitent effectuer cette tâche, ils devront utiliser des bibliothèques externes telles que DocX.
Lorsqu'il s'agit de la conversion de DOCX en PDF, IronPDF offre une approche simple et concise pour cette tâche, avec un support direct pour la conversion de DOCX en PDF via son DocxToPdfRenderer. Cela permet le rendu et l'enregistrement fluide du PDF résultant.
PDFsharp ne prend pas en charge nativement la conversion de DOCX en PDF; les utilisateurs doivent compter sur des bibliothèques externes comme DocX pour obtenir cette fonctionnalité.
Parfois, comme lors de l'application de filigranes, les pages PDF peuvent devoir être tamponné avec quelque chose dessus. Dans cette section, nous allons examiner les capacités de tamponnage d'IronPDF par rapport à PDFsharp sur un document PDF.
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")
PDFsharp :
using PdfSharp.Drawing;
using PdfSharp.Pdf;
using System.Drawing;
// Load an existing PDF document
PdfDocument document = PdfReader.Open("Input.pdf", PdfDocumentOpenMode.Modify);
// Iterate through each page in the document
foreach (PdfPage page in document.Pages)
{
// Get an XGraphics object for drawing on the page
XGraphics gfx = XGraphics.FromPdfPage(page);
// Define a font and brush for stamping text
XFont font = new XFont("Arial", 12);
XBrush brush = XBrushes.Red;
// Stamp text onto the page
gfx.DrawString("Confidential", font, brush, 50, 50);
// Stamp an image onto the page
XImage image = XImage.FromFile("stamp.png"); // Replace with your image path
gfx.DrawImage(image, 100, 100, image.PixelWidth / 2, image.PixelHeight / 2);
}
document.Save("StampedOutput.pdf");
using PdfSharp.Drawing;
using PdfSharp.Pdf;
using System.Drawing;
// Load an existing PDF document
PdfDocument document = PdfReader.Open("Input.pdf", PdfDocumentOpenMode.Modify);
// Iterate through each page in the document
foreach (PdfPage page in document.Pages)
{
// Get an XGraphics object for drawing on the page
XGraphics gfx = XGraphics.FromPdfPage(page);
// Define a font and brush for stamping text
XFont font = new XFont("Arial", 12);
XBrush brush = XBrushes.Red;
// Stamp text onto the page
gfx.DrawString("Confidential", font, brush, 50, 50);
// Stamp an image onto the page
XImage image = XImage.FromFile("stamp.png"); // Replace with your image path
gfx.DrawImage(image, 100, 100, image.PixelWidth / 2, image.PixelHeight / 2);
}
document.Save("StampedOutput.pdf");
Imports PdfSharp.Drawing
Imports PdfSharp.Pdf
Imports System.Drawing
' Load an existing PDF document
Private document As PdfDocument = PdfReader.Open("Input.pdf", PdfDocumentOpenMode.Modify)
' Iterate through each page in the document
For Each page As PdfPage In document.Pages
' Get an XGraphics object for drawing on the page
Dim gfx As XGraphics = XGraphics.FromPdfPage(page)
' Define a font and brush for stamping text
Dim font As New XFont("Arial", 12)
Dim brush As XBrush = XBrushes.Red
' Stamp text onto the page
gfx.DrawString("Confidential", font, brush, 50, 50)
' Stamp an image onto the page
Dim image As XImage = XImage.FromFile("stamp.png") ' Replace with your image path
'INSTANT VB WARNING: Instant VB cannot determine whether both operands of this division are integer types - if they are then you should use the VB integer division operator:
gfx.DrawImage(image, 100, 100, image.PixelWidth / 2, image.PixelHeight / 2)
Next page
document.Save("StampedOutput.pdf")
IronPDF permet aux utilisateurs d'ajouter du texte et des images aux documents PDF avec facilité, tout en gardant le processus simple et direct. Cela donne à l'utilisateur un contrôle total sur tous les aspects du processus, notamment pour ceux qui sont familiers avec HTML/CSS.
D'autre part, PDFsharp nécessite une manipulation manuelle plus poussée avec son objet XGraphics, où le texte et les images sont estampillés directement sur chaque page à l'aide de coordonnées spécifiques et de paramètres graphiques.
Que ce soit dans un bureau, une école ou une bibliothèque, chiffrement et déchiffrement Les documents PDF font partie de nombreux environnements de travail. Par conséquent, disposer d'un programme capable de réaliser cette fonction sans complications peut être essentiel. Cette section comparera comment IronPDF et PDFsharp gèrent les tâches de chiffrement PDF.
IronPDF :
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;
// Edit file security settings
// 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;
// Edit file security settings
// 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");
Imports IronPdf
Imports System
' Open an Encrypted File, alternatively create a new PDF from Html
Private pdf = PdfDocument.FromFile("encrypted.pdf", "password")
' Edit file metadata
pdf.MetaData.Author = "Satoshi Nakamoto"
pdf.MetaData.Keywords = "SEO, Friendly"
pdf.MetaData.ModifiedDate = DateTime.Now
' Edit file security settings
' 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")
PDFsharp :
PDFsharp, à lui seul, ne prend pas en charge le chiffrement PDF. Cependant, les utilisateurs peuvent installer la bibliothèque PdfSharp.Pdf.IO pour aider à accomplir cette tâche.
using PdfSharp.Pdf;
using PdfSharp.Pdf.IO;
using PdfSharp.Pdf.Security;
PdfDocument document = PdfReader.Open("Input.pdf", PdfDocumentOpenMode.Modify);
string userPassword = "userpassword";
string ownerPassword = "ownerpassword";
PdfSecuritySettings securitySettings = document.SecuritySettings;
securitySettings.DocumentSecurityLevel = PdfDocumentSecurityLevel.Encrypted128Bit;
securitySettings.UserPassword = userPassword;
securitySettings.OwnerPassword = ownerPassword;
securitySettings.PermitAccessibilityExtractContent = false;
securitySettings.PermitAnnotationsAndFieldsEdit = false;
securitySettings.PermitAssembleDocument = false;
securitySettings.PermitExtractContent = false;
securitySettings.PermitFormsFill = true;
securitySettings.PermitFullQualityPrint = true;
securitySettings.PermitModifyDocument = true;
securitySettings.PermitPrint = true;
document.Save("EncryptedOutput.pdf");
using PdfSharp.Pdf;
using PdfSharp.Pdf.IO;
using PdfSharp.Pdf.Security;
PdfDocument document = PdfReader.Open("Input.pdf", PdfDocumentOpenMode.Modify);
string userPassword = "userpassword";
string ownerPassword = "ownerpassword";
PdfSecuritySettings securitySettings = document.SecuritySettings;
securitySettings.DocumentSecurityLevel = PdfDocumentSecurityLevel.Encrypted128Bit;
securitySettings.UserPassword = userPassword;
securitySettings.OwnerPassword = ownerPassword;
securitySettings.PermitAccessibilityExtractContent = false;
securitySettings.PermitAnnotationsAndFieldsEdit = false;
securitySettings.PermitAssembleDocument = false;
securitySettings.PermitExtractContent = false;
securitySettings.PermitFormsFill = true;
securitySettings.PermitFullQualityPrint = true;
securitySettings.PermitModifyDocument = true;
securitySettings.PermitPrint = true;
document.Save("EncryptedOutput.pdf");
Imports PdfSharp.Pdf
Imports PdfSharp.Pdf.IO
Imports PdfSharp.Pdf.Security
Private document As PdfDocument = PdfReader.Open("Input.pdf", PdfDocumentOpenMode.Modify)
Private userPassword As String = "userpassword"
Private ownerPassword As String = "ownerpassword"
Private securitySettings As PdfSecuritySettings = document.SecuritySettings
securitySettings.DocumentSecurityLevel = PdfDocumentSecurityLevel.Encrypted128Bit
securitySettings.UserPassword = userPassword
securitySettings.OwnerPassword = ownerPassword
securitySettings.PermitAccessibilityExtractContent = False
securitySettings.PermitAnnotationsAndFieldsEdit = False
securitySettings.PermitAssembleDocument = False
securitySettings.PermitExtractContent = False
securitySettings.PermitFormsFill = True
securitySettings.PermitFullQualityPrint = True
securitySettings.PermitModifyDocument = True
securitySettings.PermitPrint = True
document.Save("EncryptedOutput.pdf")
IronPDF est un outil robuste avec des fonctionnalités de cryptage puissantes qui vous permet de chiffrer facilement les PDFs et de gérer les paramètres de sécurité tels que l'accès en lecture seule, la restriction du copier-coller et la permission d'impression. Vous pouvez également ajouter une protection par mot de passe aux fichiers cryptés et personnaliser les métadonnées ; En bref, IronPDF est une solution tout-en-un pour la gestion sécurisée des PDF.
PDFsharp n'a pas de support natif pour le cryptage, mais il peut utiliser des bibliothèques tierces telles que PdfSharp.Pdf.IO pour accomplir cette fonction. Vous pouvez définir différents niveaux de cryptage, créer des mots de passe pour les utilisateurs ou les propriétaires et définir des autorisations pour les droits d'impression ou l'extraction de contenu, entre autres opérations sur le document.
IronPDF a différents niveaux et fonctionnalités supplémentaires pour l'achat d'une licence. Les développeurs peuvent également acheter IronSuite ce qui vous donne accès à tous les produits d'IronSoftware au prix de deux. Si vous n'êtes pas prêt à acheter une licence, IronPDF propose un essai gratuit qui dure 30 jours.
IronSuite: Pour 1 498 $, vous avez accès à tous les produits Iron Software, y compris IronPDF, IronOCR, IronWord, IronXL, IronBarcode, IronQR, IronZIP, IronPrint, et IronWebScraper.
PDFsharp est une bibliothèque open-source et est gratuite à utiliser. Cependant, cela se fait au détriment de fonctionnalités moins avancées et performantes que celles offertes par des concurrents tels que IronPDF.
IronPDF offre une documentation complète et des options de support, garantissant que les développeurs peuvent facilement intégrer et utiliser ses fonctionnalités.
Support : Aucune option de support commercial, mais il dispose d'un dépôt pour signaler les problèmes
Pour plus de détails sur la documentation et le support d'IronPDF, visitez Documentation IronPDF et le Chaîne YouTube IronSoftware.
En conclusion, lors du choix entre IronPDF et PDFsharp pour la gestion des documents PDF dans les environnements .NET, les développeurs doivent prendre en compte leurs besoins spécifiques et les exigences de leur projet. IronPDF excelle avec son ensemble de fonctionnalités étendues qui comprend la conversion HTML en PDF, des capacités de chiffrement et un support robuste pour diverses plateformes .NET et environnements de développement. Il propose une documentation complète, plusieurs canaux de support et des options de licence flexibles, bien qu'à un coût, et peut être facilement installé dans votre projet à l'aide du gestionnaire de packages NuGet.
D'autre part, PDFsharp, en tant que bibliothèque open-source, est gratuite mais manque de fonctionnalités avancées telles que le support natif de la conversion HTML en PDF et le chiffrement des PDF. Il peut nécessiter des bibliothèques supplémentaires et ne propose pas d'options de support commercial, ce qui le rend principalement adapté aux tâches de manipulation de PDF de base.
9 produits de l'API .NET pour vos documents de bureau