Как установить поле PDF, недоступное для редактирования в iTextSharp - PullRequest
0 голосов
/ 06 января 2011

, как следует из названия, я должен заполнить текстовые поля данными (что прекрасно работает) и сделать поля недоступными для редактирования.

Я пытался добиться этого, используя

form.SetFieldProperty (key, key, TextField.READ_ONLY, Nothing)

но я не знаю, что указать в качестве последнего параметра, и эта строка на самом деле ничего не сделала для меня.Я попытался сделать еще одну вещь:

form.RemoveField (ключ)

, но это удалило поле, включая текст, поэтому у меня был пустой PDF.

Я искалдля решения время от времени в течение довольно долгого времени, и я не мог найти ничего, чтобы помочь мне ни в одном учебнике или документации.Я на самом деле очень удивлен, что никто не просил такой функциональности раньше.Это действительно потому, что эта функция никому не нужна?Или это потому, что с помощью iTextSharp это так просто или очевидно невозможно?

(Извините за двойной пост, я только что понял, что мой заголовок не решает мою проблему должным образом)

1 Ответ

0 голосов
/ 07 января 2011

Этот последний параметр должен быть нулевым для подавляющего большинства случаев.

http://api.itextpdf.com/com/itextpdf/text/pdf/AcroFields.html#setFieldProperty(java.lang.String,%20java.lang.String,%20int,%20int[])

А StackOverflow не любит () или [] в своих ссылках. Раздражает.

И это не key, key, это

form.SetFieldProperty(fldName, "setfflags", PdfFormField.FF_READ_ONLY, null);

Существует также ряд флагов аннотаций, определенных в PdfAnnotation, которые необходимо установить следующим образом:

form.SetFieldProperty(fldName, "setflags", PdfAnnotation.FLAG_*, null);

Обратите внимание, что есть PdfAnnotation.FLAG_READONLY и PdfFormField.FF_READ_ONLY. Я только установил FF_READ_ONLY, но не мешало бы установить и другую ... или не так ли??

Проверьте JavaDoc . В iThere довольно много информации от iText.

...