文档控件_Java 给Word文档添加内容控件

内容控件在Word文档中充当着特定内容的容器,不同的内容控件可以指定不同的内容类型(例如日期、图片或文本等)以及能否编辑此内容。根据内容类型不同具体可分为:组合框内容控件、复选框内容控件、文本内容控件、图片内容控件、日期选取器内容控件、下拉列表内容控件等。本文就将通过使用Java程序来演示如何给Word文档添加以上六种内容控件类型。

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

Jar文件获取及导入:

方法1:通过E-iceblue中文官网下载获取jar包。解压后将lib文件夹下的Spire.Doc.jar文件导入Java程序。(如下图)

91884f35daabb98a103ffc0f4da54e62.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:甥敳獲Test1Desktoplogo.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);    }}

添加效果:

46ea95b161e31d7a454fe465745f8bb6.png

(本文完)


版权声明:本文为weixin_29189381原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。