把office文档转换为html过程中的一些坑

之前和我们项目的团队一起酝酿了一个项目,公司的业务文档技术文档比较多,但都比较分散,虽然通过FTP或其他方式聚合起来了,但感觉还是不够方便。

另外公司每次都来新员工,新员工都需要一些培训,比较耗时,比较好的方法是把以前的配置录制视频然后线下先给新员工自己看,但时间久了,资料或视频总是找不到或不是最新等等。

于是我们团队想了一个项目,把已有的资料和视频从线下放到线上,就是能通过一个网站在线看office资料和视频。并且还能对资料评价和点赞等,根据点赞或想学等数据再决定是否对新员工或老员工来一次组织交流。

最开始的项目是参考百度文库,把Office资料转换为flash,视频资料直接存放,然后通过网站在线观看,用了flashpager这个软件,大体代码如下:

			String converter = pt.getFlashPaperUrl() + "/FlashPrinter.exe -o " + savePath + swfName + ".swf  " + documentName;
			Process p = pro.exec(converter);

  通过调用Process执行FlashPrinter.exe,然后传递指令和要转换的文件即可转换。

但公司去windows化和去microsoftoffice。这个exe只能运行在windows下,于是重新换了一个方法,在linux下自动把office文档转换为Html。

由于不能用微软的office,于是选用了openoffice,我本地下载的openoffice4.0.1,安装后先启动监听:

soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard &

JAVA代码就可以连接8100端口让openoffice帮我们把office文档转换为Html。

代码大体如下:

                OpenOfficeConnection con = new SocketOpenOfficeConnection("127.0.0.1", 8100);
                con.connect();
		// 创建转换器
		DocumentConverter converter = new OpenOfficeDocumentConverter(con);
		// 转换文档问html
		converter.convert(docFile, htmlFile);
		// 关闭openoffice连接
		con.disconnect();

  这样就把office文档转换为html文件:htmlFile了。

但ppt默认是转换为一个html文件,每一页ppt会生成一个图片,并且html文件是上一页下一页的形式每次只能看到一页ppt。我们希望把这个html直接展现所有ppt页的图片。于是稍微改造了下,把ppt转换为html后的文件夹下所有图片做轮训,然后拼接一个html文件:

<br><center><img src=" + tempDate + "/" + imgName+ " alt=\"\"></center>

 开发完成后,发现非常完美。

但后面还是遇到了两个坑,分析了很久才发现。

1、部分ppt转换Html始终是乱码。

2、部分word文档转换为html始终是空白。

上面两个问题折腾了比较久,有问题的office始终有问题,没有问题的office一定能转换成功,分析了很久才发现问题。

最后经过一页一页ppt,一个一个文字删除和转换才发现。

第一个问题ppt里如果有备注通过openoffice转换为html就会是乱码,并且内容很少。

第二个问题是word文档里部分文字复制到openoffice的文档里,可能有文字字体不兼容导致。就是比如wps打开这个word,看到都是宋体,但把文字复制到openoffice里,发现有几个字不是宋体了。

解决方法暂时是:

第一个问题把所有ppt的备注人工删除了,就能转换成功了。

第二个问题简单解决方法是把所有文字的字体都再重新修改成一样的字体,比如修改成宋体。

希望能给其他有类试想法或遇到相同问题的带来帮助,转载请注明来自:http://lawson.cnblogs.com

时间: 2024-10-07 13:35:37

把office文档转换为html过程中的一些坑的相关文章

C#实现office文档转换为PDF格式

需要安装office 2007 还有一个office2007的插件OfficeSaveAsPDFandXPS 下载地址 [url]http://www.microsoft.com/downloads/details.aspx?FamilyId=4D951911-3E7E-4AE6-B059-A2E79ED87041&displaylang=en[/url] 这是一个微软官方出的office插件. office2010里好像能直接将文件另存为.PDF格式的 安装好之后,打开VS,以VS2005为例

Java实现web在线预览office文档与pdf文档实例

https://yq.aliyun.com/ziliao/1768?spm=5176.8246799.blogcont.24.1PxYoX 摘要: 本文讲的是Java实现web在线预览office文档与pdf文档实例, 1.首先我们需要找到可以把office转换成pdf的方法,查找资料发现有openoffice这一软件可以把office转换成pdf,这一软件先下载下来,然后记住自己安装的在那个位置.然后在cmd环境下进入安装目录的program目 云计算 云服务器ECS 大数据 建站 备案 文档

java将office文档pdf文档转换成swf文件在线预览

java将office文档pdf文档转换成swf文件在线预览 第一步,安装openoffice.org   openoffice.org是一套sun的开源office办公套件,能在widows,linux,solaris等操作系统上执行. 主要模块有writer(文本文档),impress(演示文稿),Calc(电子表格),Draw(绘图),Math(公式),base(数据库) 笔者下载的是openoffice.org 3.3.0.下载完直接安装即可.      但是,我们还需要启动openof

基于MVC+EasyUI的Web开发框架经验总结(8)--实现Office文档的预览

在很多文章里面,曾经有一些介绍Office文档预览查看操作的,有些通过转为PDF进行查看,有些通过把它转换为Flash进行查看,但是过程都是曲线救国,真正能够简洁方便的实现Office文档的预览的还是比较少,这里的Office文档包括了Word.Excel.PPT文档.本文介绍两种方式,一种方式是通过在线预览的方式,利用微软的平台进行Office文档的在线查看:一种是把Office文档生成HTML文件后进行查看.然后对比他们的优缺点,并进行总结. 1.利用微软的平台进行Office文档的在线查看

基于MVC4+EasyUI的Web开发框架经验总结(8)--实现Office文档的预览

在博客园很多文章里面,曾经有一些介绍Office文档预览查看操作的,有些通过转为PDF进行查看,有些通过把它转换为Flash进行查看,但是过程都是曲线救国,真正能够简洁方便的实现Office文档的预览的还是比较少,这里的Office文档包括了Word.Excel.PPT文档.本文介绍两种方式,一种方式是通过在线预览的方式,利用微软的平台进行Office文档的在线查看:一种是把Office文档生成HTML文件后进行查看.然后对比他们的优缺点,并进行总结. 1.利用微软的平台进行Office文档的在

基于MVC4+EasyUI的Web开发框架经验总结(7)--实现Office文档的预览

在博客园很多文章里面,曾经有一些介绍Office文档预览查看操作的,有些通过转为PDF进行查看,有些通过把它转换为Flash进行查看,但是过程都是曲线救国,真正能够简洁方便的实现Office文档的预览的还是比较少,这里的Office文档包括了Word.Excel.PPT文档.本文介绍两种方式,一种方式是通过在线预览的方式,利用微软的平台进行Office文档的在线查看:一种是把Office文档生成HTML文件后进行查看.然后对比他们的优缺点,并进行总结. 1.利用微软的平台进行Office文档的在

(转)基于MVC4+EasyUI的Web开发框架经验总结(8)--实现Office文档的预览

http://www.cnblogs.com/wuhuacong/p/3871991.html 基于MVC4+EasyUI的Web开发框架经验总结(8)--实现Office文档的预览 在博客园很多文章里面,曾经有一些介绍Office文档预览查看操作的,有些通过转为PDF进行查看,有些通过把它转换为Flash进行查看,但是过程都是曲线救国,真正能够简洁方便的实现Office文档的预览的还是比较少,这里的Office文档包括了Word.Excel.PPT文档.本文介绍两种方式,一种方式是通过在线预览

在线查看PDF和office文档的设计与实现

楼主最近在弄一个在线预览附件的小功能点,在开发过程中走了不少弯路,现总结了一些方法,供广大同行使用,节约时间,少走弯路 话不多说,要实现这个小功能,目前主要是有如下3种比较可行的方式,先说实现的思路设计与他们的优缺点 第一种:先把附件office文档(DOC,PPT,EXCLE,TXT)转为PDF格式,这里需要用一个OpenOffice的东东来转换,或者libreoffice也是可以的,然后把PDF转为SWF方式,然后在前台页面使用Flexpaper插件进行播放即可实现.这种方式的好处在于可以兼

Java中几种office文档转pdf的方式

最近公司要做office的文档,搜集了几种office文档转pdf的方式,简单的做下总结 我主要尝试了三种方式:openoffice,aspose,jacob 对他们进行了大文件,小文件,在linux,在windows,转换txt,excel,word,ppt的测试. 一.aspose:这种方式在目前来看应该是最好的,无论是转换的速度还是成功的概率,还支持的文件类型. (1)使用: 这种方式使用很简单,引入jar包就可以直接使用 代码: 源码,jar包在最后提供 package aspose;