2011-01-06 1 views
0

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

Я пытался добиться того, чтобы с помощью

form.SetFieldProperty (ключ, ключ, TextField.READ_ONLY, Nothing)

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

form.RemoveField (ключ)

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

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

(Извините за doublepost, я просто понял, мой титул не secify моей проблемы должным образом)

ответ

0

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

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.