Извлеките имена полей формы PDF из формы PDF

Я использую pdftk, чтобы заполнить форму PDF с файлом XFDF. Однако для этого проекта я не знаю заранее, какие области будут присутствовать, таким образом, я должен буду проанализировать сам PDF, чтобы видеть то, в чем области должны быть заполнены, представить интерфейс пользователю соответственно и затем произвести файл XFDF от этого, чтобы заполнить форму PDF.

Как я получаю имена полей? Предпочтительно командная строка, .NET или решения PHP.

22
задан Christopher Done 24 January 2010 в 17:41
поделиться

2 ответа

Я могу заставить своего клиента экспортировать XFDF файл (который содержит имена полей), используя Acrobat вместе с PDF, что полностью устраняет эту проблему.

-1
ответ дан 29 November 2019 в 03:55
поделиться

Я использовал следующий код, используя ABCpdf из WebSupergoo, но я полагаю, что большинство библиотек имеют сопоставимые классы:

protected void Button1_Click(object sender, EventArgs e)
    {
        Doc thedoc = new Doc();
        string saveFile = "~/docs/f1_filled.pdf";
        System.Text.StringBuilder sb = new System.Text.StringBuilder();
        thedoc.Read(Server.MapPath("~/docs/F1_2010.pdf"));
        foreach (Field fld in thedoc.Form.Fields)
        {
            if (!(fld.Page == null))
            {
                sb.AppendFormat("Field: {0}, Type: {1},page: {4},x: {2},y: {3}\n", fld.Name, fld.FieldType.ToString(), fld.Rect.Left, fld.Rect.Top, fld.Page.PageNumber);
            }
            else
            {
                sb.AppendFormat("Field: {0}, Type: {1},page: {4},x: {2},y: {3}\n", fld.Name, fld.FieldType.ToString(), fld.Rect.Left, fld.Rect.Top, "None");
            }
            if (fld.FieldType == FieldType.Text)
            {
                fld.Value = fld.Name;
            }

        }

        this.TextBox1.Text = sb.ToString();
        this.TextBox1.Visible = true;
        thedoc.Save(Server.MapPath(saveFile));
        Response.Redirect(saveFile);
    }

Это делает 2 вещи: 1) Заполняет текстовое поле списком всех полей формы, показывая их имя, тип поля, номер страницы и положение на странице (кстати, 0,0 находится внизу слева). 2) Заполняет все текстовые поля их именами полей в выходном файле - распечатайте результат файл, и все ваши текстовые поля будут помечены.

1
ответ дан 29 November 2019 в 03:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: