Как определить тип поля из поля в документе PDF с помощью iTextSharp?

Я экспериментирую с библиотекой 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? Я знаю, что он должен быть где-то там...


person pteranodonjohn    schedule 29.11.2011    source источник
comment
документация по AcroFields подразумевает, что вы получаете тип поля, используя AcroFields.getFieldType(), а не из объекта AcroFields.Item.   -  person millimoose    schedule 30.11.2011
comment
Завтра посмотрю, спасибо за информацию.   -  person pteranodonjohn    schedule 30.11.2011


Ответы (1)


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

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);
}
person pteranodonjohn    schedule 30.11.2011