Как определить тип поля из поля в документе PDF с помощью iTextSharp? - PullRequest
4 голосов
/ 30 ноября 2011

Я экспериментирую с библиотекой iTextSharp с C # и VisualStudio. Я пытаюсь получить имена полей и типы полей (TextBox, RadioButton, ComboBox, CheckBox) из объекта AcroFields.

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

Вот мой код, который получает имена полей:

FormObject fo = new FormObject();
List<FormField> form_fields = new List<FormField>();

PdfReader reader = new PdfReader(file_name);
AcroFields reader_fields = reader.AcroFields;

foreach (KeyValuePair<String, iTextSharp.text.pdf.AcroFields.Item> entry in reader_fields.Fields)
{
    FormField ff = new FormField();
    ff.Field_name = entry.Key.ToString();
    form_fields.Add(ff);
}

Есть идеи, как извлечь тип поля из объекта AcroFields? Я знаю, это должно быть где-то там ...

1 Ответ

3 голосов
/ 30 ноября 2011

Сегодня утром смог найти типы полей.

FormObject fo = new FormObject();
List<FormField> form_fields = new List<FormField>();

PdfReader reader = new PdfReader(file_name);
AcroFields reader_fields = reader.AcroFields;



foreach (KeyValuePair<String, iTextSharp.text.pdf.AcroFields.Item> entry in reader_fields.Fields)
{
    FormField ff = new FormField();
    ff.Field_name = entry.Key.ToString();
    int field_type = reader_fields.GetFieldType(entry.Key.ToString());
    form_fields.Add(ff);
}
...