FlexPaper 2.2.1介紹與提取嵌入的文檔


        源起看到某個公司內網的公文使用FlexPaper組件來顯示文檔,在這兒是GoogleCode Project的主頁, 還有現在的官方主頁。目前FlexPaper是個開源項目,GPLv3協議下免費使用,也有商業許可版本與無限制版。下面我們先介紹如何從預覽的SWF中保存成PDF文檔。

        查看網頁html,找到如下,看到這里使用是FlexPaperViewer 1.5.1:

<object width="100%" height="100%" id="_571282476" name=
"_571282476" data=
"/st/static/common/js/flexpaper/FlexPaperViewer1.5.1.swf" type=
"application/x-shockwave-flash"><param name="wmode" value=
"transparent">
<param name="allowfullscreen" value="true">
<param name="allowscriptaccess" value="always">
<param name="quality" value="high">
<param name="flashvars" value=
"SwfFile=%2Fodm%2Fdocument%2Fdocument!getSWFStream.action%3FdocumentId%3D8126&amp;Scale=0.95&amp;ZoomTransition=easeOut&amp;ZoomTime=0.5&amp;ZoomInterval=0.2&amp;FitPageOnLoad=true&amp;FitWidthOnLoad=true&amp;MinZoomSize=0.2&amp;MaxZoomSize=5&amp;InitViewMode=Portrait&amp;ViewModeToolsVisible=true&amp;ZoomToolsVisible=true&amp;NavToolsVisible=true&amp;CursorToolsVisible=true&amp;SearchToolsVisible=true&amp;localeChain=zh_CN&amp;key=$72815cdaaec3681f9d0"></object>

 

提取出的參數是這樣的:


SwfFile=%2Fodm%2Fdocument%2Fdocument!getSWFStream.action%3FdocumentId%3D8127
&Scale=0.95&ZoomTransition=easeOut
&ZoomTime=0.5&ZoomInterval=0.2&FitPageOnLoad=true
&FitWidthOnLoad=true
&MinZoomSize=0.2&MaxZoomSize=5
&InitViewMode=Portrait
&ViewModeToolsVisible=true
&ZoomToolsVisible=true&NavToolsVisible=true
&CursorToolsVisible=true&SearchToolsVisible=true&localeChain=zh_CN

 

FlexPaper部分參數說明


SwfFile(String):需要使用FlexPaper打開的文檔
Scale(Number):初始化縮放比例,參數值應該是大於零的整數(1=100%)
ZoomTransition(String):FlexPaper中縮放樣式,它使用和Tweener一樣的樣式,默認參數值為easeOut,其他可選值包括:easenone,easeout,linear,easeoutquad
ZoomTime(Number):從一個縮放比例變為另外一個縮放比例需要花費的時間,該參數值應該為0或更大
ZoomInterval(Number):縮放比例之間間隔,默認值為0.1,該值應該為正數
FitPageOnLoad(Boolean):初始化時自適應頁面,與使用工具欄上的適應頁面按鈕同樣的效果
FitWidthOnLoad(Boolean):初始化時自適應頁面寬度,與工具欄上的適應寬度按鈕同樣的效果

 

看上面的參數,我們得知 %2Fodm%2Fdocument%2Fdocument!getSWFStream.action%3FdocumentId%3D8127  這個字符串是文件源,然后我們可以使用百度應用URL解碼得到這樣的結果/odm/document/document!getSWFStream.action?documentId=8127, 然后我們就可以直接在瀏覽器訪問拼接以后的URL

http://odm.xxxxx.com/odm/document/document!getSWFStream.action?documentId=8127

 

        這時我們可以使用打印文件方式來保存為PDF文件, 借用doPdf,Pdf factory組件也可以輕易保存PDF。到這兒我們是逆向的方式來保存文檔。
        FlexPaper目前最新版本是2.2.1,另外還有一個開源項目swftools可以轉換pdf文件到swf文件。下載服務端DEMO,可以看到支持asp.net, java, php平台。 以下介紹Asp.net下,有幾個簡單的頁面來配置,之前把...\FlexPaper_2.2.1\aspnet設為Application,這些webform的文件帶有cs源文件,可以修改重新編譯,或是改寫為Asp.net MVC也不是什么難事。如下圖是顯示當前路徑下的文檔:

flexpaper1

 

當我們打開這個文件在IE9中是這樣的:

flexpaper2

 

看服務端文檔的目錄下文件Performance Driven IT Management.pdf, 有被自動轉換了許多的Performance Driven IT Management.pdf1.swf…的文件。這樣是為了加快加載速度。這樣,借用Flexpaper與swftools我們很容易構建WEB在線PDF文檔瀏覽系統。

 

您可能感興趣的文章:

使用PDFBox提取PDF文件中文本

 


作者:Petter Liu
出處:http://www.cnblogs.com/wintersun/
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。
該文章也同時發布在我的獨立博客中-Petter Liu Blog


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM