Извлечение информации о изображении и подписи
Следующий фрагмент кода также работает с библиотекой Aspose.PDF.Drawing.
Извлечение изображения из поля подписи
Aspose.PDF для .NET поддерживает функцию цифровой подписи PDF-файлов с использованием класса SignatureField и при подписании документа вы также можете установить изображение для SignatureAppearance. Теперь этот API также предоставляет возможность извлекать информацию о подписи, а также изображение, связанное с полем подписи.
Для извлечения информации о подписи мы ввели метод ExtractImage в класс SignatureField. Пожалуйста, ознакомьтесь со следующим фрагментом кода, который демонстрирует шаги по извлечению изображения из объекта SignatureField:
// Для полных примеров и файлов данных, пожалуйста, перейдите на https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_AsposePdf_SecuritySignatures();
string input = dataDir+ @"ExtractingImage.pdf";
using (Document pdfDocument = new Document(input))
{
foreach (Field field in pdfDocument.Form)
{
SignatureField sf = field as SignatureField;
if (sf != null)
{
string outFile = dataDir+ @"output_out.jpg";
using (Stream imageStream = sf.ExtractImage())
{
if (imageStream != null)
{
using (System.Drawing.Image image = Bitmap.FromStream(imageStream))
{
image.Save(outFile, System.Drawing.Imaging.ImageFormat.Jpeg);
}
}
}
}
}
}
Замена изображения подписи
Иногда может возникнуть необходимость заменить только изображение уже существующего поля подписи в файле PDF. Для выполнения этой задачи сначала нам нужно искать поля формы в файле PDF, определять поля подписи, получать размеры (прямоугольные размеры) поля подписи, а затем штамповать изображение на тех же размерах.
Извлечение информации о подписи
Aspose.PDF для .NET поддерживает функцию цифровой подписи файлов PDF с использованием класса SignatureField. В настоящее время мы также можем определять действительность сертификата, но мы не можем извлечь весь сертификат. Информация, которую можно извлечь, включает в себя открытый ключ, отпечаток пальца, издателя и т.д.
Для извлечения информации о подписи мы ввели метод ExtractCertificate в класс SignatureField. Для извлечения информации о подписи был введен метод ExtractCertificate в класс SignatureField.
// Для полных примеров и файлов данных, пожалуйста, перейдите на https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_AsposePdf_SecuritySignatures();
string input = dataDir + "ExtractSignatureInfo.pdf";
using (Document pdfDocument = new Document(input))
{
foreach (Field field in pdfDocument.Form)
{
SignatureField sf = field as SignatureField;
if (sf != null)
{
Stream cerStream = sf.ExtractCertificate();
if (cerStream != null)
{
using (cerStream)
{
byte[] bytes = new byte[cerStream.Length];
using (FileStream fs = new FileStream(dataDir + @"input.cer", FileMode.CreateNew))
{
cerStream.Read(bytes, 0, bytes.Length);
fs.Write(bytes, 0, bytes.Length);
}
}
}
}
}
}