<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

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

          共 4898字,需瀏覽 10分鐘

           ·

          2020-09-04 13:16

          來源:SegmentFault 思否社區(qū)

          作者:Tina_Tang




          在日常生活中,我們經(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òng)導(dǎo)入IDEA中。

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



          com.e-iceblue
          http://repo.e-iceblue.cn/repository/maven-public/




          e-iceblue
          spire.doc.free
          2.7.3

          配置完成后,在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.TextWatermark txtWatermark = 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\\ImageWatermark.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)入有任何疑問,可評論或私信。



          點(diǎn)擊左下角閱讀原文,到?SegmentFault 思否社區(qū)?和文章作者展開更多互動(dòng)和交流。

          -?END -

          瀏覽 38
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  六区九区一区在线 | 人人妻人人澡欧美91精品 | 大香蕉视频91 | 黄片伊人| av天堂亚洲 |