Java 在Word中设置多行文本水印

时间:2020-09-17 12:43:20   收藏:0   阅读:43
在Word设置水印时,通常设置文本字样的水印只能在页面中设置一个水印字样,若需要在Word中设置平铺水印效果,可以参考以下方法。
使用工具:Free Spire.Doc for Java(免费版)
Jar下载及导入:

  1. 手动下载导入,解压下载后的jar包,将lib文件夹下的Spire.Doc.jar文件导入java程序;
  2. 创建Maven程序时,在pom.xml中配置maven仓库路径并指定Free Spire.Doc for Java的依赖,如下:
<repositories>
        <repository>
            <id>com.e-iceblue</id>
            <url>http://repo.e-iceblue.cn/repository/maven-public/</url>
        </repository>
    </repositories>
<dependencies>
    <dependency>
        <groupId> e-iceblue </groupId>
        <artifactId>spire.doc.free</artifactId>
        <version>2.7.3</version>
    </dependency>
</dependencies>

Jar导入结果:
技术图片

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.fields.ShapeObject;

import java.awt.*;

public class TextWatermark {
    public static void main(String[] args) {
        //加载示例文档
        Document doc = new Document();
        doc.loadFromFile("sample.docx");

        //添加艺术字并设置大小
        ShapeObject shape = new ShapeObject(doc, ShapeType.Text_Plain_Text);
        shape.setWidth(60);
        shape.setHeight(20);
        //设置艺术字文本内容、位置及样式(即文本水印字样)
        shape.setVerticalPosition(30);
        shape.setHorizontalPosition(20);
        shape.setRotation(315);
        shape.getWordArt().setText("内部使用");
        shape.setFillColor(Color.red);
        shape.setLineStyle(ShapeLineStyle.Single);
        shape.setStrokeColor(new Color(192, 192, 192, 255));
        shape.setStrokeWeight(1);

        Section section;
        HeaderFooter header;
        for (int n = 0; n < doc.getSections().getCount(); n++) {
            section = doc.getSections().get(n);
            //获取页眉
            header = section.getHeadersFooters().getHeader();
            Paragraph paragraph1;
            for (int i = 0; i < 4; i++) {
                //添加4个段落到页眉
                paragraph1 = header.addParagraph();
                for (int j = 0; j < 3; j++) {
                    //复制艺术字并设置多行多列位置
                    shape = (ShapeObject) shape.deepClone();
                    shape.setVerticalPosition(50 + 200 * i);
                    shape.setHorizontalPosition(20 + 160 * j);
                    paragraph1.getChildObjects().add(shape);
                }
            }
        }

        //保存文档
        doc.saveToFile("result.docx", FileFormat.Docx_2013);
        doc.dispose();
    }
}

水印添加效果:
技术图片

(完)

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!