您好,登錄后才能下訂單哦!
這篇文章主要講解了“怎么通過Java實現在Word中創建可填充表單”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“怎么通過Java實現在Word中創建可填充表單”吧!
方法1:手動引入。將 Free Spire.Doc for Java 下載到本地,解壓,找到lib文件夾下的Spire.Doc.jar文件。在IDEA中打開如下界面,將本地路徑中的jar文件引入Java程序
方法2: 如果您想通過 Maven安裝,則可以在 pom.xml 文件中添加以下代碼導入 JAR 文件。
<repositories> <repository> <id>com.e-iceblue</id> <url>https://repo.e-iceblue.cn/repository/maven-public/</url> </repository> </repositories> <dependencies> <dependency> <groupId>e-iceblue</groupId> <artifactId>spire.doc.free</artifactId> <version>5.2.0</version> </dependency> </dependencies>
用戶打開下面的生成文檔,只能編輯表格中的窗體,不能修改其他內容。詳細步驟如下:
創建Document對象。
使用 Document.addSection() 方法添加一個節。
使用 Section.addTable() 方法添加表格。
使用 TableCell.addParagraph() 方法將段落添加到特定的表格單元格。
創建 StructureDocumentTagInline 類的實例,并使用 Paragraph.getChildObjects().add() 方法將其作為子對象添加到段落中。
使用 StructureDocumentTagInline 對象的 SDTProperties 屬性和 SDTContent 屬性下的方法指定結構化文檔標記的屬性和內容。結構化文檔標簽的類型可通過 SDTProperties.setSDTType() 方法設置。
使用 Document.protect() 方法防止用戶編輯表單域之外的內容。
使用 Document.saveToFile() 方法保存文檔。
import com.spire.doc.*; import com.spire.doc.documents.*; import com.spire.doc.fields.DocPicture; import com.spire.doc.fields.TextRange; import java.util.Date; public class CreateFillableForm { public static void main(String[] args) { //創建文檔對象 Document doc = new Document(); //添加一個節 Section section = doc.addSection(); //添加一個表格 Table table = section.addTable(true); table.resetCells(7, 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(3).getCells().get(0).addParagraph(); paragraph.appendText("下拉列表內容控件"); paragraph = table.getRows().get(4).getCells().get(0).addParagraph(); paragraph.appendText("復選框內容控件"); paragraph = table.getRows().get(5).getCells().get(0).addParagraph(); paragraph.appendText("組合框內容控件"); paragraph = table.getRows().get(6).getCells().get(0).addParagraph(); paragraph.appendText("日期選擇器內容控件"); //向單元格添加純文本內容控件 (0,1) paragraph = table.getRows().get(0).getCells().get(1).addParagraph(); StructureDocumentTagInline sdt = new StructureDocumentTagInline(doc); paragraph.getChildObjects().add(sdt); sdt.getSDTProperties().setSDTType(SdtType.Text); sdt.getSDTProperties().setAlias("純文本"); sdt.getSDTProperties().setTag("純文本"); sdt.getSDTProperties().isShowingPlaceHolder(true); SdtText text = new SdtText(true); text.isMultiline(false); sdt.getSDTProperties().setControlProperties(text); TextRange tr = new TextRange(doc); tr.setText("單擊或點擊此處輸入文本。"); sdt.getSDTContent().getChildObjects().add(tr); //向單元格添加富文本內容控件 (1,1) paragraph = table.getRows().get(1).getCells().get(1).addParagraph(); sdt = new StructureDocumentTagInline(doc); paragraph.getChildObjects().add(sdt); sdt.getSDTProperties().setSDTType(SdtType.Rich_Text); sdt.getSDTProperties().setAlias("富文本"); sdt.getSDTProperties().setTag("富文本"); sdt.getSDTProperties().isShowingPlaceHolder(true); text = new SdtText(true); text.isMultiline(false); sdt.getSDTProperties().setControlProperties(text); tr = new TextRange(doc); tr.setText("單擊或點擊此處輸入文本。"); sdt.getSDTContent().getChildObjects().add(tr); //向單元格添加圖片內容控件 (2,1) paragraph = table.getRows().get(2).getCells().get(1).addParagraph(); sdt = new StructureDocumentTagInline(doc); paragraph.getChildObjects().add(sdt); sdt.getSDTProperties().setSDTType(SdtType.Picture); sdt.getSDTProperties().setAlias("圖片"); sdt.getSDTProperties().setTag("圖片"); SdtPicture sdtPicture = new SdtPicture(); sdt.getSDTProperties().setControlProperties(sdtPicture); DocPicture pic = new DocPicture(doc); pic.loadImage("圖片2.jpg"); sdt.getSDTContent().getChildObjects().add(pic); //向單元格添加下拉列表內容控件(3,1) paragraph = table.getRows().get(3).getCells().get(1).addParagraph(); sdt = new StructureDocumentTagInline(doc); sdt.getSDTProperties().setSDTType(SdtType.Drop_Down_List); sdt.getSDTProperties().setAlias("下拉列表"); sdt.getSDTProperties().setTag("下拉列表"); paragraph.getChildObjects().add(sdt); SdtDropDownList sddl = new SdtDropDownList(); sddl.getListItems().add(new SdtListItem("選擇一個項目。", "1")); sddl.getListItems().add(new SdtListItem("項目2", "2")); sddl.getListItems().add(new SdtListItem("項目3", "3")); sddl.getListItems().add(new SdtListItem("項目4", "4")); sdt.getSDTProperties().setControlProperties(sddl); tr = new TextRange(doc); tr.setText(sddl.getListItems().get(0).getDisplayText()); sdt.getSDTContent().getChildObjects().add(tr); //向單元格添加兩個復選框內容控件 (4,1) paragraph = table.getRows().get(4).getCells().get(1).addParagraph(); sdt = new StructureDocumentTagInline(doc); paragraph.getChildObjects().add(sdt); sdt.getSDTProperties().setSDTType(SdtType.Check_Box); SdtCheckBox scb = new SdtCheckBox(); sdt.getSDTProperties().setControlProperties(scb); tr = new TextRange(doc); sdt.getChildObjects().add(tr); scb.setChecked(false); paragraph.appendText(" 選項 1"); paragraph = table.getRows().get(4).getCells().get(1).addParagraph(); sdt = new StructureDocumentTagInline(doc); paragraph.getChildObjects().add(sdt); sdt.getSDTProperties().setSDTType(SdtType.Check_Box); scb = new SdtCheckBox(); sdt.getSDTProperties().setControlProperties(scb); tr = new TextRange(doc); sdt.getChildObjects().add(tr); scb.setChecked(false); paragraph.appendText(" 選項 2"); //將組合框內容控件添加到單元格 (5,1) paragraph = table.getRows().get(5).getCells().get(1).addParagraph(); sdt = new StructureDocumentTagInline(doc); paragraph.getChildObjects().add(sdt); sdt.getSDTProperties().setSDTType(SdtType.Combo_Box); sdt.getSDTProperties().setAlias("組合框"); sdt.getSDTProperties().setTag("組合框"); SdtComboBox cb = new SdtComboBox(); cb.getListItems().add(new SdtListItem("選擇一個項目.")); cb.getListItems().add(new SdtListItem("項目 2")); cb.getListItems().add(new SdtListItem("項目 3")); sdt.getSDTProperties().setControlProperties(cb); tr = new TextRange(doc); tr.setText(cb.getListItems().get(0).getDisplayText()); sdt.getSDTContent().getChildObjects().add(tr); //將日期選擇器內容控件添加到單元格(6,1) paragraph = table.getRows().get(6).getCells().get(1).addParagraph(); sdt = new StructureDocumentTagInline(doc); paragraph.getChildObjects().add(sdt); sdt.getSDTProperties().setSDTType(SdtType.Date_Picker); sdt.getSDTProperties().setAlias("日期選擇器"); sdt.getSDTProperties().setTag("日期選擇器"); SdtDate date = new SdtDate(); date.setCalendarType(CalendarType.Default); date.setDateFormat("yyyy.MM.dd"); date.setFullDate(new Date()); sdt.getSDTProperties().setControlProperties(date); tr = new TextRange(doc); tr.setText("單擊或輕按以輸入日期。"); sdt.getSDTContent().getChildObjects().add(tr); //僅允許用戶編輯表單域 doc.protect(ProtectionType.Allow_Only_Form_Fields, "permission-psd"); //保存結果文檔 doc.saveToFile("WordForm.docx", FileFormat.Docx_2013); } }
感謝各位的閱讀,以上就是“怎么通過Java實現在Word中創建可填充表單”的內容了,經過本文的學習后,相信大家對怎么通過Java實現在Word中創建可填充表單這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。