В наше время большое количество данных собирается с помощью форм, и в этом контексте стоит упомянуть заполняемые 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);
//Добавить Radiobuttons в определенные координаты положения в 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 для 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. В случае возникновения каких-либо вопросов или проблем обращайтесь к нам на Форум бесплатной поддержки.