Как проверить тип AcroFields, если разные типы полей имеют одинаковые имена полей?ITextSharp - PullRequest
0 голосов
/ 20 января 2011

Если есть checkBox и TextBox с одинаковым именем поля.Acrofields будет использовать FieldName в качестве ключа.

Как отправить соответствующее значение в другое поле?(true, false для CheckBox и текст в TextBox)

Приведенный ниже код работает только в том случае, если для поля другого типа нет повторяющегося FieldName

        PdfReader pdfReader = new PdfReader(this._pdfInputPath);  
        AcroFields formFields = pdfReader.AcroFields;
        foreach (KeyValuePair<string, AcroFields.Item> kvp in formFields.Fields)
        {
            AcroFields.Item acroFieldItem = kvp.Value as AcroFields.Item;
            //TextField :4
            //CheckBox :2
            //RadioButton :3
            //ComboBox :6
            //ListBox :5
            //Button :1
            int fileType = formFields.GetFieldType(kvp.Key);
            string translatedFileName = formFields.GetTranslatedFieldName(kvp.Key);

Спасибо!

1 Ответ

1 голос
/ 28 января 2011

В PDF, если два поля имеют одно имя, они имеют общее значение.Точка.

Как ты вообще пришел к форме с двумя разными полями ТИПЫ, имеющими одинаковое имя?Акробат не позволит вам.iText, вероятно, недостаточно сдерживающий, чтобы предотвратить это.

...