Получение данных из PDF с использованием C # - PullRequest
3 голосов
/ 24 августа 2010

У меня есть существующий PDF с несколькими выпадающими списками.Я хотел бы иметь возможность получить список параметров из этих полей со списком в программе на C #.

Я посмотрел на iText, но не смог понять, может ли он делать то, что я хочу.

Любые предложения будут с благодарностью.Заранее спасибо!

Ответы [ 2 ]

2 голосов
/ 21 октября 2010

iText [Sharp] действительно может делать то, что вы хотите:

PdfReader read = new PdfReader(pdfPath);
AcroFields af = reader.getAcroFields();

String displayOptions[] = af.getListOptionDisplay(fldName);
String valueOptions[]   = af.getListOptionValue(fldName);

Это код Java, записанный здесь в поле "Ваш ответ", но я подозреваю, что C # будет удивительно похожим.

(кто-нибудь еще настолько привык к встроенным расширениям, что ожидает его вне своей IDE? Я продолжаю нажимать ctrl-space и ожидаю увидеть список доступных функций.: /)

Показать параметры - это то, что видит пользователь, значение параметры - это то, что отправлено на сервер. Они часто идентичны, но не всегда. Список стран может отображать их полное имя на местном языке пользователю, а затем использовать международный код страны в качестве значения ... или может отображать и отправлять эти коды. Вы поняли идею.

1 голос
/ 25 августа 2010

Вы можете попробовать Docotic PDF Library .Эта библиотека позволяет вам читать и записывать поля со списком или другие значения элементов формы.

Вот краткий пример вашей задачи:

using System.Collections.ObjectModel;
using BitMiracle.Docotic.Pdf;

namespace BitMiracle.Docotic.Samples
{
    public static class ReadComboOptions
    {
        public static void Main()
        {
            using (PdfDocument document = new PdfDocument("DocumentName.pdf"))
            {
                PdfCollection<PdfWidget> widgets = document.Pages[0].Widgets;
                foreach (PdfWidget widget in widgets)
                {
                    PdfComboBox comboBox = widget as PdfComboBox;
                    if (comboBox != null)
                    {
                        foreach (string item in comboBox.Items)
                        {
                            // do something with combo box option
                        }
                    }
                }
            }
        }
    }
}

Отказ от ответственности: я работаю на поставщика библиотеки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...