From 594c444ee39aa26c2ede55866156b51cccfbf93a Mon Sep 17 00:00:00 2001 From: God <10745413@qq.com> Date: Fri, 18 Nov 2022 10:25:36 +0800 Subject: [PATCH] =?UTF-8?q?=E9=97=AE=E9=A2=98=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/yxt/common/base/utils/WordObj.java | 237 ------------------ .../com/yxt/common/base/utils/WordUtils.java | 70 ------ 2 files changed, 307 deletions(-) delete mode 100644 yxt-common/yxt-common-base/src/main/java/com/yxt/common/base/utils/WordObj.java diff --git a/yxt-common/yxt-common-base/src/main/java/com/yxt/common/base/utils/WordObj.java b/yxt-common/yxt-common-base/src/main/java/com/yxt/common/base/utils/WordObj.java deleted file mode 100644 index 4d7a7c0..0000000 --- a/yxt-common/yxt-common-base/src/main/java/com/yxt/common/base/utils/WordObj.java +++ /dev/null @@ -1,237 +0,0 @@ -package com.yxt.common.base.utils; - -import com.jacob.activeX.ActiveXComponent; -import com.jacob.com.ComThread; -import com.jacob.com.Dispatch; -import com.jacob.com.Variant; - -public class WordObj { - public WordObj() - { - } - - private static WordObj instance; - - private Dispatch doc = null; - - private Dispatch activeWindow = null; - - private Dispatch docSelection = null; - - private Dispatch wrdDocs = null; - - private String fileName; - - private ActiveXComponent wrdCom; - - /** - * 获取Word操作静态实例对象 - * - * @return 报表汇总业务操作 - */ - public final static synchronized WordObj getInstance() - { - if (instance == null) - instance = new WordObj(); - return instance; - - } - - /** - * 初始化Word对象 - * - * @return 是否初始化成功 - */ - public boolean initWordObj() - { - boolean retFlag = false; - ComThread.InitSTA();// 初始化com的线程,非常重要!!使用结束后要调用 realease方法 - wrdCom = new ActiveXComponent("Word.Application"); - try - { - // 返回wrdCom.Documents的Dispatch - wrdDocs = wrdCom.getProperty("Documents").toDispatch(); - wrdCom.setProperty("Visible", new Variant(true)); - - retFlag = true; - } - catch (Exception e) - { - retFlag = false; - e.printStackTrace(); - } - return retFlag; - } - - /** - * 创建一个新的word文档 - * - */ - - public void createNewDocument() - { - doc = Dispatch.call(wrdDocs, "Add").toDispatch(); - docSelection = Dispatch.get(wrdCom, "Selection").toDispatch(); - - } - - /** - * 取得活动窗体对象 - * - */ - public void getActiveWindow() - { - // 取得活动窗体对象 - activeWindow = wrdCom.getProperty("ActiveWindow").toDispatch(); - - } - - /** - * 打开一个已存在的文档 - * - * @param docPath - */ - - public void openDocument(String docPath) - { - if (this.doc != null) - { - this.closeDocument(); - } - doc = Dispatch.call(wrdDocs, "Open", docPath).toDispatch(); - docSelection = Dispatch.get(wrdCom, "Selection").toDispatch(); - } - - /** - * 关闭当前word文档 - * - */ - public void closeDocument() - { - if (doc != null) - { - Dispatch.call(doc, "Save"); - Dispatch.call(doc, "Close", new Variant(0)); - doc = null; - } - } - - /** - * 文档设置水印 - * - * @param waterMarkStr 水印字符串 - */ - public void setWaterMark(String waterMarkStr) - { - // 取得活动窗格对象 - Dispatch activePan = Dispatch.get(activeWindow, "ActivePane") - .toDispatch(); - // 取得视窗对象 - Dispatch view = Dispatch.get(activePan, "View").toDispatch(); - //输入页眉内容 - Dispatch.put(view, "SeekView", new Variant(9)); - Dispatch headfooter = Dispatch.get(docSelection, "HeaderFooter") - .toDispatch(); - //取得图形对象 - Dispatch shapes = Dispatch.get(headfooter, "Shapes").toDispatch(); - //给文档全部加上水印 - Dispatch selection = Dispatch.call(shapes, "AddTextEffect", - new Variant(9), waterMarkStr, "宋体", new Variant(1), - new Variant(false), new Variant(false), new Variant(0), - new Variant(0)).toDispatch(); - Dispatch.call(selection, "Select"); - //设置水印参数 - Dispatch shapeRange = Dispatch.get(docSelection, "ShapeRange") - .toDispatch(); - Dispatch.put(shapeRange, "Name", "PowerPlusWaterMarkObject1"); - Dispatch textEffect = Dispatch.get(shapeRange, "TextEffect").toDispatch(); - Dispatch.put(textEffect, "NormalizedHeight", new Boolean(false)); - Dispatch line = Dispatch.get(shapeRange, "Line").toDispatch(); - Dispatch.put(line, "Visible", new Boolean(false)); - Dispatch fill = Dispatch.get(shapeRange, "Fill").toDispatch(); - Dispatch.put(fill, "Visible", new Boolean(true)); - //设置水印透明度 - Dispatch.put(fill, "Transparency", new Variant(0.5)); - Dispatch foreColor = Dispatch.get(fill, "ForeColor").toDispatch(); - //设置水印颜色 - Dispatch.put(foreColor, "RGB", new Variant(16711680)); - Dispatch.call(fill, "Solid"); - //设置水印旋转 - Dispatch.put(shapeRange, "Rotation", new Variant(315)); - Dispatch.put(shapeRange, "LockAspectRatio", new Boolean(true)); - Dispatch.put(shapeRange, "Height", new Variant(117.0709)); - Dispatch.put(shapeRange, "Width", new Variant(468.2835)); - Dispatch.put(shapeRange, "Left", new Variant(-999995)); - Dispatch.put(shapeRange, "Top", new Variant(-999995)); - Dispatch wrapFormat = Dispatch.get(shapeRange, "WrapFormat").toDispatch(); - //是否允许交叠 - Dispatch.put(wrapFormat, "AllowOverlap", new Variant(true)); - Dispatch.put(wrapFormat, "Side", new Variant(3)); - Dispatch.put(wrapFormat, "Type", new Variant(3)); - Dispatch.put(shapeRange, "RelativeHorizontalPosition", new Variant(0)); - Dispatch.put(shapeRange, "RelativeVerticalPosition", new Variant(0)); - Dispatch.put(view, "SeekView", new Variant(0)); - } - - - - /** - * 关闭Word资源 - * - * - */ - public void closeWordObj() - { - - // 关闭word文件 - wrdCom.invoke("Quit", new Variant[] {}); - // 释放com线程。根据jacob的帮助文档,com的线程回收不由java的垃圾回收器处理 - ComThread.Release(); - } - - /** - * 得到文件名 - * - * @return . - */ - public String getFileName() - { - return fileName; - } - - /** - * 设置文件名 - * - * @param fileName . - */ - public void setFileName(String fileName) - { - this.fileName = fileName; - } - - /** - * 测试功能 - * - */ - public static void main(String[] argv) - { - WordObj d = WordObj.getInstance(); - try - { - if (d.initWordObj()) - { - d.createNewDocument(); - d.getActiveWindow(); - d.setWaterMark("HEllo"); - // d.closeWordObj(); - } - else - System.out.println("初始化Word读写对象失败!"); - } - catch (Exception e) - { - d.closeWordObj(); - } - } - -} diff --git a/yxt-common/yxt-common-base/src/main/java/com/yxt/common/base/utils/WordUtils.java b/yxt-common/yxt-common-base/src/main/java/com/yxt/common/base/utils/WordUtils.java index c0f0a3c..deddf02 100644 --- a/yxt-common/yxt-common-base/src/main/java/com/yxt/common/base/utils/WordUtils.java +++ b/yxt-common/yxt-common-base/src/main/java/com/yxt/common/base/utils/WordUtils.java @@ -208,85 +208,15 @@ public class WordUtils { } catch (Exception e) { e.printStackTrace(); } finally { - /* Dispatch.call(doc, "Close", new Variant(-1),new Variant(1),new Variant(true)); - if (wordApp != null) { - wordApp.invoke("Quit", new Variant[]{}); - } - ComThread.Release();*/ - // 关闭文档 - // Dispatch.call(doc, "Close", false); - // 关闭office - // wordApp.invoke("Quit", 0); System.out.println("关闭文档"); -// if (app != null) -// app.invoke("Quit", new Variant[]{}); - // 如果没有这句话,winword.exe进程将不会关闭 - // ComThread.Release(); } } -/* - public static void setWaterMark(ActiveXComponent activeWindow,String waterMarkStr) - { - - - // 取得活动窗格对象 - Dispatch activePan = Dispatch.get(activeWindow, "ActivePane").toDispatch(); - // 取得视窗对象 - Dispatch view = Dispatch.get(activePan, "View").toDispatch(); - Dispatch docSelection=Dispatch.get(activeWindow, "Selection").toDispatch(); - //输入页眉内容 - Dispatch.put(view, "SeekView", new Variant(9)); - Dispatch headfooter = Dispatch.get(docSelection, "HeaderFooter") - .toDispatch(); - //取得图形对象 - Dispatch shapes = Dispatch.get(headfooter, "Shapes").toDispatch(); - //给文档全部加上水印 - Dispatch selection = Dispatch.call(shapes, "AddTextEffect", - new Variant(9), waterMarkStr, "宋体", new Variant(1), - new Variant(false), new Variant(false), new Variant(0), - new Variant(0)).toDispatch(); - Dispatch.call(selection, "Select"); - //设置水印参数 - Dispatch shapeRange = Dispatch.get(docSelection, "ShapeRange") - .toDispatch(); - Dispatch.put(shapeRange, "Name", "PowerPlusWaterMarkObject1"); - Dispatch textEffect = Dispatch.get(shapeRange, "TextEffect").toDispatch(); - Dispatch.put(textEffect, "NormalizedHeight", new Boolean(false)); - Dispatch line = Dispatch.get(shapeRange, "Line").toDispatch(); - Dispatch.put(line, "Visible", new Boolean(false)); - Dispatch fill = Dispatch.get(shapeRange, "Fill").toDispatch(); - Dispatch.put(fill, "Visible", new Boolean(true)); - //设置水印透明度 - Dispatch.put(fill, "Transparency", new Variant(0.5)); - Dispatch foreColor = Dispatch.get(fill, "ForeColor").toDispatch(); - //设置水印颜色 - Dispatch.put(foreColor, "RGB", new Variant(16711680)); - Dispatch.call(fill, "Solid"); - //设置水印旋转 - Dispatch.put(shapeRange, "Rotation", new Variant(315)); - Dispatch.put(shapeRange, "LockAspectRatio", new Boolean(true)); - Dispatch.put(shapeRange, "Height", new Variant(117.0709)); - Dispatch.put(shapeRange, "Width", new Variant(468.2835)); - Dispatch.put(shapeRange, "Left", new Variant(-999995)); - Dispatch.put(shapeRange, "Top", new Variant(-999995)); - Dispatch wrapFormat = Dispatch.get(shapeRange, "WrapFormat").toDispatch(); - //是否允许交叠 - Dispatch.put(wrapFormat, "AllowOverlap", new Variant(true)); - Dispatch.put(wrapFormat, "Side", new Variant(3)); - Dispatch.put(wrapFormat, "Type", new Variant(3)); - Dispatch.put(shapeRange, "RelativeHorizontalPosition", new Variant(0)); - Dispatch.put(shapeRange, "RelativeVerticalPosition", new Variant(0)); - Dispatch.put(view, "SeekView", new Variant(0)); - }*/ public static void main(String[] args) { Map dataMap = new HashMap(); String curDate = DateUtils.dateConvertStr(new Date(), "yyyy年MM月dd日"); dataMap.put("partyA", "甲方卖出方"); dataMap.put("partyB", "乙方买受方"); - // 图片 -// dataMap.put("imgStr1", getImageStr("D:\\fileTest\\name.png")); -// dataMap.put("imgStr2", getImageStr("D:\\fileTest\\zhang.png")); // 列表 Car car1 = new Car("奔驰", "1001", "v10"); Car car2 = new Car("宝马", "1002", "v10");