FlexPaper+SWFTools 实现仿百度文库,在线查看PDF文档

转载自:http://www.cnblogs.com/qinpeifeng107/archive/2011/08/29/2158879.html

思路:通过pdf2swf.exe将pdf文档转换为swf文件,用FlexPaper播放swf

将Word 转换为Pdf插件下载地址:http://download.csdn.net/detail/tiz198183/4660169

 

通过cmd命令运行pdf2swf.exe将pdf文档转换为swf文件

 

.net 代码

1、.net 中运行cmd命令将pdf,转换为swf

        protected void Button1_Click(object sender, EventArgs e)
        {
            //Asp.net 调用pdf2swf.exe把PDF转换为SWF的用法
            if (FileUpload1.HasFile)
            {
                try{
                string fileName = FileUpload1.FileName;
                string fileExtention = FileUpload1.FileName.Substring(fileName.LastIndexOf(".") + 1);
                string filePath = HttpContext.Current.Server.MapPath("~/TestSWF\\") + fileName;
              
                FileUpload1.SaveAs(filePath);
                Page.ClientScript.RegisterStartupScript(this.GetType(),"","<script>alert('上传成功')</script>");
                    //切记,使用pdf2swf.exe 打开的文件名之间不能有空格,否则会失败
                string cmdStr = HttpContext.Current.Server.MapPath("~/SWFTools/pdf2swf.exe");
                string savePath = HttpContext.Current.Server.MapPath("~/TestSWF/");
                string sourcePath=@""""+ savePath + fileName+@"""" ;
                    string targetPath=@""""+ savePath + fileName.Substring(0, fileName.LastIndexOf(".")) + ".swf"+@"""";
                    //@"""" 四个双引号得到一个双引号,如果你所存放的文件所在文件夹名有空格的话,要在文件名的路径前后加上双引号,才能够成功
                    // -t 源文件的路径
                   // -s 参数化(也就是为pdf2swf.exe 执行添加一些窗外的参数(可省略))
                string argsStr = "  -t " +sourcePath+ " -s flashversion=9 -o " +targetPath;


                ExcutedCmd(cmdStr,argsStr);

                ListBox1.Items.Add(new ListItem(fileName.Substring(0, fileName.LastIndexOf(".")) + ".swf", fileName.Substring(0, fileName.LastIndexOf(".")) + ".swf"));
                }
                catch
                {
                
                }
            }
        }

        //调用新进程 进行转换
        private static void ExcutedCmd(string cmd, string args)
        {
            using (Process p = new Process())
            {
                //cmd是c:\PDFViewer\SWFTools\pdf2swf.exe
                //args是  -t "C:\PDFViewer\TestSWF\ce2.pdf" -s flashversion=9 -o "C:\PDFViewer\TestSWF\ce2.swf"
                ProcessStartInfo psi = new ProcessStartInfo(cmd,args);
                p.StartInfo = psi;
                p.Start();
                p.WaitForExit();
            }
        }


2、用FlexPaper播放swf

 

代码如下:

http://download.csdn.net/detail/tiz198183/4660428

 

效果:

 

 FlexPaper 参数设置

            SwfFile: escape('TestSWF/' + fileURL), //加载的SWF文件
            Scale: 0.6, //初始化缩放比例为0.6,即60%
            ZoomTransition: 'easeOut', //Flexpaper中缩放样式,它使用和Tweener一样的样式,默认参数值为easeOut.其他可选值包括: easenone, easeout, linear, easeoutquad
            ZoomTime: 0.5,//从一个缩放比例变为另外一个缩放比例需要花费的时间,该参数值应该为0或更大。
            ZoomInterval: 0.2, //缩放比例之间间隔,默认值为0.1,该值为正数
            FitPageOnLoad: false, //加载时自动适应页面
            FitWidthOnLoad: false, //加载时自动适应页面宽度
            PrintEnabled: true,
            FullScreenAsMaxWindow: false,
            ProgressiveLoading: false, //当设置为true的时候,展示文档时不会加载完整个文档,而是逐步加载,但是需要将文档转化为9以上的flash版本(使用pdf2swf的时候使用-T 9 标签)。
            MinZoomSize: 0.2, //最小的缩放比例
            MaxZoomSize: 5, //设置最大的缩放比例
            SearchMatchAll: false, //设置为true的时候,单击搜索所有符合条件的地方高亮显示
            InitViewMode: 'Portrait', //设置启动模式如"Portrait" or "TwoPage".
            ViewModeToolsVisible: true, //工具栏上是否显示样式选择框
            ZoomToolsVisible: true, //工具栏上是否显示缩放工具
            NavToolsVisible: true, //工具栏上是否显示导航工具
            CursorToolsVisible: true, //工具栏上是否显示光标工具
            SearchToolsVisible: true, //工具栏上是否显示搜索
            localeChain: 'en_US'//设置地区(语言)为en_US



localeChain (String)设置地区(语言),目前支持以下语言。

   en_US (English)

   fr_FR (French)

   zh_CN (Chinese, Simple)

   es_ES (Spanish)

   pt_BR (Brazilian Portugese)

   ru_RU (Russian)

   fi_FN (Finnish)

   de_DE (German)

   nl_NL (Netherlands)

   tr_TR (Turkish)

   se_SE (Swedish)

   pt_PT (Portugese)

   el_EL (Greek)

   da_DN (Danish)

   cz_CS (Czech)

   it_IT (Italian)

   pl_PL (Polish)

   pv_FN (Finnish)

   hu_HU (Hungarian)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值