Java开源技术

常用链接

统计

开源

最新评论

解决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/

posted on 2011-07-06 17:34 jforeverg 阅读(8061) 评论(15)  编辑  收藏

评论

# re: 解决FlexPaper分页分段加载问题 2011-07-06 22:27 宁波纹身

博主真厉害。  回复  更多评论   

# re: 解决FlexPaper分页分段加载问题 2011-07-08 13:20 罗家辉

qq:286636865,flexpaper可以多页一个flash文件吗?  回复  更多评论   

# re: 解决FlexPaper分页分段加载问题 2011-07-08 15:40 flexpaper

楼主真是太厉害了,我想知道如果50面为一个分割点,上面的命令行语句该怎样写呀,还有再请教一个问题,楼主大侠能否把上面的配置写全呀,就是写一个具体的例子,比如要在哪个页面修改上面的参数等等。谢谢  回复  更多评论   

# re: 解决FlexPaper分页分段加载问题 2011-07-08 20:26 jforeverg

这个我也不清楚呀。可以看一下http://wiki.swftools.org/index.php/Pdf2swf 看这边有没有介绍。@罗家辉
  回复  更多评论   

# re: 解决FlexPaper分页分段加载问题 2011-07-08 20:27 jforeverg

在原来设置swf地址时改成这样
SwfFile : "{Paper[*,0].swf,28}", @flexpaper
  回复  更多评论   

# re: 解决FlexPaper分页分段加载问题 2011-07-10 22:13 小国

楼主,我想请教你一个问题,如果在mxml文件中该怎样写呀,主是调用flexpaper时该怎样写呀,我现在正在做flexpaper延时加载的东西,忙了一个星期一点头绪也没有,无意中看到你的贴子,真是给了我希望呀,楼主大侠,能给出一个例子吗,谢谢
我的邮箱是yuanyuan_01_aa@163.com  回复  更多评论   

# re: 解决FlexPaper分页分段加载问题 2011-07-25 22:51 擂肥

我的怎么不行啊  回复  更多评论   

# re: 解决FlexPaper分页分段加载问题 2011-09-06 15:15 罗猪

请问mxml方式怎么写啊。。不会写。。  回复  更多评论   

# re: 解决FlexPaper分页分段加载问题 2011-09-30 15:34 grief

如何禁用打印功能呀?PrintEnable=false不管用呀。  回复  更多评论   

# re: 解决FlexPaper分页分段加载问题 2011-10-20 14:08 nitesheng

我个人制作了一个文库 flexpaper.studylead.com 单页异步加载、自定义播放器! 需要的朋友可以看看  回复  更多评论   

# re: 解决FlexPaper分页分段加载问题[未登录] 2011-11-01 11:19 Zero

不得不佩服一下楼主啊  回复  更多评论   

# re: 解决FlexPaper分页分段加载问题[未登录] 2011-11-18 16:13 li

为啥我的生成不了呢,
c.pdf 直接生成 c%.swf  回复  更多评论   

# re: 解决FlexPaper分页分段加载问题 2011-12-25 20:48 兮丶素颜

怎么来判断我用swftools总共分成了多少份swf呢  回复  更多评论   

# re: 解决FlexPaper分页分段加载问题[未登录] 2012-03-22 21:03 Bright

flexpaper分页加载不行,但单独加载一个swf文件就可以
谢谢
262959310@qq.com  回复  更多评论   

# re: 解决FlexPaper分页分段加载问题 2015-01-15 14:33 menwx

@兮丶素颜
我也想问同样的问题,怎么获取分页中的总页数这个参数???
  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问