Java의 Word에서 양식 필드 만들기
이 기사에서는 Free Spire.Doc for Java 라이브러리를 사용하여 Java에서 Word 문서의 텍스트, 확인란 및 드롭다운 양식 필드를 만드는 방법을 소개합니다.
종속성 추가
먼저 Free Spire.Doc for Java를 Java 프로젝트에 포함하는 데 필요한 종속 항목을 추가해야 합니다. 두 가지 방법이 있습니다.
maven을 사용하는 경우 프로젝트의 pom.xml 파일에 다음 코드를 추가해야 합니다.
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>http://repo.e-iceblue.com/nexus/content/groups/public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.doc.free</artifactId>
<version>2.7.3</version>
</dependency>
</dependencies>
Maven이 아닌 프로젝트의 경우 this website에서 무료 Spire.Doc for Java 팩을 다운로드하고 lib 폴더의 Spire.Doc.jar를 종속 항목으로 프로젝트에 추가하십시오.
양식 필드 만들기
무료 Spire.Doc for Java API는 Word에서 양식 필드를 생성하기 위한 Paragraph.appendField 메서드를 제공합니다. 양식 필드를 추가한 후 Document.protect 메서드를 사용하여 문서를 보호하여 사용자가 문서의 양식 필드만 채울 수 있도록 할 수 있습니다. 다음 예에서는 Word 문서에 양식 필드를 추가하고 이 API를 사용하여 문서를 보호하는 방법을 보여줍니다.
import com.spire.doc.*;
import com.spire.doc.documents.*;
import com.spire.doc.fields.CheckBoxFormField;
import com.spire.doc.fields.DropDownFormField;
import com.spire.doc.fields.TextFormField;
import com.spire.doc.fields.TextRange;
import java.awt.*;
public class CreateFormFields {
public static void main(String[] args) throws Exception {
//Create a Document instance
Document doc = new Document();
//Add a section
Section section = doc.addSection();
//Add a title paragraph
Paragraph title = section.addParagraph();
TextRange titleText = title.appendText("Employee Information");
titleText.getCharacterFormat().setFontName("Calibri");
titleText.getCharacterFormat().setFontSize(16f);
title.getFormat().setHorizontalAlignment(HorizontalAlignment.Center);
//Create a table
Table table = section.addTable(true);
table.resetCells(5, 2);
//Merge cells in the first row
table.applyHorizontalMerge(0, 0, 1);
//Set table header
TableRow headerRow = table.getRows().get(0);
headerRow.isHeader(true);
headerRow.getRowFormat().setBackColor(new Color(0x00, 0x71, 0xb6));
headerRow.getCells().get(0).getCellFormat().setVerticalAlignment(VerticalAlignment.Middle);
Paragraph headerParagraph = headerRow.getCells().get(0).addParagraph();
TextRange headerText = headerParagraph.appendText("Personal Information");
headerText.getCharacterFormat().setBold(true);
//Add paragraph to table cell [1,0]
Paragraph paragraph = table.getRows().get(1).getCells().get(0).addParagraph();
TextRange textRange = paragraph.appendText("Full name");
//Add paragraph to table cell [1,1] and append a text form field to the paragraph
paragraph = table.getRows().get(1).getCells().get(1).addParagraph();
TextFormField textForm = (TextFormField)paragraph.appendField("FullName", FieldType.Field_Form_Text_Input);
//Add paragraph to table cell [2,0]
paragraph = table.getRows().get(2).getCells().get(0).addParagraph();
textRange = paragraph.appendText("Age");
//Add paragraph to table cell [2,1] and append a text form field
paragraph = table.getRows().get(2).getCells().get(1).addParagraph();
textForm = (TextFormField)paragraph.appendField("Age", FieldType.Field_Form_Text_Input);
//Add paragraph to table cell [3,0]
paragraph = table.getRows().get(3).getCells().get(0).addParagraph();
textRange = paragraph.appendText("Married");
//Add paragraph to table cell [3,1] and append a check box form field
paragraph = table.getRows().get(3).getCells().get(1).addParagraph();
CheckBoxFormField checkboxForm = (CheckBoxFormField)paragraph.appendField("Married", FieldType.Field_Form_Check_Box);
checkboxForm.setCheckBoxSize(8);
//Add paragraph to table cell [4,0]
paragraph = table.getRows().get(4).getCells().get(0).addParagraph();
textRange = paragraph.appendText("Gender");
//Add paragraph to table cell [4,1] and append a drop down form field
paragraph = table.getRows().get(4).getCells().get(1).addParagraph();
DropDownFormField dropdownField = (DropDownFormField)paragraph.appendField("DropDown",FieldType.Field_Form_Drop_Down);
dropdownField.getDropDownItems().add("Male");
dropdownField.getDropDownItems().add("Female");
for (int i = 0; i < table.getRows().getCount(); i++) {
//Set row height
table.getRows().get(i).setHeight(20f);
for (Object cell:table.getRows().get(i).getCells()){
if (cell instanceof TableCell)
{
//Set cell alignment
((TableCell) cell).getCellFormat().setVerticalAlignment(VerticalAlignment.Middle);
}
}
}
//Set table alignment
table.getTableFormat().setHorizontalAlignment(RowAlignment.Center);
//Protect the document so that users can only fill out the form fields
doc.protect(ProtectionType.Allow_Only_Form_Fields, "password");
//Save the result document
doc.saveToFile("AddFormFields.docx", FileFormat.Docx_2013);
}
}
산출:
Reference
이 문제에 관하여(Java의 Word에서 양식 필드 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/eiceblue/create-form-fields-in-word-in-java-aga텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)