FlexPaper 2.2.1介绍与提取嵌入的文档
??????? 源起看到某個公司內網(wǎng)的公文使用FlexPaper組件來顯示文檔,在這兒是GoogleCode Project的主頁, 還有現(xiàn)在的官方主頁。目前FlexPaper是個開源項目,GPLv3協(xié)議下免費使用,也有商業(yè)許可版本與無限制版。下面我們先介紹如何從預覽的SWF中保存成PDF文檔。
??????? 查看網(wǎng)頁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&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&key=$72815cdaaec3681f9d0"></object>?
提取出的參數(shù)是這樣的:
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部分參數(shù)說明
SwfFile(String):需要使用FlexPaper打開的文檔
Scale(Number):初始化縮放比例,參數(shù)值應該是大于零的整數(shù)(1=100%)
ZoomTransition(String):FlexPaper中縮放樣式,它使用和Tweener一樣的樣式,默認參數(shù)值為easeOut,其他可選值包括:easenone,easeout,linear,easeoutquad
ZoomTime(Number):從一個縮放比例變?yōu)榱硗庖粋€縮放比例需要花費的時間,該參數(shù)值應該為0或更大
ZoomInterval(Number):縮放比例之間間隔,默認值為0.1,該值應該為正數(shù)
FitPageOnLoad(Boolean):初始化時自適應頁面,與使用工具欄上的適應頁面按鈕同樣的效果
FitWidthOnLoad(Boolean):初始化時自適應頁面寬度,與工具欄上的適應寬度按鈕同樣的效果
?
看上面的參數(shù),我們得知 %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也不是什么難事。如下圖是顯示當前路徑下的文檔:
?
當我們打開這個文件在IE9中是這樣的:
?
看服務端文檔的目錄下文件Performance Driven IT Management.pdf, 有被自動轉換了許多的Performance Driven IT Management.pdf1.swf…的文件。這樣是為了加快加載速度。這樣,借用Flexpaper與swftools我們很容易構建WEB在線PDF文檔瀏覽系統(tǒng)。
?
您可能感興趣的文章:
使用PDFBox提取PDF文件中文本
?
作者:Petter Liu
出處:http://www.cnblogs.com/wintersun/
本文版權歸作者和博客園共有,歡迎轉載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。
該文章也同時發(fā)布在我的獨立博客中-Petter Liu Blog。
轉載于:https://www.cnblogs.com/wintersun/p/3515483.html
總結
以上是生活随笔為你收集整理的FlexPaper 2.2.1介绍与提取嵌入的文档的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 程序员如何在大公司做管理
- 下一篇: sharepoint2013以其他用户身