1. 程式人生 > >解決FlexPaper分頁分段載入問題

解決FlexPaper分頁分段載入問題

FlexPaper是一個開源的PDF文件線上檢視控制元件。使用者檢視PDF文件不需要安裝Acrobat Reader,但需要利用像SwfTools這樣的工具預先將PDF文件轉成SWF格式的檔案。FlexPaper能夠對需要檢視的文件進行分頁、搜尋、列印、縮放、全屏檢視等

但對於一次性載入整個大型文件會導致載入時間過長和記憶體過渡消耗。在新的FlexPaper版本中已經能夠解決這個問題。首先需要將你的文件拆分成多份swf檔案,然後在呼叫FlexPaper的時候設定好相關引數,這樣在瀏覽的時候就能夠分頁/分段載入。下面將介紹如何將文件拆分成多份swf檔案和怎麼設定FlexPaper引數:

關於如何拆分文件,在FlexPaper 1.4.5中已經提供了一個開箱即用的示例。只要在支援PHP的伺服器上執行其提供的'split_document.php'檔案能夠自動進行分頁。對於伺服器上不支援PHP執行的,可以在呼叫PDF2SWF程式時,在原來呼叫的命令列基礎上稍微修改一下具體如下:

C:\SWFTools\pdf2swf.exe

Paper.pdf -o Paper%.swf -f -T 9 -t -s storeallcharacters


大家可以看到上面的命令列比原來只多了一個%符號,這個符號表示PDF2SWF轉換文件時,將為每一頁建立一個swf檔案。如:"Paper1.swf", "Paper2.swf"。然後在FlexPaper控制元件配置載入SwfFile的地方,採用:{filename[*,padding],total pages}這種語法表明。

以下給出一個具體的配置示例:  1         var fp =new FlexPaperViewer(      2 'FlexPaperViewer'
 3 'viewerPlaceHolder', { config : {   4                   SwfFile : "{Paper[*,0].swf,28}" 5                   Scale : 0.6 6                   ZoomTime : 0.5 7                   ZoomInterval : 0.1 8                   FitPageOnLoad : false 9                   FitWidthOnLoad : false10                   PrintEnabled : 
false11                   MinZoomSize : 0.212                   MaxZoomSize : 513                   localeChain : "en_US"14         }}); 在這個例子中,我們指示FlexPaper按分頁的方法來載入一個共有28頁的文件,不需要用0填充檔名。假如你的檔案是按"Paper01.swf", "Paper02.swf", .. 這種形式拆分時,要將padding設定成1,意思是用一個零來填充檔名。