Java 在Word中添加内容控件

2025-10-19 09:24:35

1、方法1:通过eiceblue官网下载jar文件包。下载后,解压文件,并将lib文件夹下的Spire.Doc.jar文件导入java程序。参考如下导入效果:

Java 在Word中添加内容控件

2、方法2:可通过maven仓库导入。

1、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 AddStructureDocumentTagInline {

    public static void main(String[]args){

        //创建Word文档

        Document document = new Document();

        Section section = document.addSection();

        Paragraph paragraph = section.addParagraph();

        TextRange txtRange = paragraph.appendText("如何给Word文档添加内容控件:");

        section.addParagraph();

        //添加组合框内容控件

        paragraph = section.addParagraph();

        txtRange = paragraph.appendText("组合框内容控件:");

        txtRange.getCharacterFormat().setItalic(true);

        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("中国"));

        cb.getListItems().add(new SdtListItem("日本"));

        cb.getListItems().add(new SdtListItem("澳大利亚"));

        sd.getSDTProperties().setControlProperties(cb);

        TextRange rt = new TextRange(document);

        rt.setText(cb.getListItems().get(0).getDisplayText());

        sd.getSDTContent().getChildObjects().add(rt);

        section.addParagraph();

        //添加复选框内容控件

        paragraph = section.addParagraph();

        txtRange = paragraph.appendText("复选框内容控件:  ");

        txtRange.getCharacterFormat().setItalic(true);

        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();

        txtRange = paragraph.appendText("文本内容控件:  ");

        txtRange.getCharacterFormat().setItalic(true);

        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();

        txtRange = paragraph.appendText("图片内容控件:  ");

        txtRange.getCharacterFormat().setItalic(true);

        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("1.png");

        sd.getSDTContent().getChildObjects().add(pic);

        section.addParagraph();

        //添加日期选取器内容控件

        paragraph = section.addParagraph();

        txtRange = paragraph.appendText("日期选取器内容控件:  ");

        txtRange.getCharacterFormat().setItalic(true);

        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("2018.12.25");

        sd.getSDTContent().getChildObjects().add(rt);

        section.addParagraph();

        //添加下拉列表内容控件

        paragraph = section.addParagraph();

        txtRange = paragraph.appendText("下拉列表内容控件:");

        txtRange.getCharacterFormat().setItalic(true);

        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("addContentControls1.docx", FileFormat.Docx_2013);

        document.dispose();

    }

}

2、内容控件添加效果:

Java 在Word中添加内容控件

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢