Заполнить форму 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);

//Добавить 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. Вы можете заполнить созданную форму, выполнив следующие шаги:

  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 для 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. В случае возникновения каких-либо вопросов или проблем обращайтесь к нам на Форум бесплатной поддержки.

Смотрите также