龙空技术网

office文档在windows、linux服务器下在线预览-windws篇

作家程序猿 222

前言:

眼前你们对“excel加载wind插件”可能比较珍视,姐妹们都想要剖析一些“excel加载wind插件”的相关内容。那么小编在网摘上网罗了一些对于“excel加载wind插件””的相关内容,希望咱们能喜欢,同学们快快来学习一下吧!

昨天,写了一篇复杂word模板导出的设置,好多粉丝都私信问我如何实现在线预览的功能~~

那么我们今天就重点来讲讲office文档(word、excel、ppt、pdf)如何通过java在windows以及linux服务器环境下实现在线预览的效果~~

一:windows篇

如果你的服务器部署在windows下面,要想实现office文档的在线预览功能,就比较的简单了,目前主流的工作有JNA调用方式、openoffice服务调用转换方式等等。

但是,个人并不推荐使用openoffice,因为他在转换时,会出现文件变形、字符乱码、XML格式转换无效、大文件转换超时失败等等一系列让你很尴尬的问题!

那么,既然是在windows服务器,我觉得最简单实用的方式就是JNA调用方式。

目前,应用比较普及的是jcom、jacob插件,jcom仅仅支持32位jdk,所以还是选择jacob比较方便,相关的jacob.dll去网上下载即可,百度一下,一大把~~~~

jacob(即:JAva COm Bridge)配置,首先需要将下载的jacob.dll文件拷贝到C:/WINDOWS/system32目录下,并将jacob.jar添加到CLASSPATH中。

那么此时,所有的office都可以调用其“另存为”的功能,可以另存为PDF、HTML、JPG等等许许多多的格式,进而可以加载转换后的路径,实现在线预览。

那么,我们就重点一步一步来讲一下,如何通过JACOB调用com组件的另存为的功能~~~

1:ComThread.InitSTA(); com组件线程的初始化

2:ActiveXComponent app = null;

app = new ActiveXComponent("Powerpoint.Application"); ---PPT

app = new ActiveXComponent("Word.Application"); ---WORD

app = new ActiveXComponent("Excel.Application"); ---Excel

启动 ppt、word、excel的com组件

扩展一下:JACOB获取com组件的类型包括

jacob常用的com组件

3:组件的属性设置

app.setProperty("Visible", false); ----不可见,另存转换时,设置文档不可见

此处一直没有找到一个最全的属性设置的方法名的API手册,大家有的话希望能给我分享一下。

4:获取文档控制权

Dispatch docs= app.getProperty("Documents").toDispatch();

Workbooks---Excel

Presentations ---PPT

Documents---WORD

5:把目标文档的内容,赋给当前新建的文档

Dispatch doc = Dispatch.call(docs,"Open",sourceUrl,false,true ).toDispatch();

docs----新起的com文档 ;Open-----打开文档

sourceUrl----目标文档路径;false---是否确认转换;true----是否只读

6:调用“另存为”方法,比如另存为HTML

Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[] {htmlfileUrl, new Variant(10) }, new int[1]);

htmlfileUrl-----为word另存为HTML的路径地址

“10”-----这个参数就是代表的是,另存为HTML格式。

7:关闭当前文档并退出!!!!!!!

Variant f = new Variant(false);

Dispatch.call(doc, "Close", f);

app.invoke("Quit", new Variant[] {});

其实,说这么多,也就是调用了一个另存为的功能。其实JACOB还有许许多多的功能,比如对于文档内容、域、书签等等操作还需要对JACOB以及相关com组件自己的API方法加深查看~~

下面就贴一些为了实现《另存为》转换的三种office文档的代码吧~~

word转HTML

excel转HTML

PPT转图片文件夹

最后,可以通过调用相关的html的地址、pdf的地址、图片文件夹的地址(PPT转成图片文件夹时,都按照PPT的顺序排好了顺序),就可以实现在线预览了~~~这种方式word不会变形、xls不管有多少sheet页也不会变形、ppt顺序不会混乱~~~

那么下一篇,我们就重点说一下在LINUX环境下,如何实现这些功能!因为LINUX无法调用JNA组件!!!!

标签: #excel加载wind插件