Java 添加Word形状或图形

2022-10-12,,,,

本文将介绍通过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();
    }
}

形状添加效果:

 

(本文完)

 

《Java 添加Word形状或图形.doc》

下载本文的Word格式文档,以方便收藏与打印。