Sommario
Installato tramite NuGet
PM> Install-Package Spire.PDF
Link correlati
Poiché i documenti PDF diventano sempre più popolari nel mondo degli affari, garantirne l'autenticità è diventata una preoccupazione fondamentale. Firmare i PDF con una firma basata su certificato può proteggere il contenuto e anche far sapere ad altri chi ha firmato o approvato il documento. In questo articolo imparerai come farlo firmare digitalmente i PDF con una firma invisibile o visibile e come rimuovere le firme digitali dai PDF utilizzando Spire.PDF for .NET.
- Aggiungi una firma digitale invisibile al PDF
- Aggiungi una firma digitale visibile al PDF
- Rimuovere le firme digitali dai PDF
Installa Spire.PDF for .NET
Per cominciare, devi aggiungere i file DLL inclusi nel pacchetto Spire.PDF for .NET come riferimenti nel tuo progetto .NET. I file DLL possono essere scaricati da questo link o installato tramite NuGet.
PM> Install-Package Spire.PDF
Aggiungi una firma digitale invisibile al PDF
Di seguito sono riportati i passaggi per aggiungere una firma digitale invisibile al PDF utilizzando Spire.PDF for .NET.
- Crea un oggetto PdfDocument.
- Carica un file PDF di esempio utilizzando il metodo PdfDocument.LoadFromFile().
- Carica un file di certificato pfx durante l'inizializzazione dell'oggetto PdfCertificate.
- Crea un oggetto PdfSignature basato sul certificato.
- Imposta i permessi del documento tramite l'oggetto PdfSignature.
- Salva il documento in un altro file PDF utilizzando il metodo 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(); } } }
Aggiungi una firma digitale visibile al PDF
Di seguito sono riportati i passaggi per aggiungere una firma digitale visibile al PDF utilizzando Spire.PDF for .NET.
- Crea un oggetto PdfDocument.
- Carica un file PDF di esempio utilizzando il metodo PdfDocument.LoadFromFile().
- Carica un file di certificato pfx durante l'inizializzazione dell'oggetto PdfCertificate.
- Crea un oggetto PdfSignature e specificane la posizione e le dimensioni sul documento.
- Imposta i dettagli della firma tra cui data, nome, posizione, motivo, immagine della firma scritta a mano e autorizzazioni del documento.
- Salva il documento in un altro file PDF utilizzando il metodo 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(); } } }
Rimuovere le firme digitali dai PDF
Di seguito sono riportati i passaggi per rimuovere le firme digitali dal PDF utilizzando Spire.PDF for .NET.
- Crea un oggetto PdfDocument.
- Ottieni i widget del modulo dal documento tramite la proprietà PdfDocument.Form.
- Passa in rassegna i widget e determina se un widget specifico è un PdfSignatureFieldWidget.
- Rimuovere il widget della firma utilizzando il metodo PdfFieldCollection.RemoveAt().
- Salva il documento in un altro file PDF utilizzando il metodo 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"); } } }
Richiedi una licenza temporanea
Se desideri rimuovere il messaggio di valutazione dai documenti generati o eliminare le limitazioni della funzione, per favore richiedere una licenza di prova di 30 giorni per te.