Заповнити PDF-форму Java

У наш сучасний час багато даних збирається за допомогою форм, і в цьому контексті варто згадати форми PDF, які можна заповнити. Вони є ефективним способом збору та впорядкування інформації. Крім того, PDF-форми, які можна заповнювати, зараз використовуються різними установами як стандарт. Наприклад, якийсь суд чи закупівельна фірма можуть ефективно використовувати PDF-форми, які можна заповнювати, для стандартизації своїх процедур. Для створення таких додатків найбільш підходящим API є Aspose.PDF for Java API. Цікаво знати, чому? Давайте розглянемо наступні випадки використання, коли ми будемо працювати з PDF-формами програмно.

монтаж

Ви можете перейти до розділу Нові випуски, де ви можете налаштувати API, щоб збагатити ваші програми Java і дозволити їм обробляти PDF-документи, або ви можете визначити залежність у своїй програмі Maven, як показано нижче:

Репозиторій:

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository

Залежність:

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-pdf</artifactId>
    <version>20.7</version>
</dependency>

Після успішного налаштування API, перейдемо до наступних випадків використання:

Створюйте заповнювані форми PDF за допомогою Java

Ви можете створити придатну для заповнення форму PDF у програмах Java, виконавши наведені нижче дії.

  1. Створіть PDF-файл із порожньою сторінкою
  2. Додайте на сторінку поля TextBox і RadioButton.
  3. Збережіть вихідний файл PDF

Наведений нижче фрагмент коду показує, як створити з нуля форму PDF, яку можна заповнювати, за допомогою Java:

com.aspose.pdf.Document pdfdoc = new com.aspose.pdf.Document();
com.aspose.pdf.Page page = pdfdoc.getPages().add();
TextBoxField nameBox = new TextBoxField(pdfdoc, new com.aspose.pdf.Rectangle(275, 740, 440, 770));
nameBox.setPartialName("nameBox1");
nameBox.getDefaultAppearance().setFontSize(10);
nameBox.setMultiline(true);
com.aspose.pdf.Border nameBorder = new com.aspose.pdf.Border(nameBox);
nameBorder.setWidth(1);
nameBox.setBorder(nameBorder);
nameBox.getCharacteristics().setBorder(java.awt.Color.BLACK);
nameBox.setColor(com.aspose.pdf.Color.fromRgb(Color.RED));
TextBoxField mrnBox = new TextBoxField(pdfdoc, new com.aspose.pdf.Rectangle(275, 718, 440, 738));
mrnBox.setPartialName("Box1");
mrnBox.getDefaultAppearance().setFontSize(10);
com.aspose.pdf.Border mrnBorder = new com.aspose.pdf.Border(mrnBox);
mrnBorder.setWidth(1);
mrnBox.setBorder(mrnBorder);
mrnBox.getCharacteristics().setBorder(java.awt.Color.BLACK);
mrnBox.setColor(com.aspose.pdf.Color.fromRgb(Color.RED));
// Додайте поля форми на першу сторінку документа PDF            
pdfdoc.getForm().add(nameBox, 1);
pdfdoc.getForm().add(mrnBox, 1);

//Додайте радіокнопки в певні координати позиції в PDF
com.aspose.pdf.Table table = new com.aspose.pdf.Table();
//Встановіть позицію тут
table.setLeft(200);
table.setTop(300);
table.setColumnWidths("120");
page.getParagraphs().add(table);
com.aspose.pdf.Row r1 = table.getRows().add();
com.aspose.pdf.Row r2 = table.getRows().add();
com.aspose.pdf.Cell c1 = r1.getCells().add();
com.aspose.pdf.Cell c2 = r2.getCells().add();
com.aspose.pdf.RadioButtonField rf = new com.aspose.pdf.RadioButtonField(page);
rf.setPartialName("radio");
pdfdoc.getForm().add(rf, 1);
com.aspose.pdf.RadioButtonOptionField opt1 = new com.aspose.pdf.RadioButtonOptionField();
com.aspose.pdf.RadioButtonOptionField opt2 = new com.aspose.pdf.RadioButtonOptionField();
opt1.setOptionName("Yes");
opt2.setOptionName("No");
opt1.setWidth(15);
opt1.setHeight(15);
opt2.setWidth(15);
opt2.setHeight(15);
rf.add(opt1);
rf.add(opt2);
opt1.setBorder(new com.aspose.pdf.Border(opt1));
opt1.getBorder().setWidth(1);
opt1.getBorder().setStyle(com.aspose.pdf.BorderStyle.Solid);
opt1.getCharacteristics().setBorder(java.awt.Color.BLACK);
opt1.getDefaultAppearance().setTextColor(java.awt.Color.RED);
opt1.setCaption(new com.aspose.pdf.TextFragment("Yes"));
opt2.setBorder(new com.aspose.pdf.Border(opt1));
opt2.getBorder().setWidth(1);
opt2.getBorder().setStyle(com.aspose.pdf.BorderStyle.Solid);
opt2.getCharacteristics().setBorder(java.awt.Color.BLACK);
opt2.getDefaultAppearance().setTextColor(java.awt.Color.RED);
opt2.setCaption(new com.aspose.pdf.TextFragment("No"));
c1.getParagraphs().add(opt1);
c2.getParagraphs().add(opt2);
pdfdoc.save(dataDir + "Fillable_PDF_Form.pdf");

Заповніть, змініть або видаліть поля форми в існуючому PDF за допомогою Java

Ми навчилися створювати новий файл PDF з нуля. Переходимо до сценаріїв обробки існуючих документів PDF:

i) Заповніть поле форми в наявному файлі PDF за допомогою Java

Подібно до того, як ми створили PDF-форму в наведеному вище прикладі, давайте продовжимо роботу з тим же документом і заповнимо поля форми програмним шляхом за допомогою Java. Ви можете заповнити створену форму, виконавши наступні дії:

  1. Завантажити вхідний файл
  2. Заповніть значення в полі TextBox.
  3. Заповніть поля RadioButton, вибравши параметр
  4. Зберегти форму PDF

Наведений нижче фрагмент коду показує, як заповнювати форми, які можна заповнити, за допомогою Java:

// відкритий документ
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document(dataDir + "Fillable_PDF_Form.pdf");

// Отримайте поля
TextBoxField textBoxField1 = (TextBoxField) pdfDocument.getForm().get("nameBox1");
TextBoxField textBoxField2 = (TextBoxField) pdfDocument.getForm().get("Box1");
// Заповнити значення полів форми
textBoxField1.setValue("A quick brown fox jumped over a lazy dog.");
textBoxField2.setValue("A quick brown fox jumped over a lazy dog.");

// Отримати поле радіокнопки
RadioButtonField radioField = (RadioButtonField) pdfDocument.getForm().get("radio");
// Укажіть індекс радіокнопки з групи
radioField.setSelected(1);

dataDir = dataDir + "Fill_PDF_Form_Field.pdf";
// Зберегти оновлений документ
pdfDocument.save(dataDir);

ii) Змініть поле форми в PDF-документі за допомогою Java

Іноді нам потрібно редагувати або оновлювати значення полів у формі PDF. Ви можете легко редагувати форму PDF, яку можна заповнити, виконавши наведені нижче дії.

  1. Ініціалізувати вхідний PDF
  2. Отримати посилання на поле форми за його назвою
  3. Відредагуйте форму PDF
  4. Зберегти відредаговану форму PDF

Наведений нижче фрагмент коду показує, як оновити або відредагувати заповнюваний файл PDF за допомогою Java:

// відкритий документ
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document(dataDir + "Fill_PDF_Form_Field.pdf");
// Отримати поле
TextBoxField textBoxField = (TextBoxField) pdfDocument.getForm().get("nameBox1");
// Змінити значення поля
textBoxField.setValue("Changed Value");
textBoxField.setReadOnly(true);
dataDir = dataDir + "ModifyFormField.pdf";
// Зберегти оновлений документ
pdfDocument.save(dataDir);

iii) Видалення поля форми в існуючому файлі PDF за допомогою Java

Ви можете легко видалити або видалити поле форми у своїх програмах Java. Ви можете виконати наведені нижче дії.

  1. Ініціалізація форми PDF
  2. Видаліть поле форми, використовуючи його назву
  3. Зберегти оновлену форму PDF

Наведений нижче фрагмент коду показує, як видалити поле форми з форми PDF за допомогою Java:

// відкритий документ
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document(dataDir + "Fill_PDF_Form_Field.pdf");
// Видалити певне поле за назвою
pdfDocument.getForm().delete("nameBox1");
dataDir = dataDir + "Delete_Form_Field.pdf";
// Зберегти змінений документ
pdfDocument.save(dataDir);

Зберігайте розширені права на PDF-форми за допомогою Java

Ви можете помітити, що деякі PDF-форми мають розширені права. Вони використовуються, щоб уникнути змін оригінального вмісту, і дозволяється лише заповнення форм. Розширені права PDF-файлів можуть бути порушені, коли

Ви заповнюєте таку форму і зберігаєте її в різних місцях диска. Тому нам потрібно поступово зберігати такі файли, виконавши наведені нижче дії.

  1. Ініціалізація форми PDF
  2. Заповніть поля
  3. Збережіть заповнений документ PDF

Наведений нижче фрагмент коду показує, як зберегти розширені права під час заповнення PDF-форми за допомогою Java:

// Створення екземпляра документа
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document(dataDir + "Fill_PDF_Form_Field.pdf");
// Отримати значення з усіх полів
for (com.aspose.pdf.Field formField : pdfDocument.getForm().getFields())
{
    // Якщо повна назва поля містить nameBox1, виконайте операцію
    if (formField.getFullName().contains("nameBox1"))
    {
        // Перевести поле форми як TextBox
        TextBoxField textBoxField = (TextBoxField) formField;
        // Змінити значення поля
        textBoxField.setValue("Preserve Extended Features");
    }
}
// Збережіть оновлений документ
pdfDocument.save();

Використовуйте JavaScript у формі PDF за допомогою Java

Ви можете заповнювати поля форми PDF, які можна заповнювати, за допомогою Javascript з Aspose.PDF for Java. Ви повинні виконати такі дії:

  1. Завантажити документ PDF
  2. Додайте поле на певному місці сторінки
  3. Налаштувати JavaScript і відкрити дію для документа Зберегти файл PDF

Наступний фрагмент коду показує, як використовувати JavaScript у заповнюваних формах PDF:

com.aspose.pdf.Document pdfdoc = new com.aspose.pdf.Document();
pdfdoc.getPages().add();
TextBoxField textBoxField = new TextBoxField(pdfdoc.getPages().get_Item(1), new com.aspose.pdf.Rectangle(85, 750, 215, 770));
textBoxField.setPartialName("textbox1");
textBoxField.setValue("Text Box");
//TextBoxField.Border = нова межа();
com.aspose.pdf.Border border = new com.aspose.pdf.Border(textBoxField);
border.setWidth(2);
border.setDash(new com.aspose.pdf.Dash(1, 1));
textBoxField.setBorder(border);
textBoxField.getDefaultAppearance().setFontSize(10);
textBoxField.setColor(com.aspose.pdf.Color.fromRgb(java.awt.Color.GREEN));
// Додати поле до документа
pdfdoc.getForm().add(textBoxField, 1);
String JS = "var w = this.getField('" + textBoxField.getPartialName() + "'); var today = new Date(); w.value = today.toLocaleString();";
pdfdoc.setOpenAction(new com.aspose.pdf.JavascriptAction(JS));
pdfdoc.save(dataDir + "JS_Form.pdf");

Висновок

Ми навчилися створювати заповнювані форми PDF, а також заповнювати або редагувати поля форми за допомогою середовища Java. Крім того, ми також досліджували збереження розширених прав у PDF-документах на додаток до використання JavaScript для дії PDF-документа. У разі будь-яких проблем чи проблем зв’яжіться з нами на безкоштовному форумі підтримки.

Дивись також