运用Jacob进行Excel的打印属性设置

相关介绍可参照博客http://blog.csdn.net/hemingwang0902/article/details/4377994

以下摘录部分内容进行简述:

  Jacob ,官方的解释是Java COM Bridge,即java和com组件间的桥梁。com一般表现为dll或exe等二进制文件(如:jacob.dll文件),这里说说为什么我们用Java去操纵office(如:Word)要使用com,而不直接使用java去做?

  首先,我们清楚office是建立在Windows平台之上的,本身是一个软件,除了他自己提供的宏似乎没有什么能对它进行直接的操作;在windows平台上为了解决像这样的不同应用软件,通信缺乏通用api问题,推出了com的解决方案

    其次,我们使用dll中的一组或多组相关的函数存取组件数据,总的合称为接口,具体到每个细节的实现称为方法;如果我们要调用接口里的方法,唯一的途径就是调用指向接口的指针;
  所以总的来说使用就是dll完成api的转换。

  

  下面利用Jacob进行Excel的打印:

 1 import com.jacob.activeX.*;
 2 import com.jacob.com.*;
 3 
 4 public class Print {
 5     private static final String PRINT_NAME=new String("FX7AF20D"); 
 6     /**
 7      * @param path 打印路径地址,形如 \\XX\\YY.xls
 8      * @param copies 打印份数
 9      */
10     public static void printExcel(String path,int copies){
11         if(path.isEmpty()||copies<1){
12             return;
13         }
14         //初始化COM线程
15         ComThread.InitSTA();
16         //新建Excel对象
17         ActiveXComponent xl=new ActiveXComponent("Excel.Application");
18         try { 
19             System.out.println("Version=" + xl.getProperty("Version"));
20             //设置是否显示打开Excel  
21             Dispatch.put(xl, "Visible", new Variant(true));
22             //打开具体的工作簿
23             Dispatch workbooks = xl.getProperty("Workbooks").toDispatch(); 
24             Dispatch excel=Dispatch.call(workbooks,"Open",System.getProperty("user.dir")+path).toDispatch(); 
25             
26             //设置打印属性并打印
27             Dispatch.callN(excel,"PrintOut",new Object[]{Variant.VT_MISSING, Variant.VT_MISSING, new Integer(copies),
28                     new Boolean(false),PRINT_NAME, new Boolean(true),Variant.VT_MISSING, ""});
29             
30             //关闭文档
31             //Dispatch.call(excel, "Close", new Variant(false));  
32         } catch (Exception e) { 
33             e.printStackTrace(); 
34         } finally{
35             //xl.invoke("Quit",new Variant[0]);
36             //始终释放资源 
37             ComThread.Release(); 
38         } 
39     }
40 }

  网上的帖子中很少有提到打印机选项设置的,因为运用了Office的功能,所以需要查找MSDN ,具体参见PrintOut 方法 (Excel)

  参数摘录如下: 

名称

必需/可选

数据类型

说明

From

可选

Variant

在要打印的页的页码。如果省略此参数,则从开头开始打印。

To

可选

Variant

最后一个要打印的页的数目。如果省略该参数,则打印完最后一页后停止。

Copies

可选

Variant

要打印的份数。如果省略此参数,则只打印一份。

Preview

可选

Variant

如果为 True,Microsoft Excel 将在打印对象之前调用打印预览。如果为 False(或省略该参数),则立即打印对象。

ActivePrinter

可选

Variant

设置活动打印机的名称。

PrintToFile

可选

Variant

如果为 True,则打印到文件。如果没有指定 PrToFileNameMicrosoft Excel 将提示用户输入要使用的输出文件的文件名。

Collate

可选

Variant

如果为 True要逐份打印多个副本。

PrToFileName

可选

Variant

如果PrintToFile设置为True,则此参数指定您想要打印到的文件的名称。

IgnorePrintAreas

可选

Variant

如果为 True要忽略打印区域并打印整个对象。

  

  在上文给出的源码中,第27行即是设置打印机的打印属性。

转载于:https://www.cnblogs.com/JunJiang/p/3355754.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值