Java jacob调用打印机打印word文档
2016-04-01 19:58
579 查看
前面说了Java如何生成复杂的Word文档,今年记录下Java如何调用打印机打印word文档。
起初用的是自带的PrintJob,但是系统提供的打印机制并不成熟完整。网上的代码也是千篇一律,在我的打印设备Canon iR2525/2530 UFRII LT上,我能获取到打印机的各属性,当前任务数。但是打印机没反应。
可参考这两篇文章:
http://www.360doc.com/content/05/0916/11/332_12789.shtml
http://www.ibm.com/developerworks/cn/java/l-javaprint/
折腾了好久,最终决定由用一个第三方的,找到了jacob,还不错,特此记录下。
1.将jacob的dll文件拷贝到C:\Windows\System32中。
2.在任务管理器中将服务DCom Server Process Launcher(DcomLaunch)打开。
3.将jacob.jar拷贝到项目的/libs目录下。
值得注意的是,我在Windows Server 2008上,找不到dll文件,报错:Exception in thread "main" java.lang.UnsatisfiedLinkError: no jacob-1.17-x86 in java.library.path
但是在win系统上,就没事了。
所以这时候你需要将dll文件也拷贝至你的jdk/bin目录下,jdk/jre/bin目录下,以及jre/bin目录下。这样就没有什么问题了。
代码如下:
示例代码:
http://pan.baidu.com/s/1o7NrPcY up56
如果此文对您有帮助,微信打赏我一下吧~
起初用的是自带的PrintJob,但是系统提供的打印机制并不成熟完整。网上的代码也是千篇一律,在我的打印设备Canon iR2525/2530 UFRII LT上,我能获取到打印机的各属性,当前任务数。但是打印机没反应。
可参考这两篇文章:
http://www.360doc.com/content/05/0916/11/332_12789.shtml
http://www.ibm.com/developerworks/cn/java/l-javaprint/
折腾了好久,最终决定由用一个第三方的,找到了jacob,还不错,特此记录下。
1.将jacob的dll文件拷贝到C:\Windows\System32中。
2.在任务管理器中将服务DCom Server Process Launcher(DcomLaunch)打开。
3.将jacob.jar拷贝到项目的/libs目录下。
值得注意的是,我在Windows Server 2008上,找不到dll文件,报错:Exception in thread "main" java.lang.UnsatisfiedLinkError: no jacob-1.17-x86 in java.library.path
但是在win系统上,就没事了。
所以这时候你需要将dll文件也拷贝至你的jdk/bin目录下,jdk/jre/bin目录下,以及jre/bin目录下。这样就没有什么问题了。
代码如下:
public class TestDoc { public static void main(String[] args) { String path="D:\\yanqiong.doc"; System.out.println("开始打印"); ComThread.InitSTA(); ActiveXComponent word=new ActiveXComponent("Word.Application"); Dispatch doc=null; Dispatch.put(word, "Visible", new Variant(false)); Dispatch docs=word.getProperty("Documents").toDispatch(); doc=Dispatch.call(docs, "Open", path).toDispatch(); try { Dispatch.call(doc, "PrintOut");//打印 } catch (Exception e) { e.printStackTrace(); System.out.println("打印失败"); }finally{ try { if(doc!=null){ Dispatch.call(doc, "Close",new Variant(0)); } } catch (Exception e2) { e2.printStackTrace(); } //释放资源 ComThread.Release(); } } }
示例代码:
http://pan.baidu.com/s/1o7NrPcY up56
如果此文对您有帮助,微信打赏我一下吧~
![](https://images2015.cnblogs.com/blog/746143/201703/746143-20170315102010448-2095416403.jpg)
相关文章推荐
- Java-二进制
- Java for Web学习笔记(十八):Session(2)Session的使用
- Java 正则表达式的匹配
- 像Maven一样构建java项目的目录,更好的管理java工程的源码
- java基础知识总结(二)
- java异常处理
- 跟着柴毛毛学Spring(3)——简化Bean的配置
- 跟着柴毛毛学Spring(3)——简化Bean的配置
- java集合总结
- 三句java语句连接到jsp文件的作用
- IT十八掌作业_java基础第26天_Java基础总结/虚拟机基础
- IT十八掌作业_java基础第25天_NIO
- IT十八掌作业_java基础第24天_NIO
- [Java]常用虚拟机参数
- Java虚拟机相关知识(2)—对象的创建
- 你不知道的Spring配置文件
- java的重写、重载、覆盖的差别
- JDK自带XML和java对象相互转换
- Java实现银行卡号的校验
- java volatile变量