`

Java 在Word中添加多行水印效果(文本、图片水印)

阅读更多

Word中设置水印效果时,不论是文本水印或者是图片水印都只能添加单个文字或者图片到Word页面,效果比较单一,本文通过Java代码示例介绍如何在页面中添加多行水印效果,即水印效果以多行文字排列或者以多个图片平铺到页面。

思路及方法:获取Word页眉,添加形状(在形状中添加文字)或者图片到页眉段落,并复制形状或图片。

程序环境:使用spire.doc.jar,版本:免费版3.9.0

 

Java代码:

1. 添加多行文字水印效果

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

 

2. 添加多行图片水印

import com.spire.doc.*;
import com.spire.doc.documents.Paragraph;
import com.spire.doc.documents.TextWrappingStyle;
import com.spire.doc.fields.DocPicture;

public class ImageWatermark {
    public static void main(String[] args) {
        //加载Word文档
        Document doc=new Document();
        doc.loadFromFile("input.docx");

        //加载图片
        DocPicture picture = new DocPicture(doc);
        picture.loadImage("logo.png");
        picture.setTextWrappingStyle(TextWrappingStyle.Behind);//设置图片环绕方式

        //遍历所有section
        for (int n = 0; n < doc.getSections().getCount(); n++) {
            Section section = doc.getSections().get(n);

            //获取section的页眉
            HeaderFooter header = section.getHeadersFooters().getHeader();

            Paragraph paragrapg1;
            //获取或添加段落
            if(header.getParagraphs().getCount()>0)
            {
                paragrapg1 = header.getParagraphs().get(0);
            }
            else
                {
                    paragrapg1 = header.addParagraph();
                }

            //复制图片,并添加图片到段落
            for (int p = 0; p < 4; p++) {
                for (int q = 0; q < 3; q++) {
                    picture = (DocPicture)picture.deepClone();
                    picture.setVerticalPosition(50 + 150 * p);
                    picture.setHorizontalPosition(10 + 140 * q);
                    paragrapg1.getChildObjects().add(picture);
                }
            }
        }

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

 

 

 

0
1
分享到:
评论

相关推荐

    java Jacob完美实现word添加图片水印(内附源码及jar包)

    java Jacob完美实现word添加图片水印(内附源码及jar包)。 公司最近让搞Word文档添加水印,所有下载的文档需要添加公司印章,搞了好多天才实现,利用Jacob完美实现word添加图片水印(注意需要把dll文件放到jdk的bin...

    Java 实现word文件增加图片水印 jacob实现 用到的jar

    在处理文档操作时,Java提供了一些库来实现高级功能,比如在Word文档中添加图片水印。本篇将深入探讨如何使用Java和两个特定的库——iTextPDF与Jacob——来实现这一目标。 首先,iTextPDF是一个开源的Java库,专门...

    java为多种文档(word ppt pdf excel)添加文本水印

    在Java开发中,有时我们需要对各种类型的文档进行保护或标识,这时添加文本水印是一种有效的方法。本教程将详细介绍如何使用Free Spire.Office for Java库为Word、PPT和PDF文档添加文本水印,以及如何利用Apache POI...

    java操作wordpdf图片生成图片水印

    在Word中,图片是作为形状对象存在;而在PDF中,图片是页面内容的一部分。 5. **保存与合并**:完成水印添加后,需要将修改保存回原文件或创建新文件。对于Word,使用Apache POI的`save()`方法;对于PDF,使用...

    java实现图片上传并添加水印效果(文字水印,蒙版,logo图片),自动进行文字大小行数位置匹配 ,文字自动换行

    在Java编程中,实现图片上传并添加水印效果是一项常见的任务,这通常涉及到图像处理、图形用户界面(GUI)和文件I/O等多个方面。在这个项目中,我们将关注以下几个关键知识点: 1. **Java图像处理库**:Java标准库...

    PHP给pdf添加多行水印+PHP,pdf+PHP添加水印

    通过设置` `标签换行,以及调整CSS样式(如`text-align`、`font-size`、`line-height`等),可以实现多行文本水印。 4. **实例代码**: ```php require_once __DIR__ . '/vendor/autoload.php'; $mpdf = new ...

    java中处理图片水印

    `Graphics2D`是Java 2D API的一部分,它提供了丰富的功能,可以用来在图像上添加文本、图像等元素,实现水印效果。下面我们将深入探讨如何使用`Graphics2D`处理图片水印。 1. **Java 2D API** Java 2D API 是Java...

    java给图片添加水印

    在Java编程语言中,给图片添加水印是一项常见的任务,特别是在网站开发中,为了保护版权或者标识来源,经常需要在用户上传的图片上添加特定的文字或图像水印。以下将详细讲解如何使用Java来实现这一功能。 首先,...

    给word加入水印图片盖章

    如果这是一个HTML文件,你可以通过浏览器打开,查看其中可能存在的关于如何在Word中添加水印和图片盖章的额外信息或者资源。 总的来说,给Word文档添加水印和图片盖章是一项实用的功能,通过上述步骤,你可以轻松地...

    java给word文档插入水印并设置保护密码

    在Word中,水印通常是半透明的文本或图像,显示在文档的背景上。使用JACOB,我们可以这样实现: ```java import com.jacob.activeX.ActiveXComponent; import com.jacob.com.Dispatch; public class ...

    基于Java给图片添加文字或图片水印

    在Java编程环境中,给图片添加文字或图片水印是一项常见的图像处理任务,广泛应用于版权保护、品牌宣传等领域。本项目“基于Java给图片添加文字或图片水印”旨在教授如何利用Java实现这一功能,适用于大学生的课程...

    java 图片添加水印

    java 图片添加水印 图片叠加文字类 图片生成方法,如果需要在已有的图片叠加文字

    采用java实现图片水印

    在Java中,一个简单的水印添加示例代码可能如下: ```java import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; public class WaterMarkExample { ...

    Android-andriod加文字水印支持配置文字大小倾斜角度多行水印

    在Android应用开发中,添加文字水印是一项常见的需求,特别是在处理图像时,为了保护版权或者增加标识信息。本文将深入探讨如何在Android中实现自定义的文字水印功能,支持配置文字大小、倾斜角度以及多行水印。我们...

    word转pdf加水印demo.zip

    接着,将水印添加到文档的每个段落中,确保它出现在每一页上。最后,使用`save`方法将修改后的文档保存为“output.pdf”。 值得注意的是,Aspose.Words库提供了丰富的API,可以自定义水印的样式和位置,以及转换时...

    JAVA实现给图片增加图片水印或者文字水印-依赖包

    在Java编程中,给图片添加水印是一项常见的需求,无论是为了版权保护还是视觉美化。水印可以是图片形式,也可以是文字形式。本教程将详细讲解如何使用Java来实现这一功能,重点在于介绍所需的依赖包。 首先,我们...

    Java通过POI和JXL给Excel动态添加水印

    // 将水印添加到工作表上的逻辑 // ... } } ``` #### 总结 通过以上步骤,我们可以实现在Java程序中使用JXL和POI库给Excel文件添加动态水印的功能。这种技术不仅适用于企业内部的文档管理,还可以用于任何需要...

    水印 java Graphics2D实现文字图片水印

    在Java编程语言中,添加文字或图片水印是一项常见的任务,尤其在处理图像处理和多媒体应用时。Graphics2D是Java 2D API的一部分,它提供了丰富的绘图和图形操作功能,包括添加水印到图像。下面将详细介绍如何使用...

    一键给Word中的图片添加水印

    在本教程中,我们将详细介绍如何一键给Word中的图片添加水印,特别关注docx格式的Word文档(2007及以后版本)。 首先,我们需要理解什么是水印。水印是图像处理中的一种技术,用于在图片上添加半透明的文字或图形,...

    java 水印(水印适应图片大小,但个别图片太小不支持)

    在Java编程中,添加水印是一项常见的图像处理任务,它涉及到图像处理库的使用和算法设计。本知识点主要探讨如何在Java中实现自适应图片大小的水印功能,以及遇到图片过小时的处理策略。 首先,我们需要理解水印的...

Global site tag (gtag.js) - Google Analytics