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

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

Удалить цифровые подписи из PDF
Ниже приведены шаги по удалению цифровых подписей из PDF с помощью Spire.PDF for .NET.
- Создайте объект PDFDocument.
- Получить виджеты формы из документа через свойство PdfDocument.Form.
- Просмотрите виджеты и определите, является ли конкретный виджет PdfSignatureFieldWidget.
- Удалите виджет подписи с помощью метода PdfFieldCollection.RemoveAt().
- Сохраните документ в другой PDF-файл, используя метод 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");
}
}
}
Подать заявку на временную лицензию
Если вы хотите удалить сообщение об оценке из сгенерированных документов или избавиться от ограничений функции, пожалуйста запросите 30-дневную пробную лицензию для себя.