Я использую следующий метод для добавления поля подписи в документ PDF / A (который имеет уровень соответствия PDF / A-3A) на новой странице. Кажется, все работает ...
public void AddCertifiedSignature(string srcPath, string destPath)
{
var reader = new PdfReader(srcPath);
var writer = new PdfWriter(destPath);
var pdfDoc = new PdfADocument(reader, writer);
PdfAcroForm form = PdfAcroForm.GetAcroForm(pdfDoc, true);
var ps = new PageSize(PageSize.A4);
var newPage = pdfDoc.AddNewPage(ps);
var signatureRectangle = new Rectangle(36, 648, 200, 100);
var signatureAnnotation = new PdfWidgetAnnotation(signatureRectangle);
var signatureField = PdfFormField.CreateSignature(pdfDoc, signatureRectangle, PdfAConformanceLevel.PDF_A_3A);
signatureField.SetFieldName("SignField1");
form.AddField(signatureField, newPage);
pdfDoc.Close();
}
Однако в последней строке я получаю исключение:
Additional information: Every annotation shall have at least one appearance dictionary
Кто-нибудь знает, как добавить запрошенный словарь (или лучшую реализацию)? В настоящее время я использую iText 7.1.2.0 (.NET).