java使用jacob实现word转pdf
如何使用Java和jacob实现Word转PDF?
在写这篇文章之前,我们需要先明确一些概念:
1. jacob是什么?
jacob是一款开源的Java-COM桥接工具,它使得Java程序可以用来调用COM组件,例如Microsoft Office,来实现一些自动化操作。
2. Word是什么?
Word是微软公司开发的一款文本编辑器,它可以在Windows和MacOS平台上运行。
3. PDF是什么?
PDF是Portable Document Format(可移植文档格式)的缩写,是Adobe公司开发的一种用于电子文档交换的标准格式。
在了解了这些概念之后,我们开始讲解使用jacob实现Word转PDF的过程。
1. 下载jacob
jacob可以到官网https://sourceforge.net/projects/jacob-project/下载,下载最新版本jacob-1.19(20191023)直接下载zip解压到本地即可。
2. 安装Microsoft Office
因为我们要用到Microsoft Office,所以需要先安装Office。
3. 将jacob的jar包添加到项目中
在项目中添加jacob.jar。
4. 编写Word转PDF代码
在程序中使用Java调用Word的COM组件,实现将Word转为PDF的功能。
代码如下:
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;
import java.io.File;
public class WordToPdf {
public static void main(String[] args) {
//打开word应用程序
ActiveXComponent app = new ActiveXComponent("Word.Application");
try {
//设置是否显示打开word
app.setProperty("Visible", new Variant(false));
//获得wordApp的Documents对象
Dispatch documents = app.getProperty("Documents").toDispatch();
//打开文件
Dispatch doc = Dispatch.call(documents, "Open", "D://test.docx").toDispatch();
//转换格式
Dispatch.call(doc, "ExportAsFixedFormat", "D://test.pdf", 17);
//关闭文档
Dispatch.call(doc, "Close", new Variant(0));
} catch (Exception e) {
e.printStackTrace();
} finally {
//关闭word应用程序
app.invoke("Quit", new Variant(true));
}
}
}
代码解释:
(1)ActiveXComponent app = new ActiveXComponent("Word.Application");创建一个Word应用程序。
(2)app.setProperty("Visible", new Variant(false));设置是否显示Word。
(3)Dispatch documents = app.getProperty("Documents").toDispatch();获取Word中的所有文件。
(4)Dispatch doc = Dispatch.call(documents, "Open", "D://test.docx").toDispatch();打开我们要转换的Word文件。
(5)Dispatch.call(doc, "ExportAsFixedFormat", "D://test.pdf", 17);将Word转换成PDF格式。
(6)Dispatch.call(doc, "Close", new Variant(0));关闭Word文件。
(7)app.invoke("Quit", new Variant(true));关闭Word应用程序。
至此,我们已经完成了使用Java和jacob实现Word转PDF的过程。
