Table des matières
Installé via NuGet
PM> Install-Package Spire.PDF
Liens connexes
Alors que les documents PDF deviennent de plus en plus populaires dans les entreprises, garantir leur authenticité est devenu une préoccupation majeure. La signature de PDF avec une signature basée sur un certificat peut protéger le contenu et également permettre aux autres de savoir qui a signé ou approuvé le document. Dans cet article, vous apprendrez comment signer numériquement un PDF avec une signature invisible ou visible, et comment supprimer les signatures numériques d'un PDF à l'aide de Spire.PDF for .NET.
- Ajouter une signature numérique invisible au PDF
- Ajouter une signature numérique visible au PDF
- Supprimer les signatures numériques du PDF
Installer Spire.PDF for .NET
Pour commencer, vous devez ajouter les fichiers DLL inclus dans le package Spire.PDF for.NET comme références dans votre projet .NET. Les fichiers DLL peuvent être téléchargés à partir de ce lien ou installés via NuGet.
PM> Install-Package Spire.PDF
Ajouter une signature numérique invisible au PDF
Voici les étapes pour ajouter une signature numérique invisible au PDF à l'aide de Spire.PDF for .NET.
- Créez un objet PdfDocument.
- Chargez un exemple de fichier PDF à l'aide de la méthode PdfDocument.LoadFromFile().
- Chargez un fichier de certificat pfx lors de l'initialisation de l'objet PdfCertificate.
- Créez un objet PdfSignature basé sur le certificat.
- Définissez les autorisations du document via l'objet PdfSignature.
- Enregistrez le document dans un autre fichier PDF à l'aide de la méthode PdfDocument.SaveToFile().
- C#
- VB.NET
using Spire.Pdf; using Spire.Pdf.Security; namespace AddInvisibleSignature { class Program { static void Main(string[] args) { //Create a PdfDocument object PdfDocument doc = new PdfDocument(); //Load a sample PDF file doc.LoadFromFile("C:\\Users\\Administrator\\Desktop\\sample.pdf"); //Load the certificate PdfCertificate cert = new PdfCertificate("C:\\Users\\Administrator\\Desktop\\MyCertificate.pfx", "e-iceblue"); //Create a PdfSignature object PdfSignature signature = new PdfSignature(doc, doc.Pages[doc.Pages.Count - 1], cert, "MySignature"); //Set the document permission to forbid changes but allow form fill signature.DocumentPermissions = PdfCertificationFlags.ForbidChanges | PdfCertificationFlags.AllowFormFill; //Save to another PDF file doc.SaveToFile("InvisibleSignature.pdf"); doc.Close(); } } }
Ajouter une signature numérique visible au PDF
Voici les étapes pour ajouter une signature numérique visible au PDF à l'aide de Spire.PDF for .NET.
- Créez un objet PdfDocument.
- Chargez un exemple de fichier PDF à l'aide de la méthode PdfDocument.LoadFromFile().
- Chargez un fichier de certificat pfx lors de l'initialisation de l'objet PdfCertificate.
- Créez un objet PdfSignature et spécifiez sa position et sa taille sur le document.
- Définissez les détails de la signature, notamment la date, le nom, le lieu, le motif, l'image de la signature manuscrite et les autorisations du document.
- Enregistrez le document dans un autre fichier PDF à l'aide de la méthode PdfDocument.SaveToFile().
- C#
- VB.NET
using System; using System.Drawing; using Spire.Pdf; using Spire.Pdf.Security; using Spire.Pdf.Graphics; namespace AddVisibleSignature { class Program { static void Main(string[] args) { //Create a PdfDocument object PdfDocument doc = new PdfDocument(); //Load a sample PDF file doc.LoadFromFile("C:\\Users\\Administrator\\Desktop\\sample.pdf"); //Load the certificate PdfCertificate cert = new PdfCertificate("C:\\Users\\Administrator\\Desktop\\MyCertificate.pfx", "e-iceblue"); //Create a PdfSignature object and specify its position and size PdfSignature signature = new PdfSignature(doc, doc.Pages[doc.Pages.Count - 1], cert, "MySignature"); RectangleF rectangleF = new RectangleF(doc.Pages[0].ActualSize.Width - 260 - 54 , 200, 260, 110); signature.Bounds = rectangleF; signature.Certificated = true; //Set the graphics mode to ImageAndSignDetail signature.GraphicsMode = GraphicMode.SignImageAndSignDetail; //Set the signature content signature.NameLabel = "Signer:"; signature.Name = "Gary"; signature.ContactInfoLabel = "Phone:"; signature.ContactInfo = "0123456"; signature.DateLabel = "Date:"; signature.Date = DateTime.Now; signature.LocationInfoLabel = "Location:"; signature.LocationInfo = "USA"; signature.ReasonLabel = "Reason:"; signature.Reason = "I am the author"; signature.DistinguishedNameLabel = "DN:"; signature.DistinguishedName = signature.Certificate.IssuerName.Name; //Set the signature image source signature.SignImageSource = PdfImage.FromFile("C:\\Users\\Administrator\\Desktop\\handwrittingSignature.png"); //Set the signature font signature.SignDetailsFont = new PdfTrueTypeFont(new Font("Arial Unicode MS", 12f, FontStyle.Regular)); //Set the document permission to forbid changes but allow form fill signature.DocumentPermissions = PdfCertificationFlags.ForbidChanges | PdfCertificationFlags.AllowFormFill; //Save to file doc.SaveToFile("VisiableSignature.pdf"); doc.Close(); } } }
Supprimer les signatures numériques du PDF
Voici les étapes pour supprimer les signatures numériques d'un PDF à l'aide de Spire.PDF for .NET.
- Créez un objet PdfDocument.
- Obtenez des widgets de formulaire à partir du document via la propriété PdfDocument.Form.
- Parcourez les widgets et déterminez si un widget spécifique est un PdfSignatureFieldWidget.
- Supprimez le widget de signature à l'aide de la méthode PdfFieldCollection.RemoveAt().
- Enregistrez le document dans un autre fichier PDF à l'aide de la méthode PdfDocument.SaveToFile().
- C#
- VB.NET
using Spire.Pdf; using Spire.Pdf.Widget; namespace RemoveSignature { class Program { static void Main(string[] args) { //Create a PdfDocument object PdfDocument doc = new PdfDocument("C:\\Users\\Administrator\\Desktop\\VisiableSignature.pdf"); //Get form widgets from the document PdfFormWidget widgets = doc.Form as PdfFormWidget; //Loop through the widgets for (int i = 0; i < widgets.FieldsWidget.List.Count; i++) { //Get the specific widget PdfFieldWidget widget = widgets.FieldsWidget.List[i] as PdfFieldWidget; //Determine if the widget is a PdfSignatureFieldWidget if (widget is PdfSignatureFieldWidget) { //Remove the widget widgets.FieldsWidget.RemoveAt(i); } } //Save the document to another PDF file doc.SaveToFile("RemoveSignatures.pdf"); } } }
Demander une licence temporaire
Si vous souhaitez supprimer le message d'évaluation des documents générés ou vous débarrasser des limitations fonctionnelles, veuillez demander une licence d'essai de 30 jours pour toi.