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