文档章节

解决FlexPaper分页分段加载问题

 张xtpgyaps
发布于 2011/07/09 15:37
字数 621
阅读 1281
收藏 4

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}这种语法表明。

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

Java代码 复制代码 收藏代码
  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,意思是用一个零来填充文件名。

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

本文转载自:http://www.iteye.com/topic/1111872

粉丝 3
博文 46
码字总数 27099
作品 0
东城
程序员
私信 提问
加载中

评论(3)

晨馨
为什么有的时候我的文档转不出来,我的文档最多有100多页。我想一次性转出来。
苏斌
苏斌
我的也是遇到楼上同样的问题,没有办法加载swf文件,而且总页数也显示0,lz解答啊。
JoeyBlue
JoeyBlue
为什么我这样写读不到swf文件呢 右上角一直显示正在加载。
有没有其他地方需要注意的?
FlexPaper+SwfTools实现的在线文档功能

最近一个项目需要实现一个在线浏览文档的功能。准备使用FlexPaper配合Pdf2Swf实现。 主要需求在于: ➔ 文档页数很多,少则几百页,多则上千页。 ➔ 相应的文档大小也在50MB以上。 根据需求,...

长平狐
2012/11/06
3.7K
4
如何为 Drupal 站点添加在线电子书阅读功能

像 Google Book 和 百度文库 那样的文档在线阅读功能非常实用,要想为 Drupal 站点实现这样的文档在线阅读功能,可以通过 SWF Tools 模块来实现。 A. 启用并配置 SWF Tools 和 FlexPaper 首先...

芒果龙
2011/10/19
0
0
请问wicket框架如何实现加载flexpaper显示swf文档?

请问wicket框架如何实现加载flexpaper显示swf文档?调了数次,未果,直接不显示flexpaper浏览器。 很困惑,请指教,如有代码更好,多谢!!(swftools后台生成swf已完成)...

shoushou
2015/06/19
194
1
关于在web项目中将pdf文件显示成swf文件的相关详细说明

前段时间由于客户的需要,不想随便让访问系统的人将pdf文件保存下来(现在系统中的是adobe reader去读pdf文件,adobe reader中有个保存的功能 ),故引出转换成swf文件来显示的问题。 1.首先说...

seth_y
2014/03/31
0
0
flexpaper分页

大家好,我现在遇到一个问题做不出来:flexpaper分页加载的功能,我看了网上很多资料swffile:{ 文件名[*,0].swf,总页数},现在我需要的是跳转到一个后台去进行pdf转swf,然后在分页显示,那...

晨馨
2013/05/30
1K
1

没有更多内容

加载失败,请刷新页面

加载更多

C++的变量初始化

C++中变量的初始化有很多种方式,如:默认初始化,值初始化,直接初始化,拷贝初始化,列表初始化。 1、默认初始化:默认初始化是指定义变量时没有指定初值时进行的初始化操作。 如:int a;...

天王盖地虎626
28分钟前
0
0
MySQL-入门(一)

一、SQL的分类 DDL(Data Definition Language):数据定义语言,用来操作数据库对象:库、表、列等; DML(Data Manipulation Language):数据操作语言,用来增删改数据库中的数据; DCL(...

潜行-L
30分钟前
1
0
微服务架构在Kubernetes上的实现

我们讨论了最近的微服务趋势,以及伴随微服务架构可能出现的一些复杂问题。在接下来的几周内,我们将深入探讨这个问题。我们将探讨不同设计选择中固有的权衡,以及可以采取哪些措施来缓解这些...

别打我会飞
32分钟前
3
0
IDEA2018导入eclipse web项目

看别人的攻略:https://blog.csdn.net/qq_33229669/article/details/83751316 完成之后,出现了IDEA编译java报错:找不到符号_的解决方法错误, 然后百度出来是编码问题, 1.更改editor的文件编码...

流光韶逝
47分钟前
3
0
NIO 学习

比如 socket 通信, 服务的的 socket 对应的 线程会一直等待 client 端的 消息。 这就是bio的 阻塞 。而且在高并发下 很容易出现问题。 1, 非阻塞式IO模型、 2. 弹性伸缩能力强(服务的的接...

之渊
49分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部