
Поля формы являются одним из неотъемлемых компонентов при работе с данными клиентов, и становится легко распространять формы PDF Acro среди пользователей, чтобы они могли заполнять формы данными по своему выбору и отправлять их обратно. Мы знаем, что можно использовать различные поля формы, но среди всех них TextBox, CheckBox, RadioButton и ComboBox являются очень распространенными. Поэтому после заполнения форм Acro мы анализируем поля формы в бэк-офисе, чтобы извлечь из них данные и сохранить их в FDF, XML или напрямую в базах данных.
Хотя все операции, включая создание форм PDF, добавление полей форм, обновление полей форм, можно выполнять вручную, при работе с огромным набором документов ручная операция не представляется возможной, поскольку она занимает много времени и подвержена ошибкам из-за ручной обработки данных. Поэтому автоматические процедуры через язык программирования могут быть жизнеспособным решением. Поэтому при создании программы мы получаем возможность либо использовать локальное решение/API, которое может помочь нам выполнить все требования, либо использовать размещенные в облаке REST API для разбора полей форм.
Преимущества API REST
RESTful API здесь получают преимущество, потому что вам не нужно вручную отслеживать все версии API. Кроме того, вам не нужно обновлять свою систему версиями API и не нужно беспокоиться о проблемах совместимости API с определенным языком программирования и т. д. Поэтому мы представляем Aspose.PDF Cloud SDK для Java, который предоставляет возможности для создания, обработки и преобразования PDF-документов в другие поддерживаемые форматы файлов. Java SDK разработан поверх Aspose.PDF Cloud REST API, к которым можно легко получить доступ с помощью команд cURL, а SDK разработаны для того, чтобы облегчить нашим клиентам использование определенного языка программирования.
В этом блоге мы расскажем, как анализировать различные поля форм:
- Чтение, добавление или обновление полей TextBox
- Анализ полей формы CheckBox
- Добавить или обновить поля RadioButton
- Манипулирование полями формы ComboBox
Чтение, добавление или обновление полей TextBox
API предлагает три способа чтения информации, связанной с полями TextBox.
| API | Тип | Описание | Ссылка Swagger |
| ——————————————– | ———– | ——————————————– | —————————— |
| /pdf/{name}/fields/textbox | GET | Прочитать поля TextBox документа | GetDocumentTextBoxFields |
| /pdf/{name}/page/{pageNumber}/fields/textbox | GET | Чтение полей TextBox документа для указанной страницы | GetPageTextBoxFields |
| /pdf/{name}/fields/textbox/{fieldName} | GET | Чтение полей TextBox документа по имени поля | GetTextBoxField |
Команда cURL для чтения полей TextBox
Поскольку файлы хранятся в вашем персональном облачном хранилище, вам необходимо сначала сгенерировать токен аутентификации JWT, для которого требуются ваши персонализированные идентификатор клиента и секретный ключ клиента.
curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=xxxx&client_secret=xxxx" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"
curl -X GET "https://api.aspose.cloud/v3.0/pdf/FormDataTextBox.pdf/fields/textbox" \
-H "accept: application/json" \
-H "authorization: Bearer <JWT Token>"
Образец FormDataTextBox.pdf, использованный в примере выше.
Ява
// Полные примеры и файлы данных можно найти по адресу https://github.com/aspose-pdf-cloud/aspose-pdf-cloud-java
const string clientID = "xxxxxx-1c8e-4ea4-a948-3857547232fa";
const string clientSecret = "xxxxxx613237f013e329cdf5694cc96a";
import com.aspose.asposecloudpdf.ApiException;
import com.aspose.asposecloudpdf.api.PdfApi;
import com.aspose.asposecloudpdf.examples.Common;
import com.aspose.asposecloudpdf.model.FieldResponse;
public class GetFieldTestExample {
public static void main(String[] args) throws ApiException {
String name = "PdfWithAcroForm.pdf";
// создать экземпляр объекта PdfAPi
com.aspose.asposecloudpdf.api.PdfApi pdf = new com.aspose.asposecloudpdf.api.PdfApi(clientSecret,clientID);
// Чтение полей TextBox документа
TextBoxFieldsResponse response = pdf.getDocumentTextBoxFields("FormDataTextBox.pdf",null, null);
// распечатать сведения об извлеченных полях
System.out.println(response.getFields());
}
}
Анализ полей формы CheckBox
При работе с флажками API также предоставляет возможности считывать значения флажков, добавлять новый флажок или обновлять свойства, связанные с существующим флажком в форме PDF.
- ПолучитьDocumentCheckBoxFields - Read document checkbox fields
- GetPageCheckBoxFields - Read specific page checkbox fields
- ПолучитьCheckBoxField - Read document checkbox field by name
Команда cURL для чтения CheckBox на странице 1
curl -X GET "https://api.aspose.cloud/v3.0/pdf/FormDataTextBox.pdf/page/1/fields/checkbox" \
-H "accept: application/json" \
-H "authorization: Bearer <JWT Token>"
Команда CURL для обновления CheckBox на странице 1
curl -X PUT "https://api.aspose.cloud/v3.0/pdf/FormDataTextBox.pdf/fields/checkbox/Check%20Box1" \
-H "accept: application/json" \
-H "authorization: Bearer <JWT Token>" \
-H "Content-Type: application/json" \
-d "{ \"Links\": [ { \"Href\": \"string\", \"Rel\": \"string\", \"Type\": \"string\", \"Title\": \"string\" } ], \"PartialName\": \"Aspose CheckBox\", \"FullName\": \"Aspose CheckBox\", \"Rect\": { \"LLX\": 88.3573, \"LLY\": 687.617, \"URX\": 97.0198, \"URY\": 695.413 }, \"Value\": \"null\", \"PageIndex\": 1, \"Height\": 12, \"Width\": 12, \"ZIndex\": 0, \"IsGroup\": false, \"IsSharedField\": true, \"Flags\": [ \"Default\" ], \"Color\": { \"A\": 0, \"R\": 150, \"G\": 120, \"B\": 0 }, \"Contents\": \"Field Updated\", \"Margin\": { \"Left\": 0, \"Right\": 0, \"Top\": 0, \"Bottom\": 0 }, \"Highlighting\": \"None\", \"HorizontalAlignment\": \"Left\", \"VerticalAlignment\": \"Center\", \"Border\": { \"Width\": 1, \"EffectIntensity\": 1, \"Style\": \"Solid\", \"Effect\": \"None\", \"Dash\": { \"On\": 1, \"Off\": 2 }, \"Color\": { \"A\": 255, \"R\": 120, \"G\": 120, \"B\": 0 } }, \"AllowedStates\": [ \"Yes\",\"Off\" ], \"Style\": \"Circle\", \"ActiveState\": \"On\", \"Checked\": true, \"ExportValue\": \"Yes\"}"
Запросить URL-адрес
https://api.aspose.cloud/v3.0/pdf/FormDataTextBox.pdf/fields/checkbox/Check%20Box1
Ява
// Полные примеры и файлы данных можно найти по адресу https://github.com/aspose-pdf-cloud/aspose-pdf-cloud-java
const string clientID = "xxxxxx-1c8e-4ea4-a948-3857547232fa";
const string clientSecret = "xxxxxx613237f013e329cdf5694cc96a";
import com.aspose.asposecloudpdf.model.Rectangle;
import com.aspose.asposecloudpdf.model.CheckBoxField;
import com.aspose.asposecloudpdf.model.Border;
import com.aspose.asposecloudpdf.model.Color;
import com.aspose.asposecloudpdf.model.CheckBoxFieldResponse;
public class UpdateCheckBoxFieldExample {
public static void main(String[] args) throws ApiException {
// создать экземпляр объекта PdfAPi
com.aspose.asposecloudpdf.api.PdfApi pdf = new com.aspose.asposecloudpdf.api.PdfApi(clientSecret,clientID);
// Создать экземпляр CheckBox
CheckBoxField updatedCheckBox = new CheckBoxField();
updatedCheckBox.partialName("Check Box1");
updatedCheckBox.height(12.0);
updatedCheckBox.width(12.0);
// установить стиль флажка как Diamond
updatedCheckBox.style(com.aspose.asposecloudpdf.model.BoxStyle.DIAMOND);
updatedCheckBox.activeState("On");
// включить значение флажка
updatedCheckBox.checked(true);
Rectangle rect = new Rectangle();
rect.setLLX(88.3573);
rect.setLLY(687.617);
rect.setURX(97.0198);
rect.setURY(695.413);
updatedCheckBox.rect(rect);
// укажите данные индекса страницы
updatedCheckBox.pageIndex(1);
// установить детали стиля границы CheckBox
Border border = new Border();
border.width(1);
border.style(com.aspose.asposecloudpdf.model.BorderStyle.SOLID);
border.effect(com.aspose.asposecloudpdf.model.BorderEffect.NONE);
// Цветовой объект для границы
Color color = new Color();
color.setR(120);
color.setG(220);
color.setB(10);
// установить цвет границы CheckBox
border.color(color);
// вызов метода для обновления поля флажка на странице 1
CheckBoxFieldResponse response = pdf.putCheckBoxField("FormDataTextBox.pdf", "Check Box1", updatedCheckBox,null,null);
// распечатать код статуса ответа
System.out.print(response.getStatus());
}
}
После выполнения команды/кода свойства, связанные с полем флажка 1, обновляются, как показано на рисунке ниже.

Изображение 1: Предварительный просмотр обновленного флажка 1 с использованием команды cURL
Добавить или обновить поля RadioButton
Подобно полям TextBox и CheckBox, Cloud SDK также предоставляет возможности чтения и обновления полей RadioButton в PDF-документах.
Команда cURL для чтения полей RadioButton в документе PDF
curl -X GET "https://api.aspose.cloud/v3.0/pdf/FormDataTextBox.pdf/fields/radiobutton" \
-H "accept: application/json" \
-H "authorization: Bearer <JWT Token>"
Запросить URL-адрес
https://api.aspose.cloud/v3.0/pdf/FormDataTextBox.pdf/fields/radiobutton
Манипулирование полями формы ComboBox
Обратите внимание, что манипуляция ComboBox становится очень удобной с помощью Aspose.PDF Cloud SDK для Java. Вы получаете возможность читать существующие поля ComboBox в документе, добавлять новое поле ComboBox или обновлять существующий ComboBox.
- GetDocumentComboBoxFields - Read document combobox fields
- GetPageComboBoxFields - Read particular page combobox fields
- GetComboBoxField - Read document combobox field by name
- PostComboBoxFields - Add ComboBox field to document
- PutComboBoxField - Replace document combobox field
Команда cURL для чтения всех полей ComboBox
curl -X GET "https://api.aspose.cloud/v3.0/pdf/FormDataTextBox.pdf/fields/combobox" \
-H "accept: application/json" \
-H "authorization: Bearer <JWT Token>"
Запросить URL-адрес
https://api.aspose.cloud/v3.0/pdf/FormDataTextBox.pdf/fields/combobox
Заключение
Как объяснялось в статье выше, обработка полей формы стала довольно простой с помощью облачных API. Вы можете рассмотреть возможность просмотра соответствующего блога Form Parser | Form Recognizer | PDF Filling | Automate form processing with REST Web API.