Índice
Instalado via NuGet
PM> Install-Package Spire.PDF
Links Relacionados
À medida que os documentos PDF se tornam cada vez mais populares nos negócios, garantir a sua autenticidade tornou-se uma preocupação fundamental. Assinar PDFs com uma assinatura baseada em certificado pode proteger o conteúdo e também permitir que outras pessoas saibam quem assinou ou aprovou o documento. Neste artigo você aprenderá como assinar digitalmente PDF com uma assinatura invisível ou visível e como remover assinaturas digitais de PDF usando Spire.PDF for .NET.
- Adicione uma assinatura digital invisível ao PDF
- Adicione uma assinatura digital visível ao PDF
- Remover assinaturas digitais de PDF
Instale o Spire.PDF for .NET
Para começar, você precisa adicionar os arquivos DLL incluídos no pacote Spire.PDF for.NET como referências em seu projeto .NET. Os arquivos DLLs podem ser baixados deste link ou instalados via NuGet.
PM> Install-Package Spire.PDF
Adicione uma assinatura digital invisível ao PDF
A seguir estão as etapas para adicionar uma assinatura digital invisível ao PDF usando Spire.PDF for .NET.
- Crie um objeto PdfDocument.
- Carregue um arquivo PDF de amostra usando o método PdfDocument.LoadFromFile().
- Carregue um arquivo de certificado pfx ao inicializar o objeto PdfCertificate.
- Crie um objeto PdfSignature com base no certificado.
- Defina as permissões do documento através do objeto PdfSignature.
- Salve o documento em outro arquivo PDF usando o método 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(); } } }
Adicione uma assinatura digital visível ao PDF
A seguir estão as etapas para adicionar uma assinatura digital visível ao PDF usando Spire.PDF for .NET.
- Crie um objeto PdfDocument.
- Carregue um arquivo PDF de amostra usando o método PdfDocument.LoadFromFile().
- Carregue um arquivo de certificado pfx ao inicializar o objeto PdfCertificate.
- Crie um objeto PdfSignature e especifique sua posição e tamanho no documento.
- Defina os detalhes da assinatura, incluindo data, nome, local, motivo, imagem da assinatura manuscrita e permissões do documento.
- Salve o documento em outro arquivo PDF usando o método 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(); } } }
Remover assinaturas digitais de PDF
A seguir estão as etapas para remover assinaturas digitais de PDF usando Spire.PDF for .NET.
- Crie um objeto PdfDocument.
- Obtenha widgets de formulário do documento por meio da propriedade PdfDocument.Form.
- Percorra os widgets e determine se um widget específico é um PdfSignatureFieldWidget.
- Remova o widget de assinatura usando o método PdfFieldCollection.RemoveAt().
- Salve o documento em outro arquivo PDF usando o método 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"); } } }
Solicite uma licença temporária
Se desejar remover a mensagem de avaliação dos documentos gerados ou se livrar das limitações de função, por favor solicite uma licença de teste de 30 dias para você mesmo.