本帖最后由 张荫 于 2018-2-1 14:45 编辑
大家在工作之后可能会遇到上传一个word文件然后要显示在html的页面当中的问题。那么有什么好得解决方案呢?
我这里有2种解决方案:
1.将word文件转换成html在页面中显示出来
2.将word转换成pdf使用插件展示pdf文件。
使用第一种方式有如下弊端,word中有图片,转换成为html之后,整个文档的格式由于有图片,或者表格可能发生会变化。
使用word转pdf由于转换成pdf之后不管有没有图片或者表格对我们的格式都没有影响。
所以我们使用第二种方式来实现。
查阅了相关资料我决定选用jacob来实现将word转化成为pdf。jacob.jar的下载地址 如果这个地址不能使用请使用这个
jacob-1.18.zip
(472.78 KB, 下载次数: 175)
简介:
jacob(java com bridge,java com桥)分为两个部分,jacob.jar,jacob.dll,使用时两个东西的版本要一致,而且还分32位和64位,它的位数和jdk的位数有关,与操作系统的位数无关。它的原理是通过java的jni功能,调用系统组件dll,通过这个com桥来操作com组件(windows的一种软件编程技术吧),最终完成对office文档的操作。
使用前操作:
1、把dll文件放在%JAVA_HOME%\bin下(注意系统是32位还是64位),也可以放在C:\Windows\System32下,如果是64位应该放在C:\Windows\SysWOW64 下。建议放在jdk的bin目录下
2、如果是在eclipse下开发,需要重新引入jdk(Preference/Java/Installed JREs)
3、开发时将jacab.jar包放在项目lib下并add到liabraries中即可。
使用jacob有如下几个要求。
1.服务器要使用windows操作系统
2.服务器需要安装office 最好是使用2000及以上版本
3.不同的操作系统会存在不同方法的环境配置问题。
下面说下我遇到的情况:
解压后获得3个文件:
jacob.jar
jacob-1.18-x64.dll
jacob-1.18-x86.dll
jacob.jar 放到项目的lib目录
win10:将jacob-1.18-x86.dll 放到C:\Windows\SysWOW64
win7或win8:
jacob-1.18-x64.dll 放到C:\Windows\System32
jacob-1.18-x86.dll 放到C:\Windows\SysWOW64
注:
win7/win8就是这么设计的, System32放64位dll,SysWOW64放32位。
还要注意的是,32位JDK只能加载32位DLL,64位JDK只能加载64位DLL,不能互相兼容。
到这里我们就把jacob集成到我们的程序里了。
下面就是去转化了:
[Java] 纯文本查看 复制代码 /**
*
* <p>Title: word2pdf</p>
* <p>Description: 将word转换成pdf</p>
* @param docfile word文件路径
* @param pdffile pdf文件路径
*/
public static void word2pdf(String docfile, String pdffile)
{
// 启动word应用程序(Microsoft Office Word 2003)
ActiveXComponent app = null;
try{
ComThread.InitSTA();
app = new ActiveXComponent("Word.Application");
app.setProperty("Visible", false);
System.out.println("*****正在转换...*****");
Dispatch docs = app.getProperty("Documents").toDispatch();
Dispatch doc = Dispatch.call(
docs,
"Open",
docfile,
false,
true).toDispatch();
Dispatch.call(doc, "ExportAsFixedFormat", pdffile, WD2PDF);
// 关闭word文件
Dispatch.call(doc, "Close", false);
}
catch (Exception e)
{ ComThread.Release();
e.printStackTrace();
}
finally
{
//关闭word应用程序
app.invoke("Quit", 0);
ComThread.Release();
}
System.out.println("*****转换完毕********");
}
以上就是如何将word转换为pdf
谢谢观看。
|