Java 添加Word形状或图形
程序员文章站
2022-07-02 12:42:00
本文将介绍通过java编程在Word文档中添加形状(图形),包括添加单个图形、组合图形,以及格式化图形样式,如设置形状填充色、大小、位置、边框样式、边框颜色、边框粗细、图形旋转角度、图形文本环绕方式等。 使用工具:Free Spire.Doc for Java(免费版) Jar获取及导入 方法1:通 ......
本文将介绍通过java编程在word文档中添加形状(图形),包括添加单个图形、组合图形,以及格式化图形样式,如设置形状填充色、大小、位置、边框样式、边框颜色、边框粗细、图形旋转角度、图形文本环绕方式等。
使用工具:free spire.doc for java(免费版)
jar获取及导入
方法1:通过官网下载jar包。下载后,解压文件,并将lib文件夹下的spire.doc.jar文件导入到java程序。参考如下导入效果:
方法2:可通过仓库安装导入。
java代码示例
import com.spire.doc.*; import com.spire.doc.documents.paragraph; import com.spire.doc.documents.shapelinestyle; import com.spire.doc.documents.shapetype; import com.spire.doc.documents.textwrappingstyle; import com.spire.doc.fields.shapegroup; import com.spire.doc.fields.shapeobject; import java.awt.*; public class drawshape { public static void main(string[]args){ //创建文档,添加段落 document doc = new document(); paragraph para = doc.addsection().addparagraph(); //添加指定大小的矩形到文档中的指定位置 shapeobject rectangle = para.appendshape(60,60, shapetype.rectangle); rectangle.setfillcolor(color.magenta); rectangle.setstrokecolor(color.green); rectangle.setstrokeweight(5); rectangle.setlinestyle(shapelinestyle.double); rectangle.setverticalposition(50); rectangle.sethorizontalposition(70); rectangle.setrotation(10); rectangle.setalternativetext("矩形"); //添加三角形 shapeobject triangle = para.appendshape(60,60,shapetype.triangle); triangle.setstrokecolor(color.pink); triangle.setfillcolor(color.orange); triangle.setverticalposition(50); triangle.sethorizontalposition(170); triangle.setrotation(-30); triangle.settextwrappingstyle(textwrappingstyle.through); //添加圆形 shapeobject circle = para.appendshape(60,60, shapetype.ellipse); circle.setfillcolor(color.cyan); circle.setstrokeweight(7); circle.setstrokecolor(color.blue); circle.setverticalposition(50); circle.sethorizontalposition(270); //添加波浪图形 shapeobject wave = para.appendshape(80,60, shapetype.double_wave); wave.setfillcolor(new color(255,228,196)); wave.setstrokeweight(3); wave.setstrokecolor(color.orange); wave.setverticalposition(50); wave.sethorizontalposition(370); //添加图形组合到段落,指定其大小和水平位置 shapegroup shapegroup = para.appendshapegroup(200, 150); shapegroup.sethorizontalposition(150); shapegroup.setverticalposition(150); //计算缩放比率 float x = (shapegroup.getwidth() / 1000.0f); float y = (shapegroup.getheight() / 1000.0f); //创建一个圆形 shapeobject circle_1 = new shapeobject(doc, shapetype.ellipse); circle_1.setwidth(80 / x); circle_1.setheight(80 / y); circle_1.setfillcolor(new color(144,238,144)); circle_1.setstrokecolor(new color(144,238,144)); circle_1.sethorizontalposition(60 / x);//设置其相对于图形组合的水平位置 //将圆形添加到图形组合 shapegroup.getchildobjects().add(circle_1); //添加另外两个圆形到图形组合 shapeobject circle_2 = new shapeobject(doc, shapetype.ellipse); circle_2.setwidth(80 / x); circle_2.setheight(80 / y); circle_2.setfillcolor(new color(255,192,203)); circle_2.setstrokecolor(new color(255,192,203)); circle_2.sethorizontalposition(30 / x); circle_2.setverticalposition(50 / y); shapegroup.getchildobjects().add(circle_2); shapeobject circle_3 = new shapeobject(doc, shapetype.ellipse); circle_3.setwidth(80 / x); circle_3.setheight(80 / y); circle_3.setfillcolor(new color(255,239,213)); circle_3.setstrokecolor(new color(255,239,213)); circle_3.sethorizontalposition(90 / x); circle_3.setverticalposition(50 / y); shapegroup.getchildobjects().add(circle_3); //保存文档 doc.savetofile("addshape.docx",fileformat.docx_2013); doc.dispose(); } }
形状添加效果:
(本文完)