最近想做一个文库类的应用,在网上搜到有flexpaper这样一个插件,于是下载下来尝试了一下,发现还是简单易用,这里大致介绍一下。
首先在官方网站上下载flexpaper的免费版,解压后打开目录下的index.html,就可以看到一个示例网页,查看它的源代码如下:
<script type="text/javascript" src="js/flexpaper_flash.js"></script>
首先是包含js库,然后用javascript调用flash插件来显示文档
<a id="viewerPlaceHolder" style="width:680px;height:480px;display:block"></a>
<script type="text/javascript">
var fp = new FlexPaperViewer(
'FlexPaperViewer',
'viewerPlaceHolder', { config : {
SwfFile : escape('Paper.swf'),
Scale : 0.6,
ZoomTransition : 'easeOut',
ZoomTime : 0.5,
ZoomInterval : 0.2,
FitPageOnLoad : true,
FitWidthOnLoad : false,
FullScreenAsMaxWindow : false,
ProgressiveLoading : false,
MinZoomSize : 0.2,
MaxZoomSize : 5,
SearchMatchAll : false,
InitViewMode : 'Portrait',
PrintPaperAsBitmap : false,
ViewModeToolsVisible : true,
ZoomToolsVisible : true,
NavToolsVisible : true,
CursorToolsVisible : true,
SearchToolsVisible : true,
localeChain: 'en_US'
}});
</script>
首先在网页中嵌入一个空的锚点,没有href属性,设置其ID名称以及高度,宽度值。然后通过js库用指定的flash插件填充这个区域,加载文件方式为
SwfFile: escape("Paper.swf"),
这里需要注意的是加载的文件不是pdf格式,而是实现需要转换为swf格式,转换工具pdf2swf,安装过程略去,使用方法如下:
/usr/bin/pdf2swf /var/www/html/flash/php/pdf/Redis.pdf -o /var/www/html/flash/php/docs/Redis.pdf.swf -f -T 9 -t -s storeallcharacters
其他使用方法可以参照flexpaper的说明文档,FlexPaperViewer这个类中可以定义许多属性,文档的初始大小,导航栏,搜索框,缩放框等都可以配置。
还有一点需要注意的是加载swf文件只能通过相对路径设置,我没能成功加载uri资源文件,看来swf资源文件需要和flexpaper插件放在一个服务器上,这点很不方便,不知道有什么解决办法。
对于doc,ppt等文件可以先转换为pdf格式的文件后再用pdf2swf工具转换成swf文件显示即可。