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 : 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,意思是用一個零來填充文件名。