使用jacob打印word或excel

本文介绍如何使用JACOB库实现Word和Excel文档的打印功能。通过创建ActiveX部件对象,打开文档,设置打印机及参数,完成打印过程。同时简述了通过JACOB操作Word和Excel的基本方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在看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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值