jacob.jar 操作word文件 添加水印、图片(附查阅Microsoft Office VBA参考文档方式)

本文介绍了如何使用jacob.jar库在Java中操作Word文件,包括添加水印和图片。首先,需要正确配置jacob.jar和对应的dll文件。接着,创建工具类来实现具体功能。当需要实现更多操作时,可以通过查阅Microsoft Office VBA参考文档来找到相应的方法,通过对象模型的属性和方法进行操作。
摘要由CSDN通过智能技术生成

jacob.jar 操作word文件 添加水印、图片

1.准备jacob.jar包和dll文件

将jacob.jar引入到工程,

64位: 将jacob-1.17-M2-x64.dll 放在C:\Windows\System32下

32位:将jacob-1.17-M2-x86.dll 放在C:\Windows\SysWOW64下

若上述位置不生效,可尝试放在jdk安装位置:

将jacob-1.17-M2-x64.dll放在C:\Program Files\Java\jdk1.7.0_25\jre\bin下,将jacob.jar放在C:\Program Files\Java\jdk1.7.0_25\jre\lib\ext下

2.编写工具类
import java.io.File;
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.ComThread;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;

public final class WaterMarkUtilOffice {
   

    public WaterMarkUtilOffice() {
   }
    private static WaterMarkUtilOffice instance;
    private Dispatch aDoc = null;//用于存储一个文档:比如新增一个文档时返回,新增的文档
    private Dispatch activeWindow = null;//当前活动窗口
    private Dispatch docSelection = null;//存储当前被选中文档
    private Dispatch wordDocs = null;//存储所有的文档
    private String fileName;
    private ActiveXComponent wordApp;//Word对象
    public final static synchronized WaterMarkUtilOffice getInstance() {
   
        if (instance == null){
   
            instance = new WaterMarkUtilOffice();
        }
        return instance;
    }

    /*** 初始化Word对象*/
    public boolean initWordApp() {
   
        boolean retFlag = false;
        //初始化com线程【相当于打开冰箱门,准备放大箱】
        //使用结束后要调用 realease方法关闭线程【相当于关上冰箱门】
        ComThread.InitSTA();
        wordApp = new ActiveXComponent("Word.Application");// 初始化word应用程序,初始化表格是:Excel.Application
        try {
   
            wordApp.setProperty("Visible", new Variant(false));//配置启动word时是显示执行还是隐式执行
            wordDocs = wordApp.getProperty("Documents").toDispatch();// 获取word所有文档对象
            retFlag = true;
        } catch (Exception e) {
   
            retFlag = false;
            e.printStackTrace();
        }
        return retFlag;
    }


    /**打开一个已存在的文档*/
    public void openDocument(String docPath) {
   
        if (this.aDoc != null) {
   
            this.closeDocument();
        }
        aDoc = Dispatch.call(wordDocs,"Open",new Variant(docPath)).toDispatch();//docPath要打开的文档的详细地址
        docSelection = Dispatch.get(wordApp, "Selection").toDispatch();//获得该文档对象,并返回
    }


    /** 取得活动窗体对象*/
    public void getActiveWindow() {
   
        activeWindow = wordApp.getProperty("ActiveWindow").toDispatch();// 取得活动窗体对象
    }


    /***创建一个新的word文档*/
    public void createNewDocument() {
   
        aDoc = Dispatch.call(wordDocs, "Add").toDispatch();//创建一个新的word文档,并返回
        docSelection = Dispatch.get(wordApp, "Selection").toDispatch();//获得该文档对象,并返回
    }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值