java如何設置插件(JAVA調用控制項入門)
2023-04-15 21:08:05
1. 說明
B/S架構的系統,一般後臺是JAVA語言,前臺是html js,控制項對象是在前臺加載運行,所以與後臺java語言沒有關係,調用控制項函數直接使用js語言,然後js再與後臺java語言通信。
如果想要在後臺處理DWG圖紙,比如轉pdf,jpg,或提取信息,這時就需要java調用控制項了,因控制項提供開發API是使用COM技術封裝,所以java需要使用jacob庫來調用,java如何調用COM接口,可以百度Java com 調用,先學習一下java如何調用COM。
2. java調用控制項API流程
2.1、下載控制項
在http://www.mxdraw.com/download.html下載控制項最新安裝包,如下 :
下載的是一個exe程序,它是一個自解壓縮包,雙擊直接解壓,在解壓目錄下有如下文件:
管理員方式運行」RegMxDrawX.bat」註冊控制項,或直接運行MxDrawx86Setup(20200624).exe程序安裝控制項。
2.2、在Eclipse中使用JAVA調用
下載http://www.mxcad.net:2080/JavaCom.rar,java包,該包可以讓java調用com組件。
然後雙擊解壓,得到如下文件:
把jacob-1.17-M2-x64.dll,jacob-1.17-M2-x86.dll拷到
java/jdk/bin 目錄下,java/jre/bin目錄下,和C:/Windows/system32
新建一個JAVA工程
2.3、編寫代碼,調用控制項
下面代碼,打開1.dwg圖紙,然後轉成一個jpg文件。
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;
public class MyTest {
public static void main(String[] args) {
//com組件調用
ActiveXComponent smsg = new ActiveXComponent("MxDrawX.MxDrawService");
// 獲取Active對象
Dispatch msg = smsg.getObject;
// 調用組件方法,打開指定dwg文件
Variant v = msg.call(msg, "open", "e:/1.dwg");
System.out.println(v);
Object[] colorparams = new Object[] { 255, 255, 255 };
msg.call(msg, "SetViewColor", colorparams);
// 參數 jpg保存路徑,位圖寬度方向的像素,-1取系統默認值:1000 ,位圖寬度方向的像素,-1取系統默認值:1000
Object[] params = new Object[] { "e:/1.jpg", 600, 860 };
//將打開的dwg圖紙,保存為jpg文件.
msg.call(msg, "WriteJpg", params);
//關閉打開的dwg文件
msg.call(msg, "close");
smsg.safeRelease;
}
};
2.3、MxDrawService說明
MxDrawService是專門提供的一個,伺服器後臺調用組件,它可以在不需要控制項界面時,調用控制項相關接口,更多該組件的函數的說明,可以參考控制項安裝目錄下:MxDraw5.2Help(20200624).chm文件:
3. 技術建議
在伺服器後臺自動處理DWG圖紙,比DWG圖轉pdf,jpg,圖紙剪切,等費時操作時,儘量把這塊工作寫到一個單獨的exe程序中(控制臺程序也行),然後在java服務後臺程序調用該exe進程,把要處理的圖紙通過命令行參數傳給進程,進程處理好後,把結果寫到一個約定位置的json文件,java後臺程序只需要在一個時種中每過幾秒去看一下那個json文件是否生成,得到處理結果,這樣有三個好處:費時操作不會阻塞java服務主進程,處理程序如果崩潰不會影響主進程,可以輕鬆做多到多進程同時處理多個圖紙。
,