Извлечение информации об изображении и подписи с использованием Aspose.PDF для C++

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

Aspose.PDF для C++ поддерживает функцию цифровой подписи PDF-файлов, используя класс SignatureField и при подписании документа.

Для извлечения информации о подписи мы добавили метод ExtractImage в класс SignatureField.

Пожалуйста, ознакомьтесь с следующим фрагментом кода, который демонстрирует шаги по извлечению изображения из объекта SignatureField:


```cpp
void SecuringAndSigning::ExtractingImageFromSignatureField() {


// String for path name.

String _dataDir("C:\\Samples\\");

auto pdfDocument = MakeObject<Document>(_dataDir + u"ExtractingImage.pdf");


int i = 0;

try {


for (auto& field : pdfDocument->get_Form()->get_Fields()) {



auto sf = System::DynamicCast<Aspose::Pdf::Forms::SignatureField>(field);



if (sf != nullptr) {




auto output = System::IO::File::OpenWrite(_dataDir + u"im" + i + u".jpeg");




auto tempStream = sf->ExtractImage();




tempStream->CopyTo(output);




output->Close();



}


}

}

catch (System::IO::IOException e) {


Console::WriteLine(e->get_Message());

}
}

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

Aspose.PDF для C++ позволяет извлекать информацию о подписи. Для этого мы ввели метод ExtractCertificate в класс SignatureField.

Пожалуйста, ознакомьтесь с следующим примером кода, который демонстрирует шаги для извлечения сертификата из объекта SignatureField:

void SecuringAndSigning::ExtractSignatureInformation() {


String _dataDir("C:\\Samples\\");


String input = _dataDir + u"ExtractSignatureInfo.pdf";

auto pdfDocument = MakeObject<Document>(input);


for (auto& field : pdfDocument->get_Form()->get_Fields()) {


auto sf = System::DynamicCast<Aspose::Pdf::Forms::SignatureField>(field);


if (sf != nullptr) {



auto cerStream = sf->ExtractCertificate();



if (cerStream != nullptr) {




auto outStream = System::IO::File::OpenWrite(_dataDir + u"targetFile.cer");




cerStream->CopyTo(outStream);




outStream->Close();



}


}

}
}