天天看點

利用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.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 重新開機系統。

繼續閱讀