解决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 :  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,意思是用一个零来填充文件名。
FlexPaper项目地址: http://flexpaper.devaldi.com/
下载地址: http://flexpaper.devaldi.com/download/
文档地址: http://flexpaper.devaldi.com/docs.htm
开源文档共享平台: http://doc.open-open.com/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值