• Jacob用法收集


    介绍

    Jacob 是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构建一座桥梁。使用Jacob自带的DLL动态链接库,并通过JNI的方式实现了在Java平台上对COM程序的调用。

     

    安装和配置

    Jacob是一个开源软件,它的官方站点是:http://danadler.com/jacob/ 
    我的系统是64位,把jacob-1.18-M2-x64.dll复制到WindowsSystem32文件夹下,再 IDE中引用jacob.jar就可以使用了


     

    读写Word简单示例

    必须先在对应的路径下建立fileIn.doc,可以事先写入内容:

     

    package king.word;
    import com.jacob.activeX.ActiveXComponent;
    import com.jacob.com.Dispatch;
    import com.jacob.com.Variant;
    public class Test {
        String strDir = "F:\桌面\Temp\";
        String strInputDoc = strDir + "fileIn.doc";
        String strOutputDoc = strDir + "fileOut.doc";
        String strOldText = "oldText";
        String strNewText = "It's very good to use java control Word";
        boolean isVisible = true;
        boolean isSaveOnExit = true;
        public Test(){
            ActiveXComponent oWord = new ActiveXComponent("Word.Application");
            oWord.setProperty("Visible", new Variant(isVisible));
            Dispatch oDocuments = oWord.getProperty("Documents").toDispatch();
            Dispatch oDocument = Dispatch.call(oDocuments, "Open", strInputDoc).toDispatch();
            Dispatch oSelection = oWord.getProperty("Selection").toDispatch();
            Dispatch oFind = oWord.call(oSelection, "Find").toDispatch();
            Dispatch.put(oFind, "Text", strOldText);
            Dispatch.call(oFind, "Execute");
            Dispatch.put(oSelection, "Text", strNewText);
            Dispatch.call(oSelection, "MoveDown");
            Dispatch.put(oSelection, "Text", "nSo we got the next line including BR.n");
            Dispatch oFont = Dispatch.get(oSelection, "Font").toDispatch();
            Dispatch.put(oFont, "Bold", "1");
            Dispatch.put(oFont, "Italic", "1");
            Dispatch.put(oFont, "Underline", "0");
            Dispatch oAlign = Dispatch.get(oSelection, "ParagraphFormat").toDispatch();
            Dispatch.put(oAlign, "Alignment", "3");
            Dispatch oWordBasic = (Dispatch)Dispatch.call(oWord, "WordBasic").getDispatch();
            Dispatch.call(oWordBasic, "FileSaveAs", strOutputDoc);
            Dispatch.call(oDocument, "Close", new Variant(isSaveOnExit));
            oWord.invoke("Quit", new Variant(0));
        }
        public static void main(String[] args){
            new Test();
            System.out.println("Done");
        }
    }

    jacob.jar的结构

    jacob包括两个部分:

    com.jacob.activeX: ActiveXComponent类
    com.jacob.com: 其它类和元素

    Jacob类

    Jacob的结构很简单,包含以下几个类:

    ActiveXComponent:封装了Dispatch对象,用于创建一个封装了COM组件对象的Java Object
    Dispatch:用于指向封装后的MS数据结构。常用的方法有call,subcall,get,invoke…后面会介绍使用方法。
    Variant:用于映射COM的Variant数据类型。提供Java和COM的数据交换。
    ComException:异常类

    Jacob方法

    用于访问COM/DLL对象的方法,读取、修改COM/DLL对象的属性。

    call:属于Dispatch类。用于访问COM/DLL对象的方法。方法进行了重载,方便不同场合调用。返回一个Variant类型的值。
    callSub:使用方法和call一样,不过它不返回值。
    get:读取COM对象的属性值,返回一个Variant类型值。
    put:设置COM对象的属性值。
    invoke:call的另一种用法,更复杂一些。
    invokesub:subcall的另一种用法
    getProperty:属于ActiveXComponent类,读取属性值,返回一个Variant类型值。
    setProperty:属于ActiveXComponent类,设置属性值。
    setProperty:属于ActiveXComponent类,设置属性值

    文章转自:https://www.zybuluo.com/king/note/64983

  • 相关阅读:
    dll学习
    mysql解压版安装
    mysql创建用户以及搭建数据库
    Springboot使用mybatis-plus
    分布式系统
    2、Zookeeper安装以及dubbo-admin的安装启动
    搭建分布式系统(idea+springboot+dubbo)
    Zookeeper下载和启动
    Spring Cloud底层原理
    Redis
  • 原文地址:https://www.cnblogs.com/guchunchao/p/9809726.html
Copyright © 2020-2023  润新知