使用jacob打印word或excel
在看PDF打印的時候順便也看了看word和excel的打印,這里只簡單的知道如何使用,原理沒有深究~
首先這里只說打印,至于生成word或者excel,可以使用poi(jacob貌似也可以)
JACOB是一個 JAVA到微軟的COM接口的橋梁。使用JACOB允許任何JVM訪問COM對象,從而使JAVA應用程序能夠調用COM對象。如果你要對 MS Word、Excel 進行處理,JACOB 是一個好的選擇。
而關于打印的話,總結起來有這么幾個步驟。
1、使用Jacob創建 ActiveX部件對象:
ActiveXComponent wd = new ActiveXComponent("Word.Application");
2、打開Word文檔
Dispatch.put(wd, "Visible", new Variant(true)); // 這里Visible是控制文檔打開后是可見還是不可見,若是靜默打印,那么第三個參數就設為false就好了 Dispatch document = wd.getProperty("Documents").toDispatch(); Dispatch doc = Dispatch.invoke(document, "Open", Dispatch.Method, new Object[] { filePath }, new int[1]).toDispatch();
3、設置打印機
wd.setProperty("ActivePrinter", new Variant("pdfFactory Pro"));
第二個參數即為打印機的name
4、設置打印參數并打印
Dispatch.callN(doc, "PrintOut", new Object[]{});
5、最后關閉Word文檔
wd.invoke("Quit", new Variant[] {});
到這里,利用jacob打印就實現了,并且只要將第一步中創建的ActiveX部件對象改成Excel.Application就可以實現Excel的打印了
這里在說點題外話,之前說了jacob還可以操作word和excel,這里簡單提一下
可以看到在上面的第2步中,我們使用“open”打開了一個現有的word文檔,如果改用“add”,那么我們就可以新建一個文檔了
Dispatch document = Dispatch.call(documents, "Add").toDispatch(); // 使用Add命令創建一個新文檔 Dispatch wordContent = Dispatch.get(document, "Content").toDispatch(); // 取得word文件的內容 Dispatch.call(wordContent, "InsertAfter", "這里是一個段落的內容");//插入一個段
另外需要注意的是,在使用jacob時,不僅需要添加jacob的jar包,在java安裝目錄下的bin目錄中也要復制jacob的dll文件,否則會報錯:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no jacob-1.14.3-x86 in java.library.path
來自:http://blog.csdn.net/u012345283/article/details/41053977
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!