sunny123456

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

Java: 为Word文档添加水印
原文链接:https://www.cnblogs.com/Gia-/p/16617148.html

Java: Word文档添加水印

添加水印是文档操作中一个非常实用的功能,通过给文档添加指定文字或图片水印既可以标识文档的状态,也可以维护文档版权,丰富其外观。在这篇文章中,我将从以下四个板块介绍如何使用Free Spire.Doc for Java为Word文档添加水印。

 

 

安装Spire.Doc.Jar

方法一:

如果您使用的是 maven,可以通过添加以下代码到项目的 pom.xml 文件中,将 JAR 文件导入到应用程序中。

复制代码
<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <url>https://repo.e-iceblue.cn/repository/maven-public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.doc.free</artifactId>
        <version>5.2.0</version>
    </dependency>
</dependencies>
复制代码

 

方法二:

如果您没有使用 maven,则可以从下载Free Spire.Doc for Java,下载完成后,将下载包进行解压;然后在IDEA中创建一个新项目,依次点击“文件”(File),“项目结构”(Project Structure),“组件”(Modules),“依赖项”(Dependencies),再点击右方绿色“+”下的第一个选项“JAR文件或路径”(JARs or Directories),找到之前解压好的文件,并将其中的lib文件夹下的Spire.Doc.jar文件导入到项目中。

 

Word文档添加文本水印

 

  • 创建一个Document实例,并使用 Document.loadFromFile()方法加载一个Word示例文档。
  • 使用 Document.getSections().get()方法获取第一节。
  • 创建TextWatermark实例。
  • 使用 TextWatermark 类提供的方法设置文本水印的文本、字体大小、颜色和布局。
  • 使用 Section.getDocument().setWatermark() 方法将文本水印添加到示例文档。
  • 使用 Document.saveToFile()方法将文档保存到另一个文件。

 

复制代码
import com.spire.doc.*;
import com.spire.doc.documents.WatermarkLayout;
import java.awt.*;
public class Textwatermark {
    public static void main(String[] args) throws Exception {
        //创建一个Document实例

        Document document = new Document();
        //加载一个Word示例文档

        document.loadFromFile("sample.docx");
        //获取第一节

        Section section = document.getSections().get(0);
        //创建TextWatermark实例

        TextWatermark txtWatermark = new TextWatermark();
        //设置文本水印格式

        txtWatermark.setText("请勿复制");
        txtWatermark.setFontSize(40);
        txtWatermark.setColor(Color.red);
        txtWatermark.setLayout(WatermarkLayout.Diagonal);
        //将文本水印添加到示例文档

        section.getDocument().setWatermark(txtWatermark);
        //将文档保存到另一个文件

        document.saveToFile("SingleWatermark.docx", FileFormat.Docx);
    }
}
复制代码

 

 

Word文档添加多行文本水印

  • 创建一个Document实例,并使用 Document.loadFromFile()方法加载一个示例 Word 文档。
  • 使用 ShapeObject 确定艺术字形状,并设置其大小和样式。
  • 通过 HeaderFooter 类获取该节的页眉,然后使用 header.addParagraph()方法将段落添加到页眉中。
  • 复制艺术字形状,并使用 paragraph.getChildObjects().add(shape) 方法将其添加到多个位置。
  • 使用 Document.saveToFile()方法将文档保存到另一个文件。
复制代码
import com.spire.doc.Document;
import com.spire.doc.FileFormat;
import com.spire.doc.HeaderFooter;
import com.spire.doc.Section;
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 MultipleTextwatermarks {
    public static void main(String[] args) throws Exception {
        //加载一个Word示例文档

        Document document = new Document();
        document.loadFromFile("sample.docx");
        //添加艺术字形状并设置其大小

        ShapeObject shape = new ShapeObject(document, ShapeType.Text_Plain_Text);
        shape.setWidth(60);
        shape.setHeight(20);
        //设置图案文本,位置和样式

        shape.setVerticalPosition(40);
        shape.setHorizontalPosition(20);
        shape.setRotation(315);
        shape.getWordArt().setText("请勿复制");
        shape.setFillColor(Color.red);
        shape.setLineStyle(ShapeLineStyle.Single);
        shape.setStrokeColor(new Color(245, 192, 192, 255));
        shape.setStrokeWeight(1);
        Section section;
        HeaderFooter header;
        for (int n = 0; n < document.getSections().getCount(); n++) {
            section = document.getSections().get(n);
            //获取该节的页眉

            header = section.getHeadersFooters().getHeader();
            Paragraph paragraph;
            for (int i = 0; i < 5; i++) {
                //添加段落到页眉中

                paragraph = header.addParagraph();
                for (int j = 0; j < 4; j++) {
                    //复制艺术字形状并其添加到多个位置

                    shape = (ShapeObject) shape.deepClone();
                    shape.setVerticalPosition(50 + 150 * i);
                    shape.setHorizontalPosition(20 + 160 * j);
                    paragraph.getChildObjects().add(shape);
                }
            }
        }
        //将文档保存到另一个文件

        document.saveToFile("Multiplewatermarks.docx", FileFormat.Docx_2013);
    }
}
复制代码

 

Word文档添加片水印

  • 创建一个Document实例,并使用 Document.loadFromFile()方法加载一个Word示例文档。
  • 创建PictureWatermark实例。
  • 使用PictureWatermark.setPicture()方法加载图像作为图片水印,然后设置图片样式。
  • 使用Document.setWatermark()方法将图片水印添加到示例文档。
  • 使用Document.saveToFile()方法将文档保存到另一个文件。

 

复制代码
import com.spire.doc.*;
public class ImageWatermark {
       public static void main(String[] args){
           //创建一个 Document 实例

           Document document = new Document();
           //加载一个Word示例文档

           document.loadFromFile("sample.docx");
           //创建PictureWatermark实例

           PictureWatermark picture = new PictureWatermark();
           //设置图片格式

           picture.setPicture("logo.png");
           picture.setScaling(150);
           picture.isWashout(false);
           //将图片水印添加到示例文档

           document.setWatermark(picture);
           //保存结果文档

       document.saveToFile("SingleImagewatermark.docx",FileFormat.Docx );
       }
}
复制代码

 

Word文档添加多行片水印

 

  • 创建一个Document实例,并使用 Document.loadFromFile()方法加载一个示例 Word 文档。
  • 使用DocPicture.loadImage()方法加载图像。
  • 使用picture.setTextWrappingStyle()方法设置图片的文本环绕样式。
  • 通过HeaderFooter类获取该节的页眉,然后使用header.addParagraph()方法将段落添加到页眉中。
  • 复制图片并使用paragraph.getChildObjects().add(image)方法将其添加到多个位置。
  • 使用Document.saveToFile()方法将文档保存到另一个文件。

 

复制代码
import com.spire.doc.Document;
import com.spire.doc.FileFormat;
import com.spire.doc.HeaderFooter;
import com.spire.doc.Section;
import com.spire.doc.documents.Paragraph;
import com.spire.doc.documents.TextWrappingStyle;
import com.spire.doc.fields.DocPicture;
public class MultipleImageWatermarks {
       public static void main(String[] args){
           //创建一个 Document 实例

           Document document = new Document();
           //加载一个Word示例文档

           document.loadFromFile("sample.docx");
           //加载图片

           DocPicture picture = new DocPicture(document);
           picture.loadImage("logo.png");
           //设置文本环绕样式

           picture.setTextWrappingStyle(TextWrappingStyle.Behind);
           for (int n = 0; n < document.getSections().getCount(); n++) {
               Section section = document.getSections().get(n);
               //获取该节的页眉

               HeaderFooter header = section.getHeadersFooters().getHeader();
               Paragraph paragraph;
               if(header.getParagraphs().getCount()>0){
                   paragraph=header.getParagraphs().get(0);
               }else {
               </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">添加段落到页眉中</span>
paragraph = header.addParagraph(); } for (int p = 0; p < 5; p++) { for (int q = 0; q < 4; q++) { //复制图片并添加到多个位置 picture = (DocPicture)picture.deepClone(); picture.setVerticalPosition(100 + 200 * p); picture.setHorizontalPosition(50 + 210 * q); paragraph.getChildObjects().add(picture); } } } //保存结果文档 document.saveToFile("MultipleImagewatermarks.docx",FileFormat.Docx ); } }
复制代码

 

 

posted on 2023-04-12 19:43  sunny123456  阅读(852)  评论(0编辑  收藏  举报