Я использую компонент syncfusion для преобразования Word в PDF, а затем применяю подпись к файлу pdf из файла PDF.pfx, предоставленного syncfusion.Вот код ссылки:
Откройте документ PDF и примените подпись:
PdfLoadedDocument document = new PdfLoadedDocument("WordtoPDF8.pdf");
PdfLoadedPage page = document.Pages[0] as PdfLoadedPage;
//Creates a signature field.
PdfSignatureField signatureField = new PdfSignatureField(page, "SignatureField");
signatureField.Bounds = new RectangleF(0, 0, 100, 100);
signatureField.Signature = new PdfSignature(document, page, new PdfCertificate(@"C:\Users\someUser\AppData\Local\Syncfusion\EssentialStudio\14.4.0.15\Common\Data\PDF\PDF.pfx", "syncfusion"), "SignatureField");
signatureField.Signature.Reason = "I am author of this document";
//Adds the field.
document.Form.Fields.Add(signatureField);
//Saves the certified PDF document.
document.Save();
//Closes the document
document.Close(true);
Теперь откройте документ и прочитайте подпись, используя следующий код:
PdfLoadedDocument loadedDocument = new PdfLoadedDocument("WordtoPDF8.pdf");
//Gets the page of the document
PdfLoadedPage page1 = loadedDocument.Pages[0] as PdfLoadedPage;
//Gets the signature field from the PDF document
PdfLoadedField field = null;;
loadedDocument.Form.Fields.TryGetField("syncfusion",out field);
PdfLoadedSignatureField field2 = loadedDocument.Form.Fields[0] as PdfLoadedSignatureField;
//Get PDF Certificate instance from signature field
PdfCertificate certificate2 = field2.Signature.Certificate;
//Get the certificate details
string subjectName = certificate2.SubjectName;
string issuerName = certificate2.IssuerName;
Проблемачто я получаю, это то, что сертификат2 является нулевым, когда я его получаю.Я не могу понять, где проблема.Помощь будет высоко ценится.