首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 呼叫 Windows COM 元件發送傳真 (Jacob 庫實作)

     編輯:Java 相關知識

環境需求

  • Windows XP / Server 2003 以上
  • JDK 1.4 ~ 1.6(過高版本可能與 jacob.dll 不相容)
  • 實體 Modem 並已安裝 Fax 服務(控制台可手動發送傳真)
  • Jacob 1.9(jacob.jar + jacob.dll)

安裝步驟

  1. jacob.dll 複製到 C:\Windows\System32(或 JVM java.library.path 目錄)。
  2. 專案加入 jacob.jar;同步將 jar、dll 放入 JRE/lib 或設定 -Djava.library.path。

核心程式碼

import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.*;

public class FaxSender {
    public void sendFax(String filePath, String faxNumber) {
        // 1. 連接 FAX 服務 (ProgID 需對應登錄表)
        ActiveXComponent faxServer = new ActiveXComponent("FaxServer.FaxServer.1");
        Dispatch faxObj = faxServer.getObject();

        // 2. 開啟連線
        Dispatch.call(faxObj, "Connect", "");

        // 3. 建立文件物件
        Dispatch doc = Dispatch.call(faxObj, "CreateDocument", filePath).toDispatch();

        // 4. 設定收件資訊
        Dispatch.put(doc, "RecipientName", "Someone");
        Dispatch.put(doc, "FaxNumber", faxNumber); // 格式需符合 Modem 驅動要求
        Dispatch.put(doc, "DisplayName", "SenderName");

        // 5. 發送
        Dispatch.call(doc, "Send");

        // 6. 斷開
        Dispatch.call(faxObj, "DisConnect");
    }

    public static void main(String[] args) {
        try {
            new FaxSender().sendFax("https://www.bt285.cn/WW.doc", "028886666");
            System.out.println("ok fax transfer successfully!");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

常見錯誤與排解

錯誤原因解決
No ProgID / Can't create objectProgID 錯誤或 Fax 服務未註冊用 regedit 搜尋 FaxServer 確認正確 ProgID
UnsatisfiedLinkErrorjacob.dll 版本與 JDK/JRE 不匹配換用 Jacob 1.9 + JDK 1.4~1.6,或升級 Jacob 至新版
傳真發送失敗Modem 不支援 Class 1/2 指令集確認 Modem 驅動支援 Fax Class 1.0/2.0

架構說明

Java → JNI → jacob.dll → Windows COM → FaxServer.FaxServer.1 (Windows Fax Service) → Modem 發送。適用於需整合傳統傳真伺服器的企業系統。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved