Aspose.PDF for C++ を使用して画像と署名情報を抽出する

署名フィールドから画像を抽出する

Aspose.PDF for C++ は、SignatureField クラスを使用して PDF ファイルにデジタル署名を行う機能をサポートしており、ドキュメントに署名する際に使用します。

署名情報を抽出するために、SignatureField クラスに ExtractImage メソッドを導入しました。

次のコードスニペットをご覧ください。これは SignatureField オブジェクトから画像を抽出する手順を示しています。

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 for C++ を使用すると、署名情報を抽出できます。 このために、SignatureField クラスに ExtractCertificate メソッドを導入しました。

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();

}

}

}
}