<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-208  評論-469  文章-30  trackbacks-0

    首先我已經做了如下配置:
    1.導入 jacob.jar 這個包。
    2.把 jacob.dll 拷貝到 C:\WINDOWS\system32 目錄下。
    以上的兩個文件您可以到網上http://danadler.com/jacob/?下載的1.7的版本
    jacob.jar 與 jacob.dll 版本一致。

    代碼如下:
    package one;

    import com.jacob.com.*;
    import com.jacob.activeX.*;
    import java.io.*;
    //取得指定目錄下面所有的doc文件名稱
    public class wordtohtml2 {
    ?// ------------------------------------------------------------------------------
    ?// 方法原型: change(String paths)
    ?// 功能描述: 將指定目錄下面所有的doc文件轉化為HTML(html文件夾必須存在)并存儲在相同目錄下
    ?// 輸入參數: String
    ?// 輸出參數: 無
    ?// 返 回 值: 無
    ?// 其它說明: 遞歸
    ?// ------------------------------------------------------------------------------
    ?public static void change(String paths, String savepaths) {
    ? File d = new File(paths);
    ? // 取得當前文件夾下所有文件和目錄的列表
    ? File lists[] = d.listFiles();
    ? String pathss = new String("");
    ? // 對當前目錄下面所有文件進行檢索
    ? for (int i = 0; i < lists.length; i++) {
    ?? if (lists[i].isFile()) {
    ??? String filename = lists[i].getName();
    ??? String filetype = new String("");
    ??? // 取得文件類型
    ??? filetype = filename.substring((filename.length() - 3), filename.length());
    ??? // 判斷是否為doc文件
    ??? if (filetype.equals("doc")) {
    ???? System.out.println("當前正在轉換......");
    ???? // 打印當前目錄路徑
    ???? System.out.println(paths);
    ???? // 打印doc文件名
    ???? System.out.println(filename.substring(0, (filename.length() - 4)));
    ???? ActiveXComponent app = new ActiveXComponent("Word.Application"); // 啟動word
    ???? String docpath = paths + filename;
    ???? String htmlpath = savepaths + filename.substring(0, (filename.length() - 4));
    ???? String inFile = docpath;
    ???? // 要轉換的word文件
    ???? String tpFile = htmlpath;
    ???? // HTML文件
    ???? boolean flag = false;
    ???? try {
    ????? app.setProperty("Visible", new Variant(false));
    ????? // 設置word不可見
    ????? Dispatch docs = app.getProperty("Documents").toDispatch();
    ????? Dispatch doc = Dispatch.invoke(docs, "Open", Dispatch.Method, new Object[] {inFile, new Variant(false), new Variant(true)}, new int[1]).toDispatch();
    ????? // 打開word文件
    ????? Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[] { tpFile, new Variant(8) }, new int[1]);
    ????? // 作為html格式保存到臨時文件
    ????? Variant f = new Variant(false);
    ????? Dispatch.call(doc, "Close", f);
    ????? flag = true;
    ???? } catch (Exception e) {
    ????? e.printStackTrace();
    ???? } finally {
    ????? app.invoke("Quit", new Variant[] {});
    ???? }
    ???? System.out.println("轉化完畢!");
    ??? }
    ?? } else {
    ??? pathss = paths;
    ??? // 進入下一級目錄
    ??? pathss = pathss + lists[i].getName() + "\\";
    ??? // 遞歸遍歷所有目錄
    ??? change(pathss, savepaths);
    ?? }
    ? }
    ?}
    ?public static void main(String[] args) {
    ? String paths = new String("e:\\english\\ebook\\");
    ? String savepaths = new String("e:\\english\\ebook\\");
    ? change(paths, savepaths);
    ?}
    }
    運行后出現的錯誤為:
    com.jacob.com.ComFailException: A COM exception has been encountered:
    At Invoke of: Documents
    Description: An unknown COM error has occured.
    ?at com.jacob.com.Dispatch.invokev(Native Method)
    ?at com.jacob.activeX.ActiveXComponent.getProperty(ActiveXComponent.java)
    ?at one.WordtoHtml.change(WordtoHtml.java:25)
    ?at one.WordtoHtml.main(WordtoHtml.java:39)
    Exception in thread "main" com.jacob.com.ComFailException: A COM exception has been encountered:
    At Invoke of: Quit
    Description: An unknown COM error has occured.
    ?at com.jacob.com.Dispatch.invokev(Native Method)
    ?at com.jacob.activeX.ActiveXComponent.invoke(ActiveXComponent.java)
    ?at one.WordtoHtml.change(WordtoHtml.java:35)
    ?at one.WordtoHtml.main(WordtoHtml.java:39)


    附加:下面是總結了的錯誤!
    1、如果出現下面的錯誤
    com.jacob.com.ComFailException: A COM exception has been encountered:
    At Invoke of: Version
    Description: An unknown COM error has occured.
    表示dll的版本不對,換成最新版本即可。
    2、如果出現下面的錯誤
    no jacob in java.library.path
    java.lang.UnsatisfiedLinkError: no jacob in java.library.path
    表示把dll放到path下即可,設置path或是放到window/system32下

    posted on 2008-03-29 02:16 EricWong 閱讀(4786) 評論(6)  編輯  收藏 所屬分類: Java

    評論:
    # re: jacob問題-大家幫我看看,先謝過! 2008-03-29 09:56 | like
    最近也遇到這個問題  回復  更多評論
      
    # re: jacob問題-大家幫我看看,先謝過![未登錄] 2008-05-07 13:51 | Michael
    我今天也遇到了這個問題,正在郁悶
    At Invoke of: Documents  回復  更多評論
      
    # re: jacob問題-大家幫我看看,先謝過! 2008-07-17 12:30 | lili
    謝謝,借鑒一下!  回復  更多評論
      
    # re: jacob問題-大家幫我看看,先謝過! 2008-10-18 10:54 | yu
    我下的就是1.7,可是還報那個錯誤
    "A COM exception has been encountered"

    why???
    困惑中ing...  回復  更多評論
      
    # re: jacob問題-大家幫我看看,先謝過![未登錄] 2009-02-04 08:51 | ice
    "A COM exception has been encountered"

    能否給個最新的jacob.dll
    bingniao@163.com 多謝~!  回復  更多評論
      
    # re: jacob問題-大家幫我看看,先謝過! 2009-06-17 13:29 | jhx
    遇到了第一種錯誤,能否給個最新的jacob.dll   回復  更多評論
      
    主站蜘蛛池模板: 亚洲国产精品日韩在线| 久久久久亚洲精品男人的天堂| 亚洲AV人无码激艳猛片| 青青操视频在线免费观看| 亚洲永久精品ww47| 爽爽爽爽爽爽爽成人免费观看| 亚洲午夜日韩高清一区| 成人av片无码免费天天看| 国产亚洲成av人片在线观看 | 亚洲最大无码中文字幕| 成人免费无码大片a毛片软件 | 欧亚一级毛片免费看| 天天看免费高清影视| 亚洲综合色一区二区三区| 女人让男人免费桶爽30分钟| 欧洲 亚洲 国产图片综合| 日本不卡视频免费| kk4kk免费视频毛片| 亚洲AV无码久久寂寞少妇| 亚洲国产精品成人精品小说| 成人免费激情视频| 亚洲乱理伦片在线观看中字 | 中文字幕精品无码亚洲字| 国产免费无码一区二区 | 亚洲风情亚Aⅴ在线发布| 亚洲国产精品人人做人人爽| 免费人成激情视频在线观看冫 | 中文字幕无线码中文字幕免费| 亚洲va国产va天堂va久久| 青青草a免费线观a| 成人免费网站视频www| 国产av天堂亚洲国产av天堂 | A级毛片成人网站免费看| 亚洲综合区图片小说区| 日本免费高清一本视频| 国产视频精品免费视频| 亚洲国产精品成人综合色在线婷婷 | 无码的免费不卡毛片视频| 香蕉蕉亚亚洲aav综合| 18禁超污无遮挡无码免费网站国产| 午夜免费国产体验区免费的|