PDF报表操作01~~使用Jacob将word转换pdf
1. jacob介绍
jacob是Java与COM组件桥接的缩写,即JAVA-COM Bridge。通过使用Jacob类库,我们可以很方便地在Java程序中调用COM自动化组件。 Jacob最初是由美国人Dan Alder在Inventure公司担任CTO时编写的,目的是为了方便众多的程序员在Java2虚拟机上,调用Win32平台上COM自动化服务器中的组件。当Jacob项目以开源的方式在网络上公布以后,越来越多的人开始参与项目的研发与改进中去。 Jacob类库中只有两个包:com.jacob.activex和com.jacob.com。 1. com.jacob.activex包建立在com.jacob.com基础之上,主要包含了ActiveXComponent类。 2. com.jacob.com中有一个非常基础的类JacobObject,该包中比较常用的两个类Dispatch和Variant便是继承自JacobObject。
2. 使用场景
把Word转成PDF目前最简单的方式就是调用office的方法,本质上就是打开Word后另存为成pdf,通过什么方式来调用呢? 使用 jacob,速度上还是可以的,Word中的原样式也不会丢失。
3. 环境准备
最基本的环境:1、本机上安装了2007以上的office软件 2、jdk1.6以上的版本
3.1 百度云下载
在这里我也准备了一个 jacbo1.9 请在百度云自行下载 提取码:szy1
3.2 把下载的jar放入到本地仓库
这个jar从中央仓库中没有找到,需要我们自己打到本地仓库中。 进入到jar所在的目录执行以下命令:
注意: 不要在中文目录下操作
mvn install:install-file -DgroupId=com.jacob -DartifactId=jacob -Dversion=1.19 -Dfile=jacob.jar -Dpackaging=jar
3.3 把下面dll放入到java的jre/bin目录中
把dll文件放入到 jrein 目录下 64位的放x64文件,32位的放x86文件 如果不太确定是32位还是64位的就把两个dll都放进去
3.4 在项目中加入依赖
<dependency> <groupId>com.jacob</groupId> <artifactId>jacob</artifactId> <version>1.9</version> </dependency>
4. Jacob调用MS Office COM自动化组件转换Office文档为PDF
5. 代码展示
把我D盘下的Word转成PDF
@Test void contextLoads() { //输入文件地址 String source = "d://合同.docx"; //输出文件地址 String target = "d://合同.pdf"; //调用window中的office程序 ActiveXComponent app =null; try { //调用window中的office程序 app = new ActiveXComponent("Word.Application"); //调用word时,不显示窗口 app.setProperty("Visible",false); //获取文档 Dispatch docs = app.getProperty("Documents").toDispatch(); //打开指定的文档 Dispatch doc = Dispatch.call(docs, "Open",source).toDispatch(); //调用另存为功能 宏值 Dispatch.call(doc,"SaveAs",target,17); //关闭office Dispatch.call(doc,"Close"); } catch (Exception exception) { exception.printStackTrace(); }finally { //退出Office app.invoke("Quit"); } }
上一篇:
Python 安装包管理工具 pip
下一篇:
十个相见恨晚的编程工具