Índice
Instalado via NuGet
PM> Install-Package Spire.PDF
Links Relacionados
A assinatura digital garante que o documento assinado não pode ser alterado por ninguém que não seja o seu autor. Adicionar assinaturas é a forma mais comum de garantir a autenticidade do conteúdo do documento. Uma assinatura digital visual em um documento PDF pode mostrar texto ou imagem (por exemplo, assinatura manuscrita). Este artigo apresenta como assinar digitalmente PDFs usando o Spire.PDF for .NET a partir dos três aspectos a seguir.
- Assinar digitalmente PDF com texto
- Assinar PDF digitalmente com uma imagem
- Assine PDF digitalmente com texto e uma imagem
Instalar 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 DLL podem ser baixados deste link ou instalados via NuGet.
PM> Install-Package Spire.PDF
Assinar digitalmente PDF com texto
A seguir estão as etapas para adicionar uma assinatura de texto simples a um documento PDF.
- Crie um objeto PdfDocument e 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, especificando sua posição e tamanho no documento.
- Defina o modo gráfico de assinatura como SignDetail, que mostrará os detalhes da assinatura em texto simples.
- Defina os detalhes da assinatura, incluindo nome, informações de contato, motivo, data etc. por meio das propriedades no objeto PdfSignature.
- Defina as permissões do documento certificado como ForbidChanges e AllowFormFill.
- Salve o documento em outro arquivo usando o método PdfDocument.SaveToFile().
- C#
- VB.NET
using Spire.Pdf; using Spire.Pdf.Security; using System; using System.Drawing; using Spire.Pdf.Graphics; namespace AddTextSignature { 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 - 340, 150, 290, 100); signature.Bounds = rectangleF; signature.Certificated = true; //Set the graphics mode to sign detail signature.GraphicsMode = GraphicMode.SignDetail; //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 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("TextSignature.pdf"); doc.Close(); } } }
Assinar PDF digitalmente com uma imagem
A seguir estão as etapas para adicionar uma assinatura de imagem a um documento PDF.
- Crie um objeto PdfDocument e 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, especificando sua posição e tamanho no documento.
- Defina o modo gráfico de assinatura como SignImageOnly, que mostrará apenas a imagem da assinatura.
- Defina a imagem da assinatura por meio da propriedade PdfSignature.SignImageSource.
- Defina as permissões do documento certificado como ForbidChanges e AllowFormFill.
- Salve o documento em outro arquivo usando o método PdfDocument.SaveToFile().
- C#
- VB.NET
using Spire.Pdf; using Spire.Pdf.Graphics; using Spire.Pdf.Security; using System.Drawing; namespace AddImageSignature { 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 - 200, 150, 130, 130); signature.Bounds = rectangleF; signature.Certificated = true; //Set the graphics mode to image only signature.GraphicsMode = GraphicMode.SignImageOnly; //Set the sign image source signature.SignImageSource = PdfImage.FromFile("C:\\Users\\Administrator\\Desktop\\verified.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("ImageSignature.pdf"); doc.Close(); } } }
Assine PDF digitalmente com texto e uma imagem
A seguir estão as etapas para assinar digitalmente um documento PDF com texto e uma imagem.
- Crie um objeto PdfDocument e 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, especificando sua posição e tamanho no documento.
- Defina o modo gráfico de assinatura como SignImageAndSignDetail, que mostrará a imagem e os detalhes da assinatura.
- Defina a imagem da assinatura por meio da propriedade PdfSignature.SignImageSource e defina os detalhes da assinatura, incluindo nome, informações de contato, motivo, data etc. por meio de outras propriedades no objeto PdfSignature.
- Defina as permissões do documento certificado como ForbidChanges e AllowFormFill.
- Salve o documento em outro arquivo usando o método PdfDocument.SaveToFile().
- C#
- VB.NET
using Spire.Pdf; using Spire.Pdf.Security; using System; using System.Drawing; using Spire.Pdf.Graphics; namespace AddTextAndImageSignature { 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 - 320, 150, 260, 110); signature.Bounds = rectangleF; signature.Certificated = true; //Set the graphics mode to image and sign detail 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\\handSignature.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("TextAndImageSignature.pdf"); doc.Close(); } } }
Solicitar uma licença temporária
Se você deseja 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 avaliação de 30 dias para você mesmo.