При использовании iTextSharp.text.pdf.PdfStamper.AcroFields.SetField я получаю исключение ArgumentException в полях формы PDF, которые появляются после определенной точки в документе. В нем говорится:
Название «Helveia01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678» слишком длинный (156 символов).
Это внутреннее имя, данное полю формы редактором PDF. Внутренние имена становятся все длиннее и длиннее по мере добавления дополнительных полей формы (используя Foxit). Удобное для пользователя название — это всего лишь короткая строка (Общая сумма обязательств — ниже). Если вы посмотрите на pdf в блокноте, вы увидите строку выше:
<> / DA (/ Helveia0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567 0 Т 0 0 0 гк) / АР <> / Т (LiabilitiesTotal) >>
У меня нет контроля над этим внутренним именем. Любые идеи, почему он имеет ограничение при ссылке iTextSharp.text.pdf.PdfStamper.AcroFields.SetField? Документ PDF действителен, и я могу заполнить его вручную, просто не используя PdfStamper.
В качестве эксперимента я создал пустой PDF-файл с помощью FoxitPhantomPDF 6.0.5.0618 и добавил 30 полей формы, сохранив их имена по умолчанию. Результат: окончательному полю формы присваивается имя объекта Helveia0123456789012345678901234567, первое называется Helvei. Из блокнота++:
Поиск "DA(/Helvei" (30 совпадений в 1 файле)
C:\Users\sean.fackrell\Desktop\NewFoxit.pdf (30 совпадений) Строка 36: ‹>/DA(/Helvei 0 Tf 0 0 0 rg)/AP‹>>> Строка 50: ‹>/DA(/Helveia 0 Tf 0 0 0 rg)/AP‹>>> Строка 64: ‹>/DA(/Helveia0 0 Tf 0 0 0 rg)/AP ‹>>> Строка 78: ‹>/DA(/Helveia01 0 Tf 0 0 0 rg)/AP‹>>> Строка 92: ‹>/DA(/Helveia012 0 Tf 0 0 0 rg)/AP‹>>> Строка 106: ‹>/DA(/Helveia0123 0 Tf 0 0 0 rg)/AP‹>>> Строка 120: ‹>/DA(/Helveia01234 0 Tf 0 0 0 rg)/AP‹>>>> Строка 134: ‹ >/DA(/Helveia012345 0 Tf 0 0 0 rg)/AP‹>>> Строка 148: ‹>/DA(/Helveia0123456 0 Tf 0 0 0 rg)/AP‹>>> Строка 162: ‹>/DA( /Helveia01234567 0 Tf 0 0 0 rg)/AP‹>>> Строка 176: ‹>/DA(/Helveia012345678 0 Tf 0 0 0 rg)/AP‹>>> Строка 190: ‹>/DA(/Helveia0123456789 0 Tf 0 0 0 rg)/AP‹>>> Строка 204: ‹>/DA(/Helveia01234567890 0 Tf 0 0 0 rg)/AP‹>>> Строка 218: ‹>/DA(/Helveia012345678901 0 Tf 0 0 0 rg )/AP‹>>> Строка 232: ‹>/DA(/Helveia0123456789012 0 Tf 0 0 0 rg)/AP‹>>> Строка 246: ‹>/DA(/Helveia01234567890123 0 Tf 0 0 0 rg)/AP‹ >>> Строка 260: ‹>/DA(/Helveia012345678901234 0 Tf 0 0 0 rg)/AP‹>>> Строка 274: ‹>/DA(/Helveia0123456789012345 0 Tf 0 0 0 rg)/AP‹>>> Строка 288: ‹ >/DA(/Helveia01234567890123456 0 Tf 0 0 0 rg)/AP‹>>> Строка 302: ‹>/DA(/Helveia012345678901234567 0 Tf 0 0 0 rg)/AP‹>>> Строка 316: ‹>/DA( / HELVEIA01234567890123456789012345678 0 TF 0 0 0 RG) / AP <>>> Линия 330: <> / DA (/ HELVEIA01234567890123456789 0 TF 0 0 0 RG) / AP <>>> Line 368: <> / DA (/ HELVEIA01234567890123456789012345678901234567890 0 TF 0 0 0 rg)/AP‹>>> Строка 382: ‹>/DA(/Helveia0123456789012345678901 0 Tf 0 0 0 rg)/AP‹>>> Строка 396: ‹>/DA(/Helveia01234567890123456789012 0 0 rg 0 Tf 0 )/AP‹>>> Строка 410: ‹>/DA(/Helveia012345678901234567890123 0 Tf 0 0 0 rg)/AP‹>>> Строка 424: ‹>/DA(/Helveia0123456789012345678901234 0 Tf 0 0 rg) 0 0 0 rg >>> Строка 438: ‹>/DA(/Helveia01234567890123456789012345 0 Tf 0 0 0 rg)/AP‹>>> Строка 452: ‹>/DA(/Helveia012345678901234567890123456>> 0 Tf 0 >> 0 0 rg)/AP 466: ‹>/DA(/Helveia0123456789012345678901234567 0 Tf 0 0 0 rg)/AP‹>>>