Пожалуйста, попробуйте удалить поля из словаря Lock :
PdfSigFieldLock pdfSigFieldLock = new PdfSigFieldLock();
pdfSigFieldLock.SetDocumentPermissions(PdfSigFieldLock.LockPermissions.NO_CHANGES_ALLOWED);
string[] fieldToLock = new string[]{ fieldName };
pdfSigFieldLock.SetFieldLock(PdfSigFieldLock.LockAction.ALL, fieldToLock);
pdfSigFieldLock.GetPdfObject().Remove(PdfName.Fields); // <<<<
pdfSigner.SetFieldLockDict(pdfSigFieldLock);
В моих тестах я получил желаемый результат с этим изменением.
Некоторые фоны:
Эта запись Поля указана как Требуется, если значение Действие равно Включить или исключить (ISO 32000-1, таблица 233 - Записи в словаре блокировки подписи). В случае действия Все , как в вашем случае, следовательно, не требуется или необязательно. Кроме того, в этом случае это также не имеет смысла, поскольку все поля должны быть заблокированы в любом случае. Таким образом, Adobe Reader считает некорректным словарь блокировки полей подписи с записью Fields для действия All . (Что ж, вероятно, он принял бы эту запись, если бы содержались все имена полей документа, я не проверил все возможное содержимое ...)
Класс iText 7 PdfSigFieldLock
, к сожалению, в настоящее время автоматически создает такой Поля , поэтому вы должны удалить его ..