如何通過Java程式碼給Word文檔添加水印?
- 2022 年 11 月 16 日
- 筆記
- JAVA, Spire. Doc for Java, Word, 添加水印
Word中可以為文檔添加的水印分為兩種形式:文字水印和圖片水印。水印是一種數字保護的手段,在文檔上添加水印可以傳達有用資訊,或者在不影響正文文字顯示效果的同時,為列印文檔增添視覺趣味,能起到傳遞資訊,宣傳推廣的作用。此外,它還能起到提示文檔性質以及進行相關說明的作用。那麼我們如何給Word文檔添加水印呢?本文將通過Java程式碼,以編程的方式給Word文檔添加水印。以下是具體步驟及方法,並附上Java程式碼供大家參考,希望這篇文章能對大家有所裨益。
- 給Word文檔添加多行文字水印
- 給Word文檔添加文字水印
- 給Word文檔添加圖片水印
程式環境:
方法1:手動引入。將 Free Spire.Doc for Java 下載到本地,解壓,找到lib文件夾下的Spire.Doc.jar文件。在IDEA中打開如下介面,將本地路徑中的jar文件引入Java程式

方法2: 如果您想通過 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>
給Word文檔添加多行文字水印
-
創建一個 Document 實例。
-
使用 Document.loadFromFile() 方法載入示例 Word 文檔。
- 創建 ShapeObject 類的實例,並通過 ShapeObject.setWidth()、ShapeObject.setHeight()、ShapeObject. setVerticalPosition()、ShapeObject.setHorizontalPosition( )、ShapeObject.setRotation()、ShapeObject.getWordArt.setText()、ShapeObject.getWordArt.setFontFamily()、ShapeObject.setFillColor() 等方法設置形狀大小、位置、旋轉角度、水印文字、字體及顏色等。
- for 循環遍歷所有 Section,通過 section.getHeadersFooters().getHeader() 方法獲取頁眉,如果頁眉有段落,取它第一個段落,並以 HeaderFooter.AddParagraph() 方法添加段落到頁眉。
- 通過 for 循環以 ShapeObject. deepClone() 方法多次複製藝術字,並通過 ShapeObject.setVerticalPosition() 和 ShapeObject.setHorizontalPosition() 方法設置形狀位置排列。
- 使用 Document.saveToFile() 方法保存文件。
完整程式碼
Java
import com.spire.doc.*; import com.spire.doc.documents.*; import com.spire.doc.fields.ShapeObject; import java.awt.*; public class WordWatermark { public static void main(String[] args) { //載入示例文檔 Document doc = new Document(); doc.loadFromFile("AI創意賽.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().setFontFamily("黑體"); 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); //獲取section的頁眉 header = section.getHeadersFooters().getHeader(); Paragraph paragraph; if (header.getParagraphs().getCount() > 0) { //如果頁眉有段落,取它第一個段落 paragraph = header.getParagraphs().get(0); } else { //否則新增加一個段落到頁眉 paragraph = header.addParagraph(); } for (int i = 0; i < 4; i++) { for (int j = 0; j < 3; j++) { //複製藝術字並設置多行多列位置 shape = (ShapeObject) shape.deepClone(); shape.setVerticalPosition(50 + 150 * i); shape.setHorizontalPosition(20 + 160 * j); paragraph.getChildObjects().add(shape); } } } //保存文檔 doc.saveToFile("添加多行文字水印.docx", FileFormat.Docx_2013); } }

給Word文檔添加文字水印
-
創建一個 Document 實例。
-
使用 Document.loadFromFile() 方法載入示例 Word 文檔。
-
使用 Document.getSections().get() 方法獲取第一節。
-
創建一個 TextWatermark 實例。
-
使用 TextWatermark 類提供的方法設置文本水印的文本、字體大小、顏色和布局。
-
使用 Section.getDocument().setWatermark() 方法將文本水印添加到示例文檔。
-
使用 Document.saveToFile() 方法保存文件。
Java程式碼
import com.spire.doc.*; import com.spire.doc.documents.WatermarkLayout; import java.awt.*; public class WordTextWatermark { public static void main(String[] args) { //創建一個Document實例 Document document = new Document(); //載入示例 Word 文檔 document.loadFromFile("AI創意賽.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("添加文本水印.docx", FileFormat.Docx); } }

給Word文檔添加圖片水印
-
創建一個 Document 實例。
-
使用 Document.loadFromFile() 方法載入示例 Word 文檔。
-
創建一個 PictureWatermark 實例。
-
使用 PictureWatermark.setPicture() 方法載入影像作為影像水印,然後使用 PictureWatermark.setScaling() 方法和 PictureWatermark.isWashout() 方法設置影像水印的縮放和沖洗屬性。
-
使用 Document.setWatermark() 方法將影像水印添加到示例文檔中。
-
使用 Document.saveToFile() 方法保存文件。
Java程式碼
import com.spire.doc.*; public class WordImageWatermark { public static void main(String[] args) throws Exception{ //創建一個Document實例 Document document = new Document(); //載入示例 Word 文檔 document.loadFromFile("AI創意賽.docx"); //創建一個 PictureWatermark 實例 PictureWatermark picture = new PictureWatermark(); //設置影像水印格式 picture.setPicture("印章.png"); picture.setScaling(100); picture.isWashout(false); //將影像水印添加到示例文檔中 document.setWatermark(picture); //保存文件 document.saveToFile("添加影像水印.docx",FileFormat.Docx ); } }

—謝謝您的觀看—


