2013-04-23 3 views
1

Я пытаюсь установить TextField для чтения только, но без успеха.Установите текстовое поле itextsharp для чтения только

Я попытался это:

field.SetFieldProperty(key, "setfflags", PdfFormField.FF_READ_ONLY, Nothing) 

Но это даст эту ошибку: «iTextSharp.text.pdf.TextField» не содержит определение для «SetFieldProperty»

Вот мой код :

public void addField(PdfWriter writer, string name, int x, int y, int w, int h, PdfContentByte cb, int maxSize, string text, BaseFont font, int border) 
    { 
     TextField field = new iTextSharp.text.pdf.TextField(writer, new iTextSharp.text.Rectangle(x, y - h, x + w, y), name); 

     field.Text = text; 

     writer.AddAnnotation(field.GetTextField()); 
    } 

ответ

1

См. Пример TextFields от my book.

В поле можно установить различные параметры. Это, как вы сделать поле только для чтения:

text.Options = TextField.READ_ONLY; 

Предыдущий ответ, данный Scorpi0 не так (я upvoted ответ), но это решение, чтобы изменить свойства поля в существующих форму. Вы просите изменить свойство в недавно созданной форме.

1

метод SetFieldProperty представляет собой метод класса AcroFields (форма PDF), а не метод класса TextField.
A TextField может быть только на чтение, только если он принадлежит Форме, тогда вы можете установить его только для чтения, вызвав метод SetFieldProperty и зная ключ TextField внутри формы.

1

попробовать это

TextField newtext = new TextField(PDFStamper.Writer, 
    new iTextSharp.text.Rectangle(590, 660, 470, 690), "txtfield"); 
newtext.Options = TextField.READ_ONLY; 
PdfFormField field = newtext.GetTextField(); 
PDFStamper.AddAnnotation(field, 1); 
Смежные вопросы