欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入
1.我的word转pdf用到了一个虚拟的打印机,安装一个Adobe Acrobat 7.0 Professional就可以了
2.配置虚拟打印机,开始–打印机和传真–添加打印机—一步一步的配置就行了。
3.点击配置的打印机右键首选项—-设置—-把不要发送字体到打印机取消勾选
4.下载Jacob.jar包。把jacob.jar所对应的Jacob.dll放在windows/sys32下或者jre/bin下
5.代码部分
代码
package demo;
import java.io.File;
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.ComThread;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;
/*
* 注意word转pdf要安装虚拟打印机,且要配置
* 使用jacob框架,把dll文件放到jre/bin目录下
*/
public class WordToPdf {
private ActiveXComponent wordCom = null;
private Object wordDoc = null;
private final Variant False = new Variant(false);
private final Variant True = new Variant(true);
/**
* 打开word文档
*
* @param filePath word文档
* @return 返回word文档对象
*/
public boolean openWord(String filePath) {
//建立ActiveX部件
wordCom = new ActiveXComponent(“Word.Application”);
try {
//返回wrdCom.Documents的Dispatch
Dispatch wrdDocs = wordCom.getProperty(“Documents”).toDispatch();
//调用wrdCom.Documents.Open方法打开指定的word文档,返回wordDoc
wordDoc = Dispatch.invoke(wrdDocs, “Open”, Dispatch.Method,
new Object[] { filePath }, new int[1]).toDispatch();
return true;
} catch (Exception ex) {
ex.printStackTrace();
}
return false;
}
/**
* 关闭word文档
*/
public void closeWord(boolean saveOnExit) {
if (wordCom!=null) {
//关闭word文件
//Dispatch.call(wordDoc, “Close”, new Variant(saveOnExit));
wordCom.invoke(“Quit”,new Variant[]{});
//wordCom.invoke(“Quit”,new Variant[0]);
wordCom=null;
//释放在程序线程中引用的其它com,比如Adobe PDFDistiller
ComThread.Release();
}
}
[1][2]
人生的成功不过是在紧要处多一份坚持,