предварительный просмотр формы pdf

Поля формы являются одним из неотъемлемых компонентов при работе с данными клиентов, и становится легко распространять формы 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

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.

Команда 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.

Команда 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.