flex在线展示word,excel,pdf解决方案

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012087400/article/details/20033519

首先声明后台使用的是c#,

使用了四个工具第一个pdf2swf,

第二个和第三个都是dll,Aspose.Cells和Aspose.Words

第四个是flex使用的工具flexpaper

这些东西在网上都能下载到


word展示的具体思路是用Aspose.Words将word转为pdf,再把pdf转为swf,传给前台展示。

excel,和pdf思路也是一样的这里就不多说了


后台pdf转swf代码

    /// <summary>
        /// 将PDF转换为SWF文件
        /// </summary>
        /// <param name="pdfPath">PDF文件路径</param>
        /// <param name="swfPath">SWF文件路径</param>
        /// <param name="page"></param>
        private void ConvertToSwf(string pdfPath, string swfPath)
        {
            try
            {
              
                string exe = ConfigurationManager.AppSettings["ExePath"];//应用程序地址
                if (!File.Exists(exe))
                {
                    throw new ApplicationException("Can not find: " + exe);
                }

                StringBuilder sb = new StringBuilder();
                sb.Append(" -o \"" + swfPath + "\"");//output
                sb.Append(" -z");
                sb.Append(" -s flashversion=9");//flash version
                sb.Append(" -s disablelinks");//禁止PDF里面的链接
             //   sb.Append(" -p " + "1" + "-" + page);//page range
                sb.Append(" -j 100");//Set quality of embedded jpeg pictures to quality. 0 is worst (small), 100 is best (big). (default:85)
                sb.Append(" \"" + pdfPath + "\"");//input

                System.Diagnostics.Process proc = new System.Diagnostics.Process();
                proc.StartInfo.FileName = exe;
                proc.StartInfo.Arguments = sb.ToString();
                proc.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
                proc.Start();
                proc.WaitForExit();
                proc.Close();

            }
            catch (Exception ex)
            {
                throw ex;
            }
        }



后台word转pdf关键代码

    Document doc = new Document(ReturnPath+name);
    doc.Save(TemPath+name, Aspose.Words.SaveFormat.Pdf);

后台excel转pdf关键代码

    Workbook wb = new Workbook(ReturnPath + name);
    wb.Save(TemPath + name, Aspose.Cells.SaveFormat.Pdf);

前台展示代码也很简单

    <flexpaper:FlexPaperViewer id="File_ViewflexPaper" width="100%" height="100%"  SwfFile="返回的uri" / >这样后台就能直接解析了。


顺便说一下Aspose.Cells和Aspose.Words这两个功能真的很强大,我用过Aspose.Words以前处理excel用的都是NPOI下次可以试一下Aspose.Cells

猜你喜欢

转载自blog.csdn.net/u012087400/article/details/20033519
今日推荐