Извлечение информации о изображении и подписи

Следующий фрагмент кода также работает с библиотекой 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);
                    }
                }
            }
        }
    }
}