利用OpenOffice4.1.1+swftools+flexpaper2.2.4实现仿百度文库的功能

来源:互联网 发布:淘宝主图优化 编辑:程序博客网 时间:2024/05/15 04:20

平台:Ubuntu14.04

用到的东西:

Apache_OpenOffice_4.1.1_Win_x86_install_zh-CN.exe

swftools-2013-04-09-1007.exe

jodconverter-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:\windows\fonts

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 重启系统。



0 0
原创粉丝点击