java jacob调用打印,word,excel横向打印

public static boolean printOfficeFile(File f) { if (f != null && f.exists()) { String fileNameString = f.getName(); String postfixString = Utils.getPostfix(fileNameString); if (postfixString.equalsIgnoreCase("xls")|| postfixString.equalsIgnoreCase("xlsx")) {/*** 功能:实现excel打印工作*/ComThread.InitSTA();ActiveXComponent xl = new ActiveXComponent("Excel.Application");try {// System.out.println("version=" +// xl.getProperty("Version"));// 不打开文档Dispatch.put(xl, "Visible", new Variant(false));Dispatch workbooks = xl.getProperty("Workbooks").toDispatch();// 打开文档Dispatch excel = Dispatch.call(workbooks, "Open",f.getAbsolutePath()).toDispatch();// 横向打印(2013/05/24)//Dispatch currentSheet = Dispatch.get(excel, "ActiveSheet")//.toDispatch();//Dispatch pageSetup = Dispatch//.get(currentSheet, "PageSetup").toDispatch();//Dispatch.put(pageSetup, "Orientation", new Variant(2));//每张表都横向打印2013-10-31Dispatch sheets = Dispatch.get((Dispatch) excel, "Sheets").toDispatch();// 获得几个sheetint count = Dispatch.get(sheets, "Count").getInt();//System.out.println(count);for (int j = 1; j <=count; j++) {Dispatch sheet = Dispatch.invoke(sheets, "Item",Dispatch.Get, new Object[] { new Integer(j) },new int[1]).toDispatch();Dispatch pageSetup = Dispatch.get(sheet, "PageSetup").toDispatch();Dispatch.put(pageSetup, "Orientation", new Variant(2));Dispatch.call(sheet, "PrintOut");}// 开始打印if (excel != null) {//Dispatch.call(excel, "PrintOut");//增加以下三行代码解决文件无法删除bugDispatch.call(excel, "save");Dispatch.call(excel, "Close" , new Variant(true));excel=null;}xl.invoke("Quit", new Variant[] {});xl=null;return true;} catch (Exception e) {e.printStackTrace();return false;} finally {// 始终释放资源ComThread.Release();} } else if (postfixString.equalsIgnoreCase("doc")|| postfixString.equalsIgnoreCase("docx")) {ComThread.InitSTA();ActiveXComponent wd = new ActiveXComponent("Word.Application");try {// 不打开文档Dispatch.put(wd, "Visible", new Variant(false));Dispatch document = wd.getProperty("Documents").toDispatch();// 打开文档Dispatch doc = Dispatch.invoke(document, "Open",Dispatch.Method, new Object[] { f.getAbsolutePath() },new int[1]).toDispatch();// 开始打印if (doc != null) {Dispatch.call(doc, "PrintOut");//增加以下三行代码解决文件无法删除bugDispatch.call(doc, "save");Dispatch.call(doc, "Close" , new Variant(true));doc=null;}wd.invoke("Quit", new Variant[] {});wd=null;return true;} catch (Exception e) {e.printStackTrace();return false;} finally {// 始终释放资源ComThread.Release();} } else {return false; } } else { return false; } }

,如果心胸不似海,又怎能有海一样的事业。

java jacob调用打印,word,excel横向打印

相关文章:

你感兴趣的文章:

标签云: