欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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程序。参考如下导入效果:

Java 添加Word形状或图形

方法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形状或图形

 

(本文完)