From bac7755aa3aea1705caf870c4318803186484e9c Mon Sep 17 00:00:00 2001
From: whycxzp <perryhsu@163.com>
Date: 星期一, 05 十二月 2022 14:26:45 +0800
Subject: [PATCH] 流程卡及SOP更新

---
 src/main/java/com/whyc/util/Word2PdfAsposeUtil.java |   99 +++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 95 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/whyc/util/Word2PdfAsposeUtil.java b/src/main/java/com/whyc/util/Word2PdfAsposeUtil.java
index b336b6f..777c01b 100644
--- a/src/main/java/com/whyc/util/Word2PdfAsposeUtil.java
+++ b/src/main/java/com/whyc/util/Word2PdfAsposeUtil.java
@@ -1,16 +1,19 @@
 package com.whyc.util;
 
-import com.aspose.words.Document;
-import com.aspose.words.SaveFormat;
+import com.aspose.cad.internal.bouncycastle.util.test.Test;
+import com.aspose.words.Shape;
+import com.aspose.words.*;
 
+import java.awt.*;
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
+import java.io.InputStream;
 
 public class Word2PdfAsposeUtil {
 
     /**鍘婚櫎姘村嵃涓撶敤*/
-    /*public static boolean getLicense() {
+    public static boolean getLicense() {
         boolean result = false;
         try {
             InputStream is = Test.class.getClassLoader().getResourceAsStream("\\license.xml"); // license.xml搴旀斁鍦�..\WebRoot\WEB-INF\classes璺緞涓�
@@ -21,7 +24,7 @@
             e.printStackTrace();
         }
         return result;
-    }*/
+    }
 
     public static boolean doc2pdf(String inPath, String outPath) {
         /*if (!getLicense()) { // 楠岃瘉License 鑻ヤ笉楠岃瘉鍒欒浆鍖栧嚭鐨刾df鏂囨。浼氭湁姘村嵃浜х敓
@@ -48,5 +51,93 @@
         }
         return true;
     }
+
+    public static boolean doc2pdfWithWaterMark(String inPath, String outPath) {
+        if (!getLicense()) { // 楠岃瘉License 鑻ヤ笉楠岃瘉鍒欒浆鍖栧嚭鐨刾df鏂囨。浼氭湁姘村嵃浜х敓
+            return false;
+        }
+        FileOutputStream os = null;
+        try {
+            File file = new File(outPath); // 鏂板缓涓�涓┖鐧絧df鏂囨。
+            os = new FileOutputStream(file);
+            Document doc = new Document(inPath); // Address鏄皢瑕佽杞寲鐨剋ord鏂囨。
+            insertWaterMark(doc,"鏃犳晥绛惧悕");
+            doc.save(os, SaveFormat.PDF);// 鍏ㄩ潰鏀寔DOC, DOCX, OOXML, RTF HTML, OpenDocument, PDF,
+        } catch (Exception e) {
+            e.printStackTrace();
+            return false;
+        }finally {
+            if (os != null) {
+                try {
+                    os.flush();
+                    os.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+        return true;
+    }
+
+    private static void insertWaterMark(Document doc, String watermarkText) throws Exception {
+        Shape watermark = new Shape(doc, ShapeType.TEXT_PLAIN_TEXT);
+        watermark.getTextPath().setText(watermarkText);
+
+        //璁剧疆姘村嵃鏍峰紡
+        //watermark.getTextPath().setFontFamily("Arial");//璁剧疆瀛椾綋
+        watermark.getTextPath().setFontFamily("瀹嬩綋");//璁剧疆瀛椾綋
+        watermark.setRotation(-40);//璁剧疆鍋忕Щ瑙掑害
+        watermark.setHeight(100);//姘村嵃楂樺害
+        watermark.setWidth(200);//姘村嵃瀹藉害
+        watermark.setFillColor(Color.pink);//璁剧疆濉厖棰滆壊
+        watermark.setStrokeColor(Color.pink);//璁剧疆鎻忚竟棰滆壊
+
+        //瀹樻柟api缁欑殑瑙i噴  澶畼鏂逛簡  (鍙彃鍏ヤ竴鏉℃按鍗� 榛樿涓鸿繖浜涙暟鎹�)
+        watermark.setRelativeHorizontalPosition(RelativeHorizontalPosition.PAGE);//鎸囧畾鐩稿浜庢按骞虫斁缃殑浣嶇疆
+        watermark.setRelativeVerticalPosition(RelativeVerticalPosition.PAGE);//鎸囧畾鐩稿浜庡舰鐘跺瀭鐩村畾浣嶇殑浣嶇疆
+
+        //watermark.setWrapType(WrapType.TOP_BOTTOM);//瀹氫箟姘村嵃鐨勭幆缁曟ā寮�
+        watermark.setWrapType(WrapType.NONE);//瀹氫箟姘村嵃鐨勭幆缁曟ā寮�
+        watermark.setVerticalAlignment(VerticalAlignment.CENTER);//  鎸囧畾褰㈢姸鍨傜洿鏀剧疆鐨勬柟寮�
+        watermark.setHorizontalAlignment(HorizontalAlignment.CENTER);// 鎸囧畾褰㈢姸濡備綍姘村钩鏀剧疆
+
+
+        Paragraph watermarkPara = new Paragraph(doc);
+        watermarkPara.appendChild(watermark);
+
+        /*String text = watermarkPara.getText();
+        System.out.println("++++++++++" + text);
+        System.out.println("______________" + watermarkPara);
+        NodeCollection childNodes = watermarkPara.getChildNodes();
+        String text1 = childNodes.get(0).getText();
+        System.out.println("111111" + text);*/
+        for (Section section : doc.getSections()) {
+            InsertWatermarkIntoHeader(watermarkPara, section, HeaderFooterType.HEADER_PRIMARY);
+            InsertWatermarkIntoHeader(watermarkPara, section, HeaderFooterType.HEADER_FIRST);
+            InsertWatermarkIntoHeader(watermarkPara, section, HeaderFooterType.HEADER_EVEN);
+        }
+
+    }
+
+    /**
+     * 灏嗘按鍗版彃鍏ュ浘鍍忓ご閮�
+     * @param watermarkPara
+     * @param section
+     * @param headerType
+     */
+    private static void InsertWatermarkIntoHeader(Paragraph watermarkPara, Section section, int headerType) throws Exception {
+        HeaderFooterCollection headerFooters = section.getHeadersFooters();
+        HeaderFooter footer = headerFooters.getByHeaderFooterType(headerType);
+        if (footer == null) {
+            footer = new HeaderFooter(section.getDocument(), headerType);
+            section.getHeadersFooters().add(footer);
+        }
+        footer.appendChild(watermarkPara.deepClone(true));
+    }
+
+    public static void main(String[] args) {
+        doc2pdfWithWaterMark("C:\\Users\\29550\\Desktop\\褰撳墠椤圭洰\\202207鍥剧焊绠$悊\\娴佺▼鍗″拰SOP鐨刣oc瀹℃壒娉ㄥ叆\\鏂癋BI绯诲垪娴佺▼鍗$瀛�2.doc",
+                "C:\\Users\\29550\\Desktop\\褰撳墠椤圭洰\\202207鍥剧焊绠$悊\\娴佺▼鍗″拰SOP鐨刣oc瀹℃壒娉ㄥ叆\\鏂癋BI绯诲垪娴佺▼鍗$瀛�2-doc.pdf");
+    }
 }
 

--
Gitblit v1.9.1