Я новичок в iText. Я загрузил бесплатную 30-дневную пробную версию и попробовал следующее на .NET MVC: 1. Извлечь поля из формы PDF:
string src = "mypdf.pdf";
string dest = "mypdfRES.pdf";
PdfReader newReader = new PdfReader(src);
newReader.SetUnethicalReading(true);
PdfDocument pdf = new PdfDocument(newReader, new PdfWriter(dest));
PdfAcroForm form = PdfAcroForm.GetAcroForm(pdf, true);
IDictionary<String, PdfFormField> fields = form.GetFormFields();
После этого я устанавливаю значение в определенное поле
PdfFormField toSet;
fields.TryGetValue("form1[0].#subform[0].Line1_FamilyName[0]", out toSet);
toSet.SetValue("Test familyname");
pdf.Close();
Теперь, когда я открываю только что сохраненный PDF-документ mypdfRES.pdf, все поля пусты.
Пожалуйста, подскажите, почему iText автоматически устанавливает все поля моей формы только для чтения.
PS. Ссылка на PDF-документ, использованный в этом тесте, https://www.uscis.gov/system/files_force/files/form/i-765.pdf?download=1
new StampingProperties().useAppendMode()
, а такжеnew StampingProperties().preserveEncryption().useAppendMode()
привели к недопустимым PDF-файлам, которые Adobe Reader даже не открывает. Возможно, вы захотите изучить это. - person mkl   schedule 22.05.2017