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

解决FlexPaper分页分段加载问题(转)的更多相关文章

  1. php--如何解决网站分页导致的SEO问题

    如何解决网站分页导致的SEO问题 分页(pagination)是一种自动分页机制,可以将移动Web窗体中的内容分割成一组组较小的页进行呈现,以适合于特定的设备,该机制还呈现可用于浏览到其他页的用户界面 ...

  2. 解决NSTextContainer分页时文本截断问题

    解决NSTextContainer分页时文本截断问题 NSTextContainer与NSLayoutManager配合使用可以将大文本文件分页,但是,分页过程中会遇到问题,显示字符被截断的问题:) ...

  3. ES scroll(ES游标) 解决深分页

    ES scroll(ES游标) 解决深分页. Why 当Elasticsearch响应请求时,它必须确定docs的顺序,排列响应结果.如果请求的页数较少(假设每页20个docs), Elasticse ...

  4. 解决 MySQL 分页数据错乱重复

    前言 一天,小明兴匆匆的在通讯工具上说:这边线上出现了个奇怪的问题,麻烦 DBA 大大鉴定下,执行语句 select xx from table_name wheere xxx order by 字段 ...

  5. 解决MongoDB分页查询之count查询慢的问题

    一.概述 问题描述:在项目中优化动态查询分页接口时,发现count查询很慢(数据量大概30万),那如何解决这个问题呢? 解决方法:添加索引,多个查询条件可以添加复合索引 二.测试对比 1. 未加索引时 ...

  6. 解决element 分页组件,搜索过后current-page 绑定的数据变了,但是页面当前页码并没有变的问题

    前言上一篇写前台解决分页问题的时候没有这个问题,但是在实际项目后台中有遇到过,所以在这里专门说一下,如果参考前台分页出现这种问题了,也可以使用这种方法!bug:vue和element实现的后台分页,当 ...

  7. ElasticSearch解决深度分页性能存在的问题使用scoll来解决

    现在我们全局搜索全部的数据,每次返回3条, 从 scroll 请求返回的结果反映了 search 发生时刻的索引状态,就像一个快照.后续的对文档的改动(索引.更新或者删除)都只会影响后面的搜索请求. ...

  8. 水平居中的那些事之解决jqpagination分页插件无法居中的问题

    固定宽度的元素水平居中只需要 margin-left:auto: margin-right:auto; 换成 margin:0 auto; 也是一样的 今天给我用的jqPagination分页插件实现 ...

  9. 解决flexpaper读取本地文件问题,JAVA+TOMCAT

    flexpaper是不可以用绝对路径的调用本地或项目外的swf文件的,这个我们就有两种方法,一种是把swf和项目放在同一个目录下面,通过相对路径来获取 另一种是在运行项目的tomcat的server. ...

随机推荐

  1. hadoop程序MapReduce之DataDeduplication

    需求:去掉文件中重复的数据. 样板:data.log 2016-3-1 a 2016-3-2 b 2016-3-2 c         2016-3-2 b 输出结果: 2016-3-1 a 2016 ...

  2. 第十六篇:初探IO复用

    前言 在之前的文章中,我具体实现了一个并发回射服务器并给它加载了僵尸子进程的自动清理信号机制.在正常情况下,它已经可以很好地工作了,但它能否合理应对一些特殊情况呢? 问题发现 先来看看当服务器的客户子 ...

  3. CALayer的position,anchorPoint属性 与UIView的frame 属性

    彻底理解CALayer的position,anchorPoint属性 与UIView的frame 属性 一.position,anchorPoint两者都是CALayer的属性,都是CGPoint点 ...

  4. JAVA Comparator 接口排序用法

    java的比较器有两类,分别是Comparable接口和Comparator接口. 在为对象数组进行排序时,比较器的作用非常明显,首先来讲解Comparable接口. 让需要进行排序的对象实现Comp ...

  5. 谷歌Volley网络框架讲解——网络枢纽

    研究了这么久的Volley,愈来愈发现这个框架的精美和人性化.比起民间一些框架强很多,一开始总是盲人摸象找不到头绪,现在终于有些明朗了.Volley其实就是一个请求队列的代理类,我们看下UML. 这就 ...

  6. MongoDb Mmap引擎分析

    版权声明:本文由孔德雨原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/137 来源:腾云阁 https://www.qclo ...

  7. session.setAttribute和session.getAttribute

    网上搜了些资料 ----------------------------------------------------------------------------- B/S架构中,客户端与服务器 ...

  8. 微信小程序5.2.2版本,找不着resource下exml皮肤

    问题描述: egret engine 5.2.2 原来5.1.11好好的,一升级就跪了 新建一个项目,找不到皮肤... 已发到论坛问去了,现在只能手动复制皮肤到小游戏目录下... 解决方案: 卸载重新 ...

  9. 微信小程序 --- 动态获取input的value

    这里对 input 使用的是 bindinput 方法: <input type="text" bindinput="input"> <but ...

  10. 170608、Spring 事物机制总结

    spring两种事物处理机制,一是声明式事物,二是编程式事物 声明式事物 1)Spring的声明式事务管理在底层是建立在AOP的基础之上的.其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加 ...