Carl Smith
Carl Smith
Read 2 minutes

СОЗДАНИЕ ЗАПОЛНЯЕМЫХ ФОРМ В WORD НА JAVA

Заполняемые формы часто используются в PDF-файлах для сбора информации о пользователе. В некоторых случаях вам также может понадобиться создать интерактивные цифровые формы в документах Word, чтобы другие люди могли заполнить эти формы необходимой информацией, прежде чем отправить документ обратно вам. В этой статье мы расскажем, как вставить заполняемые формы в документ Word с помощью библиотеки Free Spire.Doc for Java.

Импорт зависимости JAR (2 метода)

Метод 1: Загрузите Free Spire.Doc for Java и разархивируйте его. Затем добавьте файл Spire.Doc.jar в свой проект в качестве зависимости.

Метод 2: Установите пакет jar через репозиторий Maven, и код для настройки файла pom.xml выглядит следующим образом.

repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e-iceblue.com/nexus/content/groups/public/</url> </repository> </repositories> <dependencies> <dependency> <groupId>e-iceblue</groupId> <artifactId>spire.doc.free</artifactId> <version>5.2.0</version> </dependency> </dependencies>

Образец кода
Free Spire.Doc for Java предлагает метод Paragraph.appendField(String fieldName, com.spire.doc.FieldType fieldType) для вставки заполняемых форм, таких как текстовые поля, флажки и выпадающие списки, в документ Word. Полный пример кода показан ниже.

import com.spire.doc.*;
import com.spire.doc.documents.Paragraph;
import com.spire.doc.documents.ParagraphStyle;
import com.spire.doc.documents.VerticalAlignment;
import com.spire.doc.fields.CheckBoxFormField;
import com.spire.doc.fields.DropDownFormField;
import com.spire.doc.fields.TextFormField;

public class CreateFormFields {

public static void main(String[] args) {

//создать документ Word и добавить раздел
Document doc = new Document();
Section section = doc.addSection();

//добавить таблицу
Table table = section.addTable();
table.resetCells(3,2);

//добавить текст в ячейки первого столбца
Paragraph paragraph = table.getRows().get(0).getCells().get(0).addParagraph();
paragraph.appendText("Текстовое поле формы");
paragraph = table.getRows().get(1).getCells().get(0).addParagraph();
paragraph.appendText("Поле формы с флажком");
paragraph = table.getRows().get(2).getCells().get(0).addParagraph();
paragraph.appendText("Поле выпадающей формы");

//добавить текстовую форму в указанную ячейку
paragraph = table.getRows().get(0).getCells().get(1).addParagraph();
TextFormField textField = (TextFormField) paragraph.appendField("textbox", FieldType.Field_Form_Text_Input);
textField.setTextFieldType(TextFormFieldType.Regular_Text);

//добавить форму с флажком в указанную ячейку
paragraph = table.getRows().get(1).getCells().get(1).addParagraph();
CheckBoxFormField checkboxField = (CheckBoxFormField)paragraph.appendField("checkbox", FieldType.Field_Form_Check_Box);

//добавить форму выпадающего списка в указанную ячейку
paragraph = table.getRows().get(2).getCells().get(1).addParagraph();
DropDownFormField dropdownField = (DropDownFormField)paragraph.appendField("listbox",FieldType.Field_Form_Drop_Down);
dropdownField.getDropDownItems().add("Канада");
dropdownField.getDropDownItems().add("Соединенные Штаты");
dropdownField.getDropDownItems().add("Другое");

//создать объект ParagraphStyle
ParagraphStyle style = new ParagraphStyle(doc);
style.setName("newFont");
style.getCharacterFormat().setFontName("Times New Roman");
style.getCharacterFormat().setFontSize(13);
doc.getStyles().add(style);

for (int i = 0; i < table.getRows().getCount(); i++) {

//установить высоту строки
table.getRows().get(i).setHeight(30f);
for (Object cell:table.getRows().get(i).getCells()){
if (cell instanceof TableCell)
{
//установить вертикальное выравнивание каждой ячейки по центру
((TableCell) cell).getCellFormat().setVerticalAlignment(VerticalAlignment.Middle);

//применить стиль абзаца к каждой ячейке
((TableCell) cell).getParagraphs().get(0).applyStyle(style.getName());
}
}
}

//сохранение в файл
doc.saveToFile("eAddFormFields.docx", FileFormat.Docx_2013);
}
}
Image for post
1 view
Add
More