转自:  http://www.cnblogs.com/wolf-sun/p/3569960.html

引言

之前项目需要,查找了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

转载于:https://www.cnblogs.com/ifreesoft/p/3570751.html

excel,word,ppt,pdf,swf 文件互相转换相关推荐

  1. Windows中PDF TXT Excel Word PPT等Office文件在预览窗格无法预览的终级解决方法大全

    切记:以上方法均会对注册表进行修改,一定要先备份整个注册表,以防万一,避免导致系统错误 一.问题症状或错误复现: 1.首先要打开 文件资源管理器的 文件 预览窗格 2.然后在文件资源管理器的右边就会显 ...

  2. 好用到爆的Python自动化办公教程pdf,Python × Excel × Word × PPT 一次搞定

    在这个自动化时代,我们有很多重复无聊的工作要做.想想这些你不再需要一次又一次地做的无聊的事情,让它自动化,让你的生活更轻松.那么在本文中,我将向您介绍一个好用到爆的Python自动化办公教程pdf,P ...

  3. Word/PPT/PDF怎么免费转为JPG图片?

    很多小伙伴接到要将Word/PPT/PDF转为图片的任务,但一般的软件都要收费,那有没有永久免费的软件?又该如何操作呢? 1.打开金鸣表格文字识别网站. 2.点击导航条上的"软件下载&quo ...

  4. Python从Word/PPT/PDF中抽取图片

    Python从Word/PPT/PDF中抽取图片 PS 1:也是从网上各个帖子中学习的代码,因此代码的格式以及内容有粘贴网上其他大神的代码,如有侵权请告知删除 2:本次设计意在用pyinstaller ...

  5. [JAVA使用技巧]Java抽取Word和PDF格式文件_网络大本营

    Java抽取Word和PDF格式文件的四种武器(1) 很多人用java进行文档操作时经常会遇到一个问题,就是如何获得word,excel,pdf等文档的内容?我研究了一下,在这里总结一下抽取word, ...

  6. 好用到爆的Python自动化办公教程,Python × Excel × Word × PPT 一次解决

    好用到爆的Python自动化办公教程,Python × Excel × Word × PPT 一次解决 大家好,我是黄伟

  7. ChatGPT处理Excel Word PPT

    探索ChatGPT,协助工作学习创作.公众号「阿杰与AI」回复AI,加入社群,一同探讨,一同成长,比他人更进一步. 我们一起维护一个完全免费开源知识库. 1.AI.OpenAI.MidJourney发 ...

  8. 国产文档控件Spire.Doc for.NET ,增强从 Word 到 PDF 和 HTML 的转换

    Spire.Doc pack (hotfix) 11.5.12 增强了从 Word 到 PDF 和 HTML 的转换 很高兴地宣布发布 Spire.Doc 11.5.12.此版本增强了从 Word 到 ...

  9. java将office文档,word,ppt,pdf文档转换成swf文件在线预览

    java将office文档pdf文档转换成swf文件在线预览 第一步,安装openoffice.org openoffice.org是一套sun的开源office办公套件,能在widows,linux ...

最新文章

  1. 【Go语言】【14】GO语言的接口类型
  2. 搭配飞行员 dinic
  3. 全文搜索技术——Lucene
  4. redis linux无法启动服务,CentOS7 下redis不能开机启动,求解?
  5. java set spliterator_Java HashSet spliterator() 方法
  6. Java-switch选择结构
  7. mysql 1786_mysql错误处理之ERROR 1786 (HY000)
  8. artdialog4.1.7 中父页面给子页面传值
  9. iphone编辑过的录音怎么还原_ios录音误剪怎么恢复
  10. android系统解压zip文件,Android解压缩zip文件
  11. 乐乎常用的html源码,LOFTER网页版登录入口
  12. CodeForces - 497D Gears
  13. ArcGIS10试用体验之安装篇
  14. 埃克森尔科技参与IEEE BDL SC数字身份标准工作组会议
  15. Linux进程地址空间
  16. 【天梯赛】L2-039 清点代码库** (25 point(s))
  17. python升级pip_python中pip升级
  18. ClasssLoader
  19. 手机闪存速度排行_手机很卡可能是只是因为闪存颗粒太差 EMMC UFS大对比
  20. 一个谷粉和3年的Google Reader重度使用者的碎碎念

热门文章

  1. wmv格式的视频如何转换成mp4?
  2. Swift5 获取文件大小,清除缓存,删除沙盒里的文件,读取本地文件
  3. python signal模块_Python使用signal模块实现定时执行
  4. AH8601:12v转5v 2a大电流转换器
  5. redis的雪崩 击穿 穿透以及解决方案
  6. angular踩坑:类型“HTMLElement”上不存在属性“selectedIndex”。ts(2339)
  7. LightSwitch初试
  8. 谷歌nexus9刷机_Google推出Nexus One智能手机
  9. 陈硕《网络编程实战》 02 一个TCP的简单实验
  10. 房地产销售转行学习Python的小哥哥入职起薪9K!