利用OpenOffice4.1.1+swftools+flexpaper2.2.4实现仿百度文库的
平台:Ubuntu14.04 用到的东西: Apache_OpenOffice_4.1.1_Win_x86_install_zh-CN.exe swftools-2013-04-09-1007.exejodconverter-core-3.0-beta-4-dist.zip FlexPaper_2.2.4.zip 2012年的时候做过一版,但是当时用的版本都很陈旧,而且当时网上的资料极少。今年新做的一版都用了现在最新的版本,实现也跟以前大不相同,mark一下。 因为现在关于这个功能的实现网上资料太多了,下面列出我用的,大家直接点进去看就行,我就不粘贴人家的了。 第一步:利用OpenOffice和jodconverter包,将你的文件转换为pdf文;再利用swftools将pdf转换为swf文件。 参考: http://www.cnblogs.com/luckyxiaoxuan/archive/2012/06/13/2548331.html 第二步:用FlexPaper做前端展示 这步直接去FlexPaper的官网,将FlexPaper的包下载下来就行。里面就有现成的列子,但是列子里swf文件的内容是显示不出来的,因为里面有一段js判断swf的路径是否是URL路径,去了就行了。 就是下面这段: <script type="text/javascript"> var url = window.location.href.toString(); if(location.length==0){ url = document.URL.toString(); } if(url.indexOf("file:")>=0){ jQuery('#documentViewer').html("<div style='position:relative;background-color:#ffffff;width:420px;font-family:Verdana;font-size:10pt;left:22%;top:20%;padding: 10px 10px 10px 10px;border-style:solid;border-width:5px;'><img src='http://flexpaper.devaldi.com/resources/warning_icon.gif'>?<b>You are trying to use FlexPaper from a local directory.</b><br/><br/> FlexPaper needs to be copied to a web server before the viewer can display its document properlty.<br/><br/>Please copy the FlexPaper files to a web server and access the viewer through a http:// url.</div>"); } </script> ps:我遇到的功能需要在一个页面显示多个附件,那样的话只能通过Ajax动态请求swf文件的URL了 pps:注意如果是Linux环境的话,在执行Runtime.getRuntime().exec(cmd);命令时,cmd的内容里千万不要包括双引号,路径不能有空格,否则无法创建进程!我吃了大亏了。。。 ppps:对于利用jodconvert转换纯文本为pdf时出现乱码的情况,我的具体情况是这样的:在Linux的可视化界面下打开OpenOffice直接转换编码为utf-8的txt不会出现乱码,但是如果通过程序利用jodconvert转换的时候就会有乱码。看了网上很多资料都说是缺少字体要导入黑体和仿宋两个字体,但是我试了不管用。所以我最后把windows下的所有字体都导入到了Linux里,最后问题都解决了。但前提是你必须把文本文档的编码转换为utf-8的。 导入字体步骤如下:
windows字体目录c:windowsfonts linux字体目录/usr/share/fonts 1、在Linux目录里新建一个win文件夹 mkdir/usr/share/fonts/win 2、将windows字体文件复制到/usr/share/fonts/win目录下。 然后依次执行 mkfontscale? mkfontdir? fc-cache mkfont命令是生成win目录下所包含的字体的索引信息。然后运行fc-cache命令更新字体缓存 reboot 重启系统。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |