java用JCom打印

用JCOM实现打印如打印word和Excel等的

 

import jp.ne.so_net.ga2.no_ji.jcom.IDispatch;
import jp.ne.so_net.ga2.no_ji.jcom.JComException;
import jp.ne.so_net.ga2.no_ji.jcom.ReleaseManager;
import jp.ne.so_net.ga2.no_ji.jcom.excel8.ExcelApplication;
import jp.ne.so_net.ga2.no_ji.jcom.excel8.ExcelWorkbook;
import jp.ne.so_net.ga2.no_ji.jcom.excel8.ExcelWorkbooks;
import jp.ne.so_net.ga2.no_ji.jcom.excel8.ExcelWorksheet;

/**
 * @author admin
 */
public class TestPrint  {
	/**
	 * @param args
	 * 打印word
	 */
	public static void main(String[] args) {
		TestPrint tp = new TestPrint();
		String path="c:\\1111.doc";
        tp.print("Word.Application", "Documents", path);
	}
   /***
      * @param docApplication Application类型
      * @param docProperty  文档的属性
      * @param filePath 文件的绝对路径
      */
     public void print(String docApplication,String docProperty,String filePath){
         ReleaseManager rm = new ReleaseManager();
         try {
             IDispatch docApp = new IDispatch(rm, docApplication);
             docApp.put("Visible", new Boolean(false));

             IDispatch wdDocuments = (IDispatch) docApp.get(docProperty);
             Object[] arglist1 = new Object[1];
             
             arglist1[0] = (Object)filePath;
             IDispatch docDocument = (IDispatch) wdDocuments.method("Open",
                     arglist1);
             
             docDocument.method("PrintOut", null);
             docApp.method("Quit", null);
         }catch(JComException e){
             e.printStackTrace();
         }
         
         rm.release();
         rm = null;
     }
     
 	/**
 	 * @param fname  文件的路径名称
 	 * @return
 	 */
 	public boolean printExcel(String fname) {
		ReleaseManager rm = new ReleaseManager();
		try {
			ExcelApplication excel = new ExcelApplication(rm);

			ExcelWorkbooks xlBooks = excel.Workbooks();
			ExcelWorkbook xlBook = xlBooks.Open(fname);
			ExcelWorksheet xlSheet = excel.ActiveSheet();

			xlSheet.PrintOut();

			xlBook.Close(false, null, false);
			excel.Quit();
		} catch (Exception e) {
			e.printStackTrace();
			return false;
		} finally {
			rm.release();
		}
		return true;
	}
}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值