解决FlexPaper分页分段加载问题

FlexPaper是一个开源的PDF文档在线查看控件。用户查看PDF文档不须要安装Acrobat Reader,但须要利用像SwfTools这样的工具预先将PDF文档转成SWF格式的文件。FlexPaper可以对须要查看的文档进行分页、搜索、打印、缩放、全屏查看等php

但对于一次性加载整个大型文档会致使加载时间过长和内存过渡消耗。在新的FlexPaper版本中已经可以解决这个问题。首先须要将你的文档拆分红多份swf文件,而后在调用FlexPaper的时候设置好相关参数,这样在浏览的时候就可以分页/分段加载。下面将介绍如何将文档拆分红多份swf文件和怎么设置FlexPaper参数:html

关于如何拆分文档,在FlexPaper 1.4.5中已经提供了一个开箱即用的示例。只要在支持PHP的服务器上运行其提供的'split_document.php'文件可以自动进行分页。对于服务器上不支持PHP运行的,能够在调用PDF2SWF程序时,在原来调用的命令行基础上稍微修改一下具体以下:

C:\SWFTools\pdf2swf.exe Paper.pdf -o Paper%.swf -f -T 9 -t -s storeallcharactersjava


你们能够看到上面的命令行比原来只多了一个%符号,这个符号表示在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文件大小加起来比较原来单个文档的大小多了不少。工具

相关文章
相关标签/搜索