解决FlexPaper分页分段加载问题(转)

简介: FlexPaper是一个开源的PDF文档在线查看控件。用户查看PDF文档不需要安装Acrobat Reader,但需要利用像SwfTools这样的工具预先将PDF文档转成SWF格式的文件。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}这种语法表明。

以下给出一个具体的配置示例:

复制代码
var fp = new FlexPaperViewer(      
'FlexPaperViewer',
'viewerPlaceHolder', { config : {
SwfFile : "{Paper[*,0].swf,28}",
Scale : 0.6,
ZoomTime : 0.5,
ZoomInterval : 0.1,
FitPageOnLoad : false,
FitWidthOnLoad : false,
PrintEnabled : false,
MinZoomSize : 0.2,
MaxZoomSize : 5,
localeChain : "en_US"
}});
复制代码

在这个例子中,我们指示FlexPaper按分页的方法来加载一个共有28页的文档,不需要用0填充文件名。假如你的文件是 按"Paper01.swf", "Paper02.swf", .. 这种形式拆分时,要将padding设置成1,意思是用一个零来填充文件名。 

但是这种解决方法有点不足的地方就是拆分后的一个个swf文件大小加起来比较原来单个文档的大小多了很多。

 

 
文档分享网站(文档上传、在线预览、下载)使用jsp+mysql 
http://download.csdn.net/source/2492123 

豆丁网缓存docin离线浏览(提供源码)修改 
http://download.csdn.net/source/2058487 

FlexPaper 是一个开源的PDF文档在线查看控件。用户查看PDF文档不需要安装Acrobat Reader,但需要利用像SwfTools这样的工具预先将PDF文档转成SWF格式的文件。FlexPaper能够对需要查看的文档进行分页、搜索、 打印、缩放、全屏查看等 
http://ajax.open-open.com/ajax20100330090431.htm 

flexpaper Flex中显示PDF功能 
http://download.csdn.net/source/2446108 

FlexPaper实现文档在线浏览(附源码) 
http://www.cnblogs.com/sobne/articles/1822479.html 

FlexPaper是一个开源轻量级的在浏览器上显示各种文档的组件 
http://www.cnblogs.com/analyzer/articles/1669453.html 

类似豆丁网、百度文库的开源文档播放器源码下载 
http://www.cnblogs.com/chenqingwei/archive/2010/06/29/1767181.html 

FlexPaper_1.2.1.swc——Flex在线显示PDF文档(使用FlexPaper)感悟 
http://www.cnblogs.com/wuhenke/archive/2010/03/16/1686885.html 

实例 
http://doc.open-open.com
目录
相关文章
|
8月前
|
算法 JavaScript Java
通用分页【下】(将分页封装成标签)
调试()是指在软件开发过程中,通过识别、定位和解决程序错误或问题的过程。调试的目的是找出代码中的错误、异常或不正常的行为,并修复它们,以确保程序能够按照预期的方式运行。调试是一个重要的开发技巧,可以帮助开发人员理解程序的执行过程、找出错误的原因,并从中学习和改进。调试可以使用不同的工具和技术来辅助,例如打印输出、日志记录、调试器(debugger)等。调试是开发过程中不可或缺的一部分,可以帮助开发人员提高代码质量、加快解决问题的速度,并优化程序的性能和可靠性。
|
7月前
|
前端开发 JavaScript Java
70jqGrid - 一次性加载多级表格数据
70jqGrid - 一次性加载多级表格数据
21 0
|
7月前
37zTree - 分页加载大数据量
37zTree - 分页加载大数据量
40 0
element-el-pagination 分页-控制每页展示数量(整理)
element-el-pagination 分页-控制每页展示数量(整理)
|
NoSQL 大数据 MongoDB
分页控制|学习笔记
快速学习分页控制
47 0
|
存储 算法 程序员
分页和分段有什区别
分页和分段有什区别
244 0
|
JavaScript 搜索推荐 前端开发
【自然框架】QuickPager分页控件,新增一种分页方式——伪URL分页(Postback版)
适用场景   先说一下伪URL分页的适用场景。在网站的网页里实现查询功能,如果查询条件比较少的话,还比较好办,把查询条件放到URL里面传递即可。但是如果查询条件过多,就会照成URL的长度过长。既不好看,编写起来也很麻烦。
1131 0