Java 如何添加和刪除Word文檔水印

在日常生活中怪瓶,我們經(jīng)常能看到許多廣告文件的字體后面印著公司的名稱或logo阅束,也能在一些保密文件的正文后看到“機(jī)密”等字樣展姐。這些都是給文檔添加水印所得,但很多人不知道如何不利用Microsoft Office而僅用Java代碼來添加水印俩莽。

本文將通過以下幾部分來詳細(xì)講解關(guān)于Word文檔水印問題。

1乔遮、添加文本水印

2扮超、添加多行文本水印

3、添加圖片水印

4、刪除水印

代碼測試環(huán)境:

● Intellij Idea2019.1

● JDK 1.8.0

● Spire.Doc.jar

Jar包獲取及導(dǎo)入:

方式1通過官網(wǎng)下載獲取Free Spire.Doc for Java產(chǎn)品包出刷,解壓后將lib文件夾下的Spire.Doc.jar手動導(dǎo)入IDEA中璧疗。

方式2創(chuàng)建一個(gè)Maven應(yīng)用程序,在pom.xml文件中配置Maven倉庫路徑及指定Spire.Doc for Java的Maven依賴馁龟。

<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>

配置完成后崩侠,在IDEA中,您需點(diǎn)擊"Import Changes"即可導(dǎo)入JAR包屁柏;在Eclipse中啦膜,則需要點(diǎn)擊"Save"按鈕。

代碼示例

示例1:添加文本水印

使用insertTextWatermark方法可為Word文檔添加文本水印淌喻,同時(shí)可設(shè)置文本水印字體的內(nèi)容僧家,大小,顏色及布局裸删。

import com.spire.doc.*;

import com.spire.doc.documents.WatermarkLayout;

import java.awt.*;

public class TextWatermark {

public static void main(String[] args) {

//加載Word示例文檔

Document document = new Document("C:\\Users\\Test1\\Desktop\\Sample.docx");

//插入文本水印

insertTextWatermark(document.getSections().get(0));

//保存文檔

document.saveToFile("output/TextWatermark.docx", FileFormat.Docx);

??? }

//設(shè)置文本水印內(nèi)容八拱,字體大小,顏色和布局

private static void insertTextWatermark(Section section) {

com.spire.doc.TextWatermarktxtWatermark =new com.spire.doc.TextWatermark();

txtWatermark.setText("內(nèi)部使用");

txtWatermark.setFontSize(60);

txtWatermark.setColor(Color.red);

txtWatermark.setLayout(WatermarkLayout.Diagonal);

section.getDocument().setWatermark(txtWatermark);

??? }

}

添加效果:


示例2:添加多行文本水印

Free Spire.Doc for Java除了支持給Word文檔添加單個(gè)文本水印以外涯塔,還可通過在Word頁眉中添加藝術(shù)字來實(shí)現(xiàn)添加多行文字水印肌稻。以下為具體代碼演示:

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 multiTextWatermark {

public static void main(String[] args) {

//加載示例文檔

Document doc = new Document();

doc.loadFromFile("C:\\Users\\Test1\\Desktop\\Sample.docx");

//添加藝術(shù)字并設(shè)置大小

ShapeObject shape = new ShapeObject(doc, ShapeType.Text_Plain_Text);

shape.setWidth(60);

shape.setHeight(20);

//設(shè)置藝術(shù)字文本內(nèi)容、顏色匕荸,位置及樣式

shape.setVerticalPosition(30);

shape.setHorizontalPosition(20);

shape.setRotation(315);

shape.getWordArt().setText("內(nèi)部使用");

shape.setFillColor(Color.green);

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 paragraph1;

for (int i = 0; i < 4; i++) {

//添加段落到頁眉

paragraph1 = header.addParagraph();

for (int j = 0; j < 3; j++) {

//復(fù)制藝術(shù)字并設(shè)置多行多列位置

shape = (ShapeObject) shape.deepClone();

shape.setVerticalPosition(50 + 150 * i);

shape.setHorizontalPosition(20 + 160 * j);

paragraph1.getChildObjects().add(shape);

??????????????? }

??????????? }

??????? }

//保存文檔

doc.saveToFile("output/multi-lineTextwatermark.docx", FileFormat.Docx_2013);

??? }

}

添加效果:

示例3:添加圖片水印

利用PictureWatermark方法來實(shí)現(xiàn)為Word文檔添加圖片水印的效果爹谭,圖片可通過本地上傳,同時(shí)也可是來自源榛搔。

import com.spire.doc.*;

public class ImageWatermark {

public static void main(String[] args) {

//加載Word文檔

Document doc = new Document();

doc.loadFromFile("C:\\Users\\Test1\\Desktop\\Sample.docx");

//創(chuàng)建PictureWatermark實(shí)例

PictureWatermark imageWatermark = new PictureWatermark();

//設(shè)置水印圖片(可以是本地圖片也可以來自流)

imageWatermark.setPicture("C:\\Users\\Test1\\Desktop\\logo.png");

imageWatermark.isWashout(false);

//添加水印圖片到文檔

doc.setWatermark(imageWatermark);

//保存

doc.saveToFile("output/ImageWatermark.docx", FileFormat.Docx_2013);

??? }

}

添加效果:

示例4:刪除Word文檔水印

通過doc.setWatermark(null)可將Word文檔中存在的水印清除掉诺凡。

import com.spire.doc.Document;

import com.spire.doc.FileFormat;

public class DeleteWatermark {

public static void main(String[] args) {

//創(chuàng)建Document實(shí)例

Document doc = new Document();

//加載Word文檔

doc.loadFromFile("C:\\Users\\Test1\\Desktop\\TextWatermark.docx");

//將水印設(shè)置為空

doc.setWatermark(null);

//保存文檔

doc.saveToFile("output/RemoveWatermark.docx", FileFormat.Docx_2013);

??? }

}

總結(jié)

通過以上代碼示例,可準(zhǔn)確實(shí)現(xiàn)通過Java代碼用程序?qū)⒅付ǖ膱D片/文本當(dāng)做水印插入到指定的word文檔中践惑。若對代碼或產(chǎn)品包導(dǎo)入有任何疑問腹泌,可評論或私信。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末尔觉,一起剝皮案震驚了整個(gè)濱河市凉袱,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌侦铜,老刑警劉巖专甩,帶你破解...
    沈念sama閱讀 212,542評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異钉稍,居然都是意外死亡配深,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,596評論 3 385
  • 文/潘曉璐 我一進(jìn)店門嫁盲,熙熙樓的掌柜王于貴愁眉苦臉地迎上來篓叶,“玉大人烈掠,你說我怎么就攤上這事「淄校” “怎么了左敌?”我有些...
    開封第一講書人閱讀 158,021評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長俐镐。 經(jīng)常有香客問我矫限,道長,這世上最難降的妖魔是什么佩抹? 我笑而不...
    開封第一講書人閱讀 56,682評論 1 284
  • 正文 為了忘掉前任叼风,我火速辦了婚禮,結(jié)果婚禮上棍苹,老公的妹妹穿的比我還像新娘无宿。我一直安慰自己,他們只是感情好枢里,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,792評論 6 386
  • 文/花漫 我一把揭開白布孽鸡。 她就那樣靜靜地躺著,像睡著了一般栏豺。 火紅的嫁衣襯著肌膚如雪彬碱。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,985評論 1 291
  • 那天奥洼,我揣著相機(jī)與錄音巷疼,去河邊找鬼。 笑死灵奖,一個(gè)胖子當(dāng)著我的面吹牛嚼沿,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播桑寨,決...
    沈念sama閱讀 39,107評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼伏尼,長吁一口氣:“原來是場噩夢啊……” “哼忿檩!你這毒婦竟也來了尉尾?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,845評論 0 268
  • 序言:老撾萬榮一對情侶失蹤燥透,失蹤者是張志新(化名)和其女友劉穎沙咏,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體班套,經(jīng)...
    沈念sama閱讀 44,299評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡肢藐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,612評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了吱韭。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片吆豹。...
    茶點(diǎn)故事閱讀 38,747評論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡鱼的,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出痘煤,到底是詐尸還是另有隱情凑阶,我是刑警寧澤,帶...
    沈念sama閱讀 34,441評論 4 333
  • 正文 年R本政府宣布衷快,位于F島的核電站宙橱,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏蘸拔。R本人自食惡果不足惜师郑,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,072評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望调窍。 院中可真熱鬧宝冕,春花似錦、人聲如沸陨晶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,828評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽先誉。三九已至湿刽,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間褐耳,已是汗流浹背诈闺。 一陣腳步聲響...
    開封第一講書人閱讀 32,069評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留铃芦,地道東北人雅镊。 一個(gè)月前我還...
    沈念sama閱讀 46,545評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像刃滓,于是被迫代替她去往敵國和親仁烹。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,658評論 2 350