Оглавление
Установлено через NuGet
PM> Install-Package Spire.PDF
Ссылки по теме
Цифровая подпись гарантирует, что подписанный документ не может быть изменен кем-либо, кроме его автора. Добавление подписей является наиболее распространенным способом обеспечения подлинности содержимого документа. Визуальная цифровая подпись в документе PDF может отображать текст или изображение (например, рукописная подпись). В этой статье рассказывается, как цифровая подпись PDF-файлов использование Spire.PDF for .NET из следующих трех аспектов.
- Цифровая подпись PDF с текстом
- Цифровая подпись PDF с изображением
- Цифровая подпись PDF с текстом и изображением
Установите Spire.PDF for .NET
Для начала вам нужно добавить файлы DLL, включенные в пакет Spire.PDF for .NET, в качестве ссылок в ваш проект .NET. Файлы DLL можно загрузить по этой ссылке или установить через NuGet.
PM> Install-Package Spire.PDF
Цифровая подпись PDF с текстом
Ниже приведены шаги по добавлению простой текстовой подписи в документ PDF.
- Создайте объект PdfDocument и загрузите образец PDF-файла с помощью метода PdfDocument.LoadFromFile().
- Загрузите файл сертификата .pfx при инициализации объекта PdfCertificate.
- Создайте объект PdfSignature, указав его положение и размер в документе.
- Установите для графического режима подписи значение SignDetail, при котором сведения о подписи будут отображаться в виде простого текста.
- Задайте сведения о подписи, включая имя, контактную информацию, причину, дату и т. д., в свойствах объекта PdfSignature.
- Установите разрешения сертифицированного документа на ForbidChanges и AllowFormFill.
- Сохраните документ в другой файл, используя метод 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();
}
}
}

Цифровая подпись PDF с изображением
Ниже приведены шаги по добавлению подписи изображения в документ PDF.
- Создайте объект PdfDocument и загрузите образец PDF-файла с помощью метода PdfDocument.LoadFromFile().
- Загрузите файл сертификата .pfx при инициализации объекта PdfCertificate.
- Создайте объект PdfSignature, указав его положение и размер в документе.
- Установите для графического режима подписи значение SignImageOnly, при котором будет отображаться только изображение подписи.
- Задайте изображение подписи через свойство PdfSignature.SignImageSource.
- Установите разрешения сертифицированного документа на ForbidChanges и AllowFormFill.
- Сохраните документ в другой файл, используя метод 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();
}
}
}

Цифровая подпись PDF с текстом и изображением
Ниже приведены шаги для цифровой подписи документа PDF с текстом и изображением.
- Создайте объект PdfDocument и загрузите образец PDF-файла с помощью метода PdfDocument.LoadFromFile().
- Загрузите файл сертификата .pfx при инициализации объекта PdfCertificate.
- Создайте объект PdfSignature, указав его положение и размер в документе.
- Установите для графического режима подписи значение SignImageAndSignDetail, в котором будут отображаться как изображение подписи, так и детали.
- Установите изображение подписи с помощью свойства PdfSignature.SignImageSource и задайте сведения о подписи, включая имя, контактную информацию, причину, дату и т. д., с помощью других свойств в объекте PdfSignature.
- Установите разрешения сертифицированного документа на ForbidChanges и AllowFormFill.
- Сохраните документ в другой файл, используя метод 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();
}
}
}

Подать заявку на временную лицензию
Если вы хотите удалить оценочное сообщение из сгенерированных документов или избавиться от функциональных ограничений, пожалуйста запросить 30-дневную пробную лицензию для себя.