FlexPaper實現文檔線上瀏覽(附源碼)
轉自:http://www.cnblogs.com/sobne/articles/1822479.html
園子裡也有關於FlexPaper的文章,但都不怎麼詳細。
沒有較全的參數說明。就連官方網站都沒有。沒法,最後只得將swf檔案反編譯後查看了源碼才將裡面的參數全部弄出來。
好了,廢話不多說,開始正題。
1. 概述
FlexPaper是一個開源輕量級的在瀏覽器上顯示各種文檔的組件,被設計用來與PDF2SWF一起使用, 使在瀏覽器中顯示PDF成為可能,而這個過程並無需PDF軟體環境的支援。
另外也可以通過將一些例如Word、PPT等文檔轉成PDF,然後實現線上瀏覽。
2. 實現步驟
文檔(PDF,Word,PPT等) ----> 轉換為SWF -----> 使用FlexPa線上瀏覽
2.1. 轉換SWF
需要使用一個工具,SwfTools,目前最新版本是0.9.1;
可以使用命令列將檔案轉換為swf檔案;
例如將Paper3.pdf轉換成Paper3.swf的命令為:
C:\SWFTools\pdf2swf.exe Paper3.pdf -o Paper3.swf
與之對應的程式實現方法:(C#)
Process pc = new Process();
ProcessStartInfo psi = new ProcessStartInfo(“C:\\SWFTools\\pdf2swf.exe”, “Paper3.pdf Paper3.swf”);
pc.StartInfo = psi;
pc.Start();
pc.WaitForExit();
更多關於SwfTools命令的說明可點這裡下載說明文檔。
2.2. 瀏覽器中瀏覽
首先要下載Flexpaper,目前最新版本為1.4.0 ;
下載後解壓到網頁目錄中。
在頁面中使用以下代碼即可實現Swf文檔的瀏覽。
var params = {
SwfFile : "Paper.swf",
Scale : 0.6
}
swfobject.embedSWF("FlexPaperViewer.swf","cb","500","500","9.0.0","js/swfobject/expressInstall.swf", params)
SwfFile參數是你想顯示的檔案,Scale是0-1之間的數,表示顯示的放大參數。
說的再好聽,不如看源碼來得直接。源碼在這裡下。
下面才是本文 的重點(網上找不到的 *_*,找到也沒有這詳細;嘻嘻)
3. 參數列表
官方網站有,但是沒有我的全。 去官網
參數名稱 |
參數值及說明 |
CursorToolsVisible |
(True/False) |
FitPageOnLoad |
(True/False) |
FitWidthOnLoad |
(True/False) |
FullScreenAsMaxWindow |
(True/False) |
FullScreenVisible |
(True/False) |
NavToolsVisible |
(True/False) |
PrintEnabled |
(True/False) |
PrintToolsVisible |
(True/False) |
ProgressiveLoading |
(True/False) |
Scale |
|
SearchToolsVisible |
(True/False) |
StartAtPage |
|
SwfFile |
|
ViewModeToolsVisible |
(True/False) |
ZoomInterval |
|
ZoomTime |
|
ZoomToolsVisible |
(True/False) |
ZoomTransition |
|
4. 事件與函數
這個不多,還是列下吧,不過要詳細的請到官網去看吧。去官網
函數名稱 |
函數說明 |
gotoPage (Number pageNumber) |
跳轉到指定頁 |
fitWidth() |
設定為寬度模式視圖 |
fitHeight() |
設定為高度模式視圖 |
loadSwf (String swffile) |
載入一個新的swf檔案到瀏覽器中 |
getCurrPage() |
擷取當前頁碼 |
nextPage() |
跳轉到下一頁 |
prevPage () |
跳轉到上一頁 |
Zoom (Number factor) |
按係數縮放 |
searchText (String text) |
搜尋文字 |
switchMode (String mode) |
變換視圖模式;參數值可為("Portrait", "Two Page", "Tile") |
printPaper () |
列印載入的文檔 |
事件名稱 |
事件說明 |
onDocumentLoaded () |
文檔載入完成後觸發 |
onDocumentLoadedError (String errorMessage) |
載入文檔出錯時候觸發 |
onProgress (Number bytesloaded, Number bytestotal) |
文檔正在載入的時候觸發 |
onCurrentPageChanged (Number pagenumber) |
頁面改變時觸發 |
onExternalLinkClicked (String link) |
當使用者點擊外部連結的時候觸發 |
文章最後再附個線上瀏覽pdf檔案的外掛程式 點這裡下載。