解決FlexPaper分頁分段加載問題

FlexPaper是一個開源的PDF文檔在線查看控件。用戶查看PDF文檔不須要安裝Acrobat Reader,但須要利用像SwfTools這樣的工具預先將PDF文檔轉成SWF格式的文件。FlexPaper可以對須要查看的文檔進行分頁、搜索、打印、縮放、全屏查看等php

但對於一次性加載整個大型文檔會致使加載時間過長和內存過渡消耗。在新的FlexPaper版本中已經可以解決這個問題。首先須要將你的文檔拆分紅多份swf文件,而後在調用FlexPaper的時候設置好相關參數,這樣在瀏覽的時候就可以分頁/分段加載。下面將介紹如何將文檔拆分紅多份swf文件和怎麼設置FlexPaper參數:html

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

C:\SWFTools\pdf2swf.exe Paper.pdf -o Paper%.swf -f -T 9 -t -s storeallcharactersjava


你們能夠看到上面的命令行比原來只多了一個%符號,這個符號表示在PDF2SWF轉換文檔時,將爲每個頁建立一個swf文件。如:"Paper1.swf", "Paper2.swf"。而後在FlexPaper控件配置加載SwfFile的地方,採用:{filename[*,padding],total pages}這種語法代表。

如下給出一個具體的配置示例:服務器

Java代碼 複製代碼 收藏代碼
  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 : false,
  10. PrintEnabled : false,
  11. MinZoomSize : 0.2,
  12. MaxZoomSize : 5,
  13. localeChain : "en_US"
  14. }});

在這個例子中,咱們指示FlexPaper按分頁的方法來加載一個共有28頁的文檔,不須要用0填充文件名。假如你的文件是按"Paper01.swf", "Paper02.swf", .. 這種形式拆分時,要將padding設置成1,意思是用一個零來填充文件名。

可是這種解決方法有點不足的地方就是拆分後的一個個swf文件大小加起來比較原來單個文檔的大小多了不少。工具

相關文章
相關標籤/搜索