折腾了好久,最终决定由用一个第三方的,找到了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(); } } }
相关推荐
Java打印Word文档通常涉及到对Microsoft Office接口的调用,而JACOB(Java COM Bridge)是一个Java库,它为Java应用程序提供了与COM组件交互的能力,包括Microsoft Word。JACOB通过JNI(Java Native Interface)技术...
本文将深入探讨如何利用Jacob库实现本地Excel和Word文档的打印功能。 首先,让我们理解Jacob的核心概念。Jacob库是Java和COM接口之间的桥梁,它使得开发者能够通过Java代码直接调用Windows操作系统中的COM组件,这...
在这个场景中,我们使用Jacob来实现Word文档到PDF的转换,以保持格式的一致性和美观性。在转换过程中,确保你的计算机上已经安装了Office 2010或更高版本,因为较低版本可能无法支持某些功能,导致转换失败或出现...
PDFCreator是一个虚拟打印机,它可以将任何可以打印的文档转换成PDF。通过设置打印作业的目标为PDFCreator,我们可以在Java中调用打印接口,实现doc到pdf的转换。 5. **Jacob的使用步骤**: - 首先,需要将Jacob...
2. **使用Jacob打印Word文档**: - 首先,你需要创建一个`ActiveXComponent`对象,表示Word应用实例。例如: ```java import com.jacob.com.*; ActiveXComponent word = new ActiveXComponent("Word....
1. **Office自动化**:在Java应用中生成、编辑或分析Office文档,如报表生成、邮件合并等。 2. **系统集成**:与其他Windows应用程序或服务进行交互,如控制打印机、读写注册表等。 3. **自动化测试**:在Java测试...
- **Word转PDF**:由于Jacob可以直接操作Word文档,因此可以通过它将Word文档转换为PDF格式,这对于企业自动化处理文档流程非常有用。 - **文件操作**:除了转换,Jacob还可以用来创建、读取和修改Word、Excel等...
- **自动化Office文档处理**:使用Jacob,你可以编写Java程序来创建、编辑和保存Word文档、Excel电子表格或PowerPoint演示文稿。 - **系统管理**:可以通过Jacob访问Windows注册表,或者控制打印机、网络共享等系统...
1. **Office自动化**:Jacob常用于自动化处理Word、Excel、PowerPoint等Microsoft Office文档,进行数据导入导出、格式转换、报表生成等工作。 2. **ActiveX控件**:通过Jacob,Java应用可以与网页中的ActiveX控件...
例如,如果要使用Jacob调用Excel进行数据处理,你可以创建一个`ActiveXComponent`实例,然后通过它的`invoke`方法调用Excel的各种方法,如打开工作簿、读写单元格数据等。 总的来说,Jacob-1.14.3-x64是Java开发者...
在实际应用中,当需要在64位Java环境中调用如Excel、Word等Office组件,或者任何其他基于COM的Windows应用程序时,64位Jacob库就显得尤为重要。例如,你可以使用Jacob来自动化Office文档的生成、修改或分析,也可以...
在Java项目中,我们需要将这个jar包添加到项目的类路径中,以便编译和运行包含Jacob调用的Java代码。 Jacob库的核心功能主要包括: - **自动化办公软件**:如Word、Excel等,可以创建、修改、格式化文档,执行宏等...
标题提到的“World”可能是误打,实际应该是“Word”,因为Jacob的一个常见应用就是处理Microsoft Word文档。 在提供的描述中,我们看到了三个不同版本的jacob.dll文件,分别是jacob-1.14.3-x64.dll、jacob-1.17-x...
1. **集成Office应用**:例如,自动化Excel表格的生成和编辑,或者从Word文档中提取数据。 2. **调用Windows API**:例如,读取系统信息,控制打印机,或与硬件设备通信。 3. **与第三方软件交互**:如果有些功能只...
- 打开和操作Word文档:创建一个新的Word文档,插入文本,保存文件等。 - 数据分析:通过Excel API读取、写入和处理电子表格数据。 - 控制打印机:设置打印参数,打印文档等。 - 访问硬件设备:通过COM接口与...
这种方式虽然比纯Java解决方案更为复杂,但在处理与Windows操作系统紧密集成的任务时,如Excel、Word文档操作、打印机管理等,却显得非常实用。 使用Jacob,开发者可以: 1. **创建COM对象**:通过Jacob,你可以...
在Jacob中,JNI被用来在Java虚拟机和本地(非Java)代码之间建立桥梁,使得Java程序能够加载并调用“jacob-1.16-M2-x64.dll”这样的本地库。 3. **COM(Component Object Model)**:微软提出的一种软件接口技术,...
- 与Excel、Word等Office应用进行数据交互,比如自动化文档处理。 - 访问Windows操作系统API,例如文件操作、系统信息获取等。 - 调用Windows特定的COM服务,如打印机管理、数据库连接等。 - 与ActiveX控件交互,当...
1. **自动化办公软件**:如使用Jacob调用Microsoft Office接口,实现Java程序对Word、Excel等文档的自动化操作,进行数据导入导出、格式转换等任务。 2. **系统集成**:Java应用程序可以通过Jacob与各种Windows特定...