Java 給Word文檔添加內容控件

內容控件在Word文檔中充當着特定內容的容器,不一樣的內容控件能夠指定不一樣的內容類型(例如日期、圖片或文本等)以及可否編輯此內容。根據內容類型不一樣具體可分爲:組合框內容控件、複選框內容控件、文本內容控件、圖片內容控件、日期選取器內容控件、下拉列表內容控件等。本文就將經過使用Java程序來演示如何給Word文檔添加以上六種內容控件類型。java

使用工具:Free Spire.Doc for Java(免費版)

Jar文件獲取及導入:

方法1:經過E-iceblue中文官網下載獲取jar包。解壓後將lib文件夾下的Spire.Doc.jar文件導入Java程序。(以下圖)maven

安裝圖.png

方法2:經過maven倉庫安裝導入。具體安裝教程參見E-iceblue中文官網。工具

代碼示例

import com.spire.doc.*;
import com.spire.doc.documents.*;
import com.spire.doc.fields.*;
import java.util.Date;

public class ContentControls {
    public static void main(String[] args) {
        //建立一個新的Word文檔
        Document document = new Document();
        //添加一個section到文檔
        Section section = document.addSection();
        //添加一個段落到section
        Paragraph paragraph = section.addParagraph();

        //添加組合框內容控件
        paragraph = section.addParagraph();
        StructureDocumentTagInline sd = new StructureDocumentTagInline(document);
        paragraph.getChildObjects().add(sd);
        sd.getSDTProperties().setSDTType(SdtType.Combo_Box);
        //爲控件設置標題和標籤
        sd.getSDTProperties().setAlias("組合框");
        sd.getSDTProperties().setTag("組合框");
        //添加選項
        SdtComboBox cb = new SdtComboBox();
        cb.getListItems().add(new SdtListItem("中國 1"));
        cb.getListItems().add(new SdtListItem("意大利 2"));
        cb.getListItems().add(new SdtListItem("日本 3"));
        sd.getSDTProperties().setControlProperties(cb);
        //添加顯示文本
        TextRange rt = new TextRange(document);
        rt.setText(cb.getListItems().get(2).getDisplayText());
        sd.getSDTContent().getChildObjects().add(rt);
        section.addParagraph();

        //添加複選框內容控件
        paragraph = section.addParagraph();
        sd = new StructureDocumentTagInline(document);
        paragraph.getChildObjects().add(sd);
        sd.getSDTProperties().setSDTType(SdtType.Check_Box);
        //爲控件設置標題和標籤
        sd.getSDTProperties().setAlias("複選框");
        sd.getSDTProperties().setTag("複選框");
        SdtCheckBox scb = new SdtCheckBox();
        sd.getSDTProperties().setControlProperties(scb);
        rt = new TextRange(document);
        sd.getChildObjects().add(rt);
        scb.setChecked(true);
        section.addParagraph();

        //添加文本內容控件
        paragraph = section.addParagraph();
        sd = new StructureDocumentTagInline(document);
        paragraph.getChildObjects().add(sd);
        sd.getSDTProperties().setSDTType(SdtType.Text);
        //爲控件設置標題和標籤
        sd.getSDTProperties().setAlias("文本");
        sd.getSDTProperties().setTag("文本");
        //設置顯示文本
        SdtText text = new SdtText(true);
        text.isMultiline(true);
        sd.getSDTProperties().setControlProperties(text);
        rt = new TextRange(document);
        rt.setText("此處只能輸入文本");
        sd.getSDTContent().getChildObjects().add(rt);
        section.addParagraph();

        //添加圖片內容控件
        paragraph = section.addParagraph();
        sd = new StructureDocumentTagInline(document);
        paragraph.getChildObjects().add(sd);
        sd.getSDTProperties().setControlProperties(new SdtPicture());
        //爲控件設置標題和標籤
        sd.getSDTProperties().setAlias("圖片");
        sd.getSDTProperties().setTag("圖片");
        //添加圖片
        DocPicture pic = new DocPicture(document);
        pic.setWidth(10f);
        pic.setHeight(10f);
        pic.loadImage("C:\\Users\\Test1\\Desktop\\logo.png");
        sd.getSDTContent().getChildObjects().add(pic);
        section.addParagraph();

        //添加日期選取器內容控件
        paragraph = section.addParagraph();
        sd = new StructureDocumentTagInline(document);
        paragraph.getChildObjects().add(sd);
        sd.getSDTProperties().setSDTType(SdtType.Date_Picker);
        //爲控件設置標題和標籤
        sd.getSDTProperties().setAlias("日期");
        sd.getSDTProperties().setTag("日期");
        //設置日曆模式
        SdtDate date = new SdtDate();
        date.setCalendarType(CalendarType.Default);
        date.setDateFormat("yyyy.MM.dd");
        date.setFullDate(new Date());
        sd.getSDTProperties().setControlProperties(date);
        //設置顯示日期
        rt = new TextRange(document);
        rt.setText("2020.04.24");
        sd.getSDTContent().getChildObjects().add(rt);
        section.addParagraph();

        //添加下拉列表內容控件
        paragraph = section.addParagraph();
        sd = new StructureDocumentTagInline(document);
        paragraph.getChildObjects().add(sd);
        sd.getSDTProperties().setSDTType(SdtType.Drop_Down_List);
        //爲控件設置標題和標籤
        sd.getSDTProperties().setAlias("下拉列表");
        sd.getSDTProperties().setTag("下拉列表");
        //添加下拉選項
        SdtDropDownList sddl = new SdtDropDownList();
        sddl.getListItems().add(new SdtListItem("男 1"));
        sddl.getListItems().add(new SdtListItem("女 2"));
        sd.getSDTProperties().setControlProperties(sddl);
        //設置控件顯示的初始選項
        rt = new TextRange(document);
        rt.setText(sddl.getListItems().get(0).getDisplayText());
        sd.getSDTContent().getChildObjects().add(rt);

        //保存文檔
        document.saveToFile("output/addContentControls.docx", FileFormat.Docx_2013);
    }
}

添加效果:spa

效果1.png

(本文完)code

相關文章
相關標籤/搜索