关于论坛实现pdf,word等文档在线预览的功能探讨

论坛引擎:Discuz! 2.5

工具:flexpaper1.5.6 二次开发版本

本文主要探讨大体的思路及相关技术难点问题,属个人工作之余的一些小小开发,仅供探讨,嘿嘿、、、

实现效果如图:

论坛为什么需要在线预览功能,呵呵、、、本公司的论坛就需要这样的功能,还用得着下载再看吗?直接看完不就得了,呵呵、、、

关于flexpapaer的二次开发请参照前文:flexpaper的二次开发总结及探讨

这里主要修改不同点是Diyflexpaper.mxml

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
				xmlns:fp="com.devaldi.controls.flexpaper.*"
				layout="absolute" width="100%" height="100%" 
				applicationComplete="initApp();">
	
	<mx:Script>
		<![CDATA[	
			
			[Bindable]
			public var _Scale:Number = 1;//缩放比例
			
			[Bindable]
			public var _EncodeURI:Boolean = true;
			
			[Bindable]
			public var _SwfFile:String = "";//SWF文件路径
			
			[Bindable]
			public var _ZoomTransition:String = "easeOut";
			
			[Bindable]
			public var _ZoomTime:Number = 0.6;
			
			[Bindable]
			public var _ZoomInterval:Number = 0.1;
			
			[Bindable]
			public var _MinZoomSize:Number = 0.3;
			
			[Bindable]
			public var _MaxZoomSize:Number = 5;
			
			[Bindable]
			public var _FitPageOnLoad:Boolean = false;//加载后适合高度
			
			[Bindable]
			public var _FitWidthOnLoad:Boolean = true;//加载后适合宽度
			
			[Bindable]
			public var _PrintEnabled:Boolean = false;//是否支持打印
			
			[Bindable]
			public var _FullScreenAsMaxWindow:Boolean = false;//是否支付全屏
			
			[Bindable]
			public var _ProgressiveLoading:Boolean = false;//是否延迟加载
			
			[Bindable]
			public var _localeChain:String = "zh_CN";//语言
			
			private var isFocus:Boolean = false;
			
			//初始化参数
			private function initApp():void{				
				_Scale = 1;
				_SwfFile = this.loaderInfo.parameters.url;
				_EncodeURI = true;
				_ZoomTransition = "easeOut";
				_ZoomTime = 0.6;
				_MinZoomSize = 0.2;
				_MaxZoomSize = 5;
				_ZoomInterval = 0.1;
				_FitPageOnLoad =false;
				_FitWidthOnLoad = true;
				_PrintEnabled = false;
				_FullScreenAsMaxWindow = false;
				_ProgressiveLoading = true;
				_localeChain ="zh_CN";//语言
				//注册事件监听
				this.addEventListener(MouseEvent.MOUSE_OVER, onMouseOver);
				this.addEventListener(MouseEvent.MOUSE_OUT, onMouseOut);
				
			}
			//---------------------------事件------------------------------

			private function onMouseOver(event:MouseEvent):void{
				this.isFocus = true;
			}
			
			private function onMouseOut(event:MouseEvent):void{
				this.isFocus = false;
			}
			
		]]>
	</mx:Script>
	<fp:FlexPaperViewer id="FlexPaper"
						width="100%" 
						height="100%" 
						
						Scale="{_Scale}" 
						SwfFile="{_SwfFile}" 
						ZoomTransition="{_ZoomTransition}" 
						ZoomTime="{_ZoomTime}" 
						MinZoomSize="{_MinZoomSize}"
						MaxZoomSize="{_MaxZoomSize}"
						ZoomInterval="{_ZoomInterval}"
						FitPageOnLoad="{_FitPageOnLoad}"
						FitWidthOnLoad="{_FitWidthOnLoad}"
						EncodeURI="{_EncodeURI}"
						FullScreenAsMaxWindow="{_FullScreenAsMaxWindow}"
						ProgressiveLoading="{_ProgressiveLoading}" />
</mx:Application>


其中 this.loaderInfo.parameters.url  是获取加载该flash的地址参数,并非当前url地址的参数,这样修改主要目的是论坛加载flexpaper时好传递参数。

好了,flexpaper准备完毕,下面就开始为论坛添加插件吧。

以管理员身份登陆discuz论坛管理中心,选择

discuz代码,具体操作很简单,不再阐述,添加一个自定义代码后进入详情:主要设置如下:

替换内容:

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="[url=http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0][color=#0000ff]http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0[/color][/url]" width="{1}" height="{2}" type="application/x-shockwave-flash"><param value="true" name="allowfullscreen"><param name="allowScriptAccess" value="always"><param name="movie" value="http://192.168.0.200/flexpaper/Diyflexpaper.swf?url={3}"><param name="quality" value="high"><param name="bgcolor" value="#ffffff"><embed src="http://192.168.0.200/flexpaper/Diyflexpaper.swf?url={3}" quality="high" bgcolor="#ffffff" width="{1}" height="{2}" allowScriptAccess="always"allowfullscreen="true"  type="application/x-shockwave-flash" pluginspage="[url=http://www.macromedia.com/go/getflashplayer][color=#0000ff]http://www.macromedia.com/go/getflashplayer[/color][/url]" wmode="transparent" /></object>

http://192.168.0.200/flexpaper/Diyflexpaper.swf 这是我的flexpaper地址
参数个数:3

参数提示语:

请输入 阅读器 的宽度:
请输入 阅读器 的高度:
请输入需要打开的flash地址:

其余默认,提交后添加用户组使用权限,在发贴时便可看到如下图标了:


这里打开的flash地址是.../swf/1.swf,下面探讨flash地址问题:

        1、该地址是已经实现pdf转为swf的文件地址,本文效果图为手动转换后上传到服务器的,那么对于一般用户怎么用呢?

        该论坛全部用php开发,本人实在不会,呵呵,不然就可以写一个后台转换程序,这里让用户输入的地址为客户端pdf什么的文件地址,提交后转换程序进行上传并转换,这样就完美了。

 

作者: kunoy
申明:作者写博是为了总结经验,和交流学习之用。
如需转载,请尽量保留此申明,并在文章页面明显位置给出原文连接。谢谢!
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值