码迷,mamicode.com
首页 > Web开发 > 详细

html内嵌flex同时向flex页面传参实现pdf文档在线阅读

时间:2015-09-16 10:51:13      阅读:135      评论:0      收藏:0      [点我收藏+]

标签:

      由于项目需求需要实现pdf文档的上传并在线阅读,在网上看了很多关于html在线阅读pdf文档的文章,遇到各种问题,包括不同浏览器之间,同一个浏览器不同版本等问题,最终没有实现。后来就换了一个思路,用flex实现pdf的在线阅读,但是flex不能实现直接阅读pdf(对我而言不行),于是了解到可以通过将pdf转swf之后再实现阅读。下面就来看看实现具体过程:

1,实现pdf转为swf;

2,flex实现swf文件的在线浏览;

3,html内嵌flex实现pdf在线浏览。

 

1,pdf转swf

(1)要实现pdf转为swf用到的是pdf2swf这个转换工具。用到这个工具就需要调用进程pdf2swf.exe这个执行程序了,当然在调用的时候需要传入一些参数。

参数设置代码如下:

StringBuilder sb = new StringBuilder();
sb.Append(" -o \"" + swfPath + "\"");//转换的swf的保存路径
sb.Append(" -z");
sb.Append(" -s languagedir=");//设置语言
sb.Append(" -s flashversion=9");//flash 版本
sb.Append(" -s disablelinks");//禁止PDF里面的链接
sb.Append(" -p " + "1" + "-" + GetPageCount(pdfPath));//获取pdf的页数
sb.Append(" -j 100");//图片质量
sb.Append(" \"" + pdfPath + "\"");//pdf的路径

调用转换工具:

System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo.FileName = name;//pdf2swf.exe的绝对路径
proc.StartInfo.Arguments = args.ToString();//参数
proc.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
proc.Start();
proc.WaitForExit();
proc.Close();

好了,这就是实现了pdf转为swf了。

 

2,flex实现swf的在线浏览

这个就比较简单了,直接使用空间<mx:SWFLoader>,通过控件的sourse属性来绑定数据;

 

3,实现html内嵌flex并传参数

html页面代码

var html = "";
html += ‘<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="test" width="100%" height="100%">‘;
html += ‘<param name="movie" value=file.swf?lan=zh_CN&theme=blue" />‘;//flex页面的路径
html += ‘<param name="quality" value="high" />‘;
html += ‘<param name="bgcolor" value="#869ca7" />‘;
html += ‘<param name="flashVars"‘+‘ value="name=‘+name+‘" />‘;//传入的参数
html += ‘<param name="allowScriptAccess" value="always" />‘;
html += ‘<embed src="file.swf?lan=zh_CN&theme=blue" flashvars="name=‘+name+‘" quality="high" bgcolor="#869ca7" width="500" height="400" allowScriptAccess="always" name="test" align="middle" play="true" loop="false" qiality="high" type="application/x-shockwave-flash" pluginpage="http://www.adobe.com/go/getfalshplayer" >‘;
html += ‘</embed>‘;
html += ‘</object>‘;

html内嵌flex同时向flex页面传参实现pdf文档在线阅读

标签:

原文地址:http://www.cnblogs.com/wl1991-blog/p/4812517.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!