在线浏览office 文件

http://blog.csdn.net/binyao02123202/article/details/20051683

[Asp.net]常见word,excel,ppt,pdf在线预览方案,有图有真相,总有一款适合你!

2014-02-27 15:04     1089人阅读     评论(0)     收藏     举报

目录(?)[+]

  1. 引言
  2. 方案一
  3. 方案二
  4. 方案三
  5. 方案四
  6. 方案五
  7. 方案六
  8. 总结

引言

之前项目需要,查找了office文档在线预览的解决方案,顺便记录一下,方便以后查询。

方案一

直接在浏览器中打开Office文档在页面上的链接。会弹出如下窗口:

优点:主流浏览器都支持。

缺点:Office文档链接在浏览器中打开,会有如上图的提示,需用户自己选择打开或者保存功能,如果客户电脑上安装迅雷下载软件,会启动迅雷下载,用户体验不好。

方案二

office文档转html,首先引入com组件中office库,然后在程序集扩展中引入word,excel,ppt的dll。

然后F6生成,会报如下错误:

解决办法:

office文档转换html辅助类:

 Office2HtmlHelper

 Office2Html.aspx

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Web;
 5 using System.Web.UI;
 6 using System.Web.UI.WebControls;
 7
 8 namespace Wolfy.OfficePreview
 9 {
10     public partial class Office2Html : System.Web.UI.Page
11     {
12         protected void Page_Load(object sender, EventArgs e)
13         {
14
15         }
16         protected void btnWord_Click(object sender, EventArgs e)
17         {
18             Button btn = sender as Button;
19             switch (btn.CommandArgument)
20             {
21                 case "docx":
22                     Office2HtmlHelper.Word2Html(MapPath("/Doc/分析某网站的SEO策略(外链篇).doc"), MapPath("/Html/"), "分析某网站的SEO策略(外链篇)");
23                     break;
24                 case "xlsx":
25                     Office2HtmlHelper.Excel2Html(MapPath("/Excel/1994-2013北京市历年最低工资标准.xlsx"), MapPath("/Html/"), "1994-2013北京市历年最低工资标准");
26                     break;
27                 case "ppt":
28                     Office2HtmlHelper.PPT2Html(MapPath("/PPT/23种设计模式详解.ppt"), MapPath("/Html/"), "23种设计模式详解");
29                     break;
30                 default:
31                     break;
32             }
33         }
34     }

35 }

测试结果:

这里为了测试特找了含有图片的office文档,浏览正常:

要求:机器需安装office,并且office环境是纯净的,所谓纯净就是不能有多个版本,lz曾经在电脑上安装过wps,被害苦了总是报如下错误:

报这个错误,只能哭了,网上的关于00046的解决办法都尝试了,不行。然后不得不重新安装office,然后笑了。最好安装office完整版,因为原来装的不是完整版,不知道有没有这方面的原因,也没有测试,建议完整版。

方案三

office文档转PDF,PDF转swf,使用flexpaper+swftools实现在线浏览。

在操作office2007时,需安装SaveAsPDFandXPS.exe ,安装成功后,如图所示:

只有安装了SaveAsPDFandXPS.exe,程序操作office文档,才有office文档另存为pdf文件。office2010不需要安装了,内置有这个功能。

核心代码:

 Office2PDFHelper

 Office2PDF

 Office2PDF.aspx

测试结果:

此方案office转pdf文件的过程的要求与方案二要求相同。

pdf转换完成后,就可以将pdf转换为swf,使用flexpaper+swftools实现在线浏览了,可参考我之前的一篇文章:

FlexPaper+SWFTool+操作类=在线预览PDF

方案四

office文档直接转换为swf,使用flexpaper+swftool实现在先浏览。

office直接转换为swf,这里使用flashpaper来实现:

FlashPaper是一个虚拟打印机,可将word文件直接转化成swf格式文件(.doc.xls .txt .pdf等文件都可以正常生成SWF格式)。

这里只贴出核心代码:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Diagnostics;
 4 using System.Linq;
 5 using System.Web;
 6 using System.Web.UI;
 7 using System.Web.UI.WebControls;
 8
 9 namespace Wolfy.OfficePreview
10 {
11     public partial class Office2Swf : System.Web.UI.Page
12     {
13         protected void Page_Load(object sender, EventArgs e)
14         {
15
16         }
17         protected void btnWord_Click(object sender, EventArgs e)
18         {
19             Button btn = sender as Button;
20             switch (btn.CommandArgument)
21             {
22                 case "docx":
23                     ConvertOffice2Swf(MapPath("/Doc/分析某网站的SEO策略(外链篇).doc"), MapPath("/SWF/分析某网站的SEO策略(外链篇).swf"));
24                     break;
25                 case "xlsx":
26                     Office2PDFHelper.XLSConvertToPDF(MapPath("/Excel/1994-2013北京市历年最低工资标准.xlsx"), MapPath("/SWF/1994-2013北京市历年最低工资标准.swf"));
27                     break;
28                 case "ppt":
29                     Office2PDFHelper.PPTConvertToPDF(MapPath("/PPT/23种设计模式详解.ppt"), MapPath("/SWF/23种设计模式详解.swf"));
30                     break;
31                 default:
32                     break;
33             }
34         }
35         /// <summary>
36         /// office 转swf
37         /// </summary>
38         /// <param name="officePath">要转换的office文档路径</param>
39         /// <param name="swfPath">转换后swf的路径</param>
40         private void ConvertOffice2Swf(string officePath, string swfPath)
41         {
42             Process process = new Process();     //创建进程对象
43             ProcessStartInfo startInfo = new ProcessStartInfo();
44             string paperroot = @"C:\Program Files\Macromedia\FlashPaper 2\FlashPrinter.exe";//这里是FlashPrinter的路径
45             string docFile = officePath;
46             string swfFile = swfPath;
47             startInfo.FileName = paperroot;
48             startInfo.Arguments = docFile + " -o " + swfFile;
49             startInfo.UseShellExecute = false;     //不使用系统外壳程序启动
50             startInfo.RedirectStandardInput = false;   //不重定向输入
51             startInfo.RedirectStandardOutput = false;   //重定向输出
52             startInfo.CreateNoWindow = true;     //不创建窗口
53             process.StartInfo = startInfo;
54             process.Start();
55             if (process != null)
56                 process.Close();
57
58         }
59     }
60 }

鉴于测试时,flashpaper在将office文档转换为swf的时候,在使用flexpaper的浏览时,出现转换的内容为空,猜测:flexpaper能打开的swf文件与flashpaper转的swf文件不兼容。最后使用flashpaper将office文档转换为pdf,然后走方案三,pdf转swf的步骤。另外本地测试时,没问题。将项目部署在IIS上,不能浏览,出现卡死的情况,调试发现,文件太大,在office还没完全转换为pdf的情况下,swftool工具就去寻找pdf文件,出现错误。

IIS上,无法浏览,查询网上解决方案,和权限这块有关,按照步骤设置了,未果,有点遗憾。

方案五

使用点聚公司的weboffice控件,测试后发现兼容性较差,放弃。有兴趣的可以研究一下。

方案六

office转pdf后,直接浏览器打开,此方案鉴于目前主流浏览器都集成adobe reader功能,可实现直接打开PDF文件。将pdf文件链接可直接打开。

必要条件:本地需安装adobe reader类似软件。

总结

鉴于项目情况选择一个适合的方案,其中有方案只是曲线救国,但是同样能达到要求。如果您觉得对你有所帮助,不妨推荐一下,让更多的人都能看到,谢谢你能看到文章最后。

参考文章:

http://www.cnblogs.com/expectszc/archive/2012/04/04/2432149.html

http://www.cnblogs.com/lexlin/articles/2478027.html

http://www.cnblogs.com/gossip/p/3473024.html

http://www.cnblogs.com/expectszc/archive/2012/04/04/2432149.html

时间: 2024-10-11 00:46:43

在线浏览office 文件的相关文章

在线浏览pdf文件,pdfobject的简单使用

该js插件,官网有详细的使用教程(网址:http://www.pdfobject.com/examples/).打开里面的例子后,查看新打开页面,打开并查看该页面的源代码. 需要的材料: 1.PDFobject.js(下载地址:http://www.pdfobject.com/downloads/) 废话不多说(好像没说几个词).直接上代码了.以下代码讲会在浏览器里全屏显示 <html> <head> <title>PDFObject example</title

微信或手机浏览器在线显示office文件(已测试ios、android)

最近开发微信企业号,发现微信andriod版内置浏览器在打开文件方面有问题,但是ios版没有问题,原因是ios版使用的是safari浏览器 支持文档直接打开,但是andriod版使用的是腾讯浏览器x5内核,不知道什么原因不支持,可能是集成出现的问题,这里提供解决方法,这种方法也同样适用手机浏览器或者安卓开发.通过此方法可以在微信上开发自己的第三方应用,或者解决自己的项目问题,解决方法及核心代码如下: 1.判断浏览器类型 HttpServletRequest req = ServletAction

在线打开浏览PDF文件的各种插件

实现在线浏览PDF文件的实用jQuery插件 阅读目录 PDFObject pdf.js jsPDF jQuery Media Plugin Google Docs PDF viewer ZOHO Viewer Anychart:使用JavaScript导出PDF jQuery Document Viewer 在web开发当中我们经常需要进行需要在线浏览PDf内容,在线嵌入动态pdf,传统的解决方法安装客户端PDF阅读器,如果是在谷歌是可以在线浏览的,因为他自身就带了一些插件,以前遇到这样的问题

FlexPaper实现文档在线浏览(附源码)

园子里也有关于FlexPaper的文章,但都不怎么详细. 没有较全的参数说明.就连官方网站都没有.没法,最后只得将swf文件反编译后查看了源码才将里面的参数全部弄出来. 好了,废话不多说,开始正题. 1. 概述 FlexPaper是一个开源轻量级的在浏览器上显示各种文档的组件,被设计用来与PDF2SWF一起使用, 使在浏览器中显示PDF成为可能,而这个过程并无需PDF软件环境的支持. 另外也可以通过将一些例如Word.PPT等文档转成PDF,然后实现在线浏览. 2. 实现步骤 文档(PDF,Wo

sharepoint 2013 office web app 2013 文档在线浏览 IE11 浏览器不兼容解决方法

昨晚配置完成office web apps 2013的外部网络访问之后,今天发现了一个很奇怪的问题,就是IE 11不支持文档在线浏览,找了很多方法,打补丁什么的,都不管用,最后在预览文件的页面,看到<head>标签,里面有一句代码: <meta http-equiv="X-UA-Compatible" content="IE=99" /> 我把他改成了 <meta http-equiv="X-UA-Compatible&quo

Print2Flash在线浏览打印pdf文件

原理:把 pdf 文件转换成 Flash 文件,再显示这个 Flash. 1 .安装print2flashsetup64.exe2.停止Print2Flash3服务(如果配置了服务并启动了的话)3.拷贝p2fServer.exe.Print2Flash.exe到安装目标文件夹替换原文件4.拷贝Print2FlashPrinter3_2.dll到以下文件夹替换原始文件: C:\Windows\System32\spool\drivers\x64\ 以及 C:\Windows\System32\sp

office文件在线预览,模仿网易邮箱在线预览的

最近研究了半天,代码是倾情奉送啊,C#,asp.net的 这个原理是office文件转换为PDF文件,然后再转换成SWF文件,FlexPaper+swfTools. 有个问题,需要在web.config中加这么一行<identity impersonate="true" userName="administrator" password="你的服务器登录密码" /> /// <summary> /// 转换压缩文件,以便于

在线预览Office文件【效果类似百度文库】

引言 结合上个项目和目前做的这个项目,其中都用到了Office文件在线预览,目前项目中是用到公司购买的Ntko控件,该控件每次浏览文件时则会提示安装信任插件,很繁琐,而且浏览效果不好. 提到Office文件在线预览,那么效果最好的应该就是百度文库的效果了,所以今天就忙里偷闲自己搞了下. 用到知识点 1.Office文件转化为Pdf文件.直接用.Net类库:Microsoft.Office.Interop.Excel.Microsoft.Office.Interop.Powerpoint.Micr

atitit. web 在线文件管理器最佳实践(1)--- elFinder 的使用流程解决之道 。打开浏览服务器文件夹java .net php

atitit. web 在线文件管理器最佳实践(1)--- elFinder 的使用流程解决之道 .打开浏览服务器文件夹java .net php 1. 环境:::项目java web,需要打开浏览服务器文件夹挑选文件,在返回... 1 2. 在线文件管理器要实现的基本的功能::指定开始目录,指定getfile回调 1 3. 组件选型:: elFinder (3M) ,,php web ftp 1 4. elFinder 的概念 1 5. elFinder  1.x 的使用过程 2 6. elF