У наш сучасний час багато даних збирається за допомогою форм, і в цьому контексті варто згадати форми 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
- Змініть поле форми в PDF-документі за допомогою Java
- Видалити поле форми в існуючому файлі PDF за допомогою Java
- Зберігайте розширені права на PDF-форми за допомогою Java
- Використовуйте JavaScript у формі PDF за допомогою Java
Створюйте заповнювані форми PDF за допомогою Java
Ви можете створити придатну для заповнення форму PDF у програмах Java, виконавши наведені нижче дії.
- Створіть PDF-файл із порожньою сторінкою
- Додайте на сторінку поля TextBox і RadioButton.
- Збережіть вихідний файл 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. Ви можете заповнити створену форму, виконавши наступні дії:
- Завантажити вхідний файл
- Заповніть значення в полі TextBox.
- Заповніть поля RadioButton, вибравши параметр
- Зберегти форму 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, яку можна заповнити, виконавши наведені нижче дії.
- Ініціалізувати вхідний PDF
- Отримати посилання на поле форми за його назвою
- Відредагуйте форму PDF
- Зберегти відредаговану форму 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. Ви можете виконати наведені нижче дії.
- Ініціалізація форми PDF
- Видаліть поле форми, використовуючи його назву
- Зберегти оновлену форму 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-файлів можуть бути порушені, коли
Ви заповнюєте таку форму і зберігаєте її в різних місцях диска. Тому нам потрібно поступово зберігати такі файли, виконавши наведені нижче дії.
- Ініціалізація форми PDF
- Заповніть поля
- Збережіть заповнений документ 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. Ви повинні виконати такі дії:
- Завантажити документ PDF
- Додайте поле на певному місці сторінки
- Налаштувати 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-документа. У разі будь-яких проблем чи проблем зв’яжіться з нами на безкоштовному форумі підтримки.