美文网首页Java
Java 给Word文档添加内容控件

Java 给Word文档添加内容控件

作者: Tina_Tang | 来源:发表于2020-04-26 11:28 被阅读0次

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

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

Jar文件获取及导入:

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

方法2通过maven仓库安装导入。具体安装详情参见此网页

代码示例

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

}

}

添加效果:

(本文完)

相关文章

网友评论

    本文标题:Java 给Word文档添加内容控件

    本文链接:https://www.haomeiwen.com/subject/njddwhtx.html