Carl Smith
СОЗДАНИЕ ЗАПОЛНЯЕМЫХ ФОРМ В 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);
}
}