22

У меня есть документ PDF с множеством полей формы. Мне нужно увидеть имена полей формы. Могу ли я сделать это с помощью Adobe Reader? Возможно сторонний инструмент ..?

5 ответов5

33

Я ценю, что этот вопрос немного устарел, но в случае, если кто-нибудь еще столкнется с ним, PDF Toolkit позволит вам сделать это очень просто с помощью команды, которая выглядит следующим образом (где PDF, из которого вы хотите получить поля формы, называется docsOfInterest.pdf:

pdftk docOfInterest.pdf dump_data_fields
3

Вероятно, вы найдете удобное для пользователя приложение, которое сделает это за вас, но так я добился этого с помощью небольшого VBScript ...

  1. Скачать и установить ABCpdf с webSupergoo можно здесь ...

  2. Скопируйте следующий скрипт в текстовый файл и сохраните его с расширением .vbs.

  3. Поместите копию вашего PDF-файла в ту же папку, что и скрипт, назвав его «myForm.pdf».

  4. Дважды щелкните файл сценария для запуска.


Set theDoc = CreateObject("ABCpdf8.Doc")
theDoc.Read "myForm.pdf"
theDoc.AddFont "Helvetica-Bold"
theDoc.FontSize=16
theDoc.Rect.Pin=1

Dim theIDs, theList
theIDs = theDoc.GetInfo(theDoc.Root, "Field IDs")
theList = Split(theIDs, ",")

For Each id In theList
    theDoc.Page = theDoc.GetInfo(id, "Page")
    theDoc.Rect.String = theDoc.GetInfo(id, "Rect")
    theDoc.Color.String = "240 240 255"
    theDoc.FillRect()
    theDoc.Rect.Height = 16
    theDoc.Color.String = "220 0 0"
    theDoc.AddText(theDoc.GetInfo(id, "Name"))
    theDoc.Delete(id)
Next

theDoc.Save "output.pdf"
theDoc.Clear
MsgBox "Finished"

После того, как скрипт завершится, вы должны найти другой PDF-документ с именем output.pdf, который появится в той же папке со всеми именами полей, наложенными поверх полей.

2

Насколько я знаю, вы не можете сделать это с помощью Acrobat Reader. Вы можете использовать их программу для записи PDF (в настоящее время Acrobat XI), но это довольно дорого.

Я должен был сделать то же самое только для нескольких документов. Я только что скачал пробную версию deskPDF Studio X. В меню «Формы»> «Изменить макет формы» можно увидеть название полей.

Помните, что при работе с бесплатной пробной версией документы будут помечены водяным знаком, если вы сохраните документ.

1

На Aspose.com есть техническая статья, которая объясняет, как идентифицировать имена полей формы для PDF-файлов. Согласно этой статье, вы можете достичь этого, используя код Java на странице.

//First a input pdf file should be assigne
Form form = new Form("FilledForm.pdf");
//get all field names
String[] allfields = form.getFieldsNames();
// Create an array which will hold the location coordinates of Form fields
Rectangle[] box = new Rectangle[allfields.Length];
for (int i = 0; i < allfields.Length; i++)
{
  // Get the appearance attributes of each field, consequtively
  FormFieldFacade facade = form.getFieldFacade(allfields[i]);
  //Box in FormFieldFacade class holds field's location.
  box[i] = facade.getBox();
}
form.save();

// Now we need to add a textfield just upon the original one
FormEditor editor = new FormEditor("FilledForm.pdf", ”form_updated.pdf");
for (int i = 0; i < allfields.Length; i++)
{
  // add text field beneath every existing form field
  editor.addField(FormEditor.FLDTYP_TXT, "TextField" + i, allfields[i], 1, box[i].getX, box[i].getY(), box[i].getX() + 50, box[i].getY() + 10);
}
//Close the document
editor.save();
1

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .