常见word,excel,ppt 转pdf
引言
之前项目需要,查找了office文档在线预览的解决方案,顺便记录一下,方便以后查询。
方案一
直接在浏览器中打开Office文档在页面上的链接。会弹出如下窗口:
优点:主流浏览器都支持。
缺点:Office文档链接在浏览器中打开,会有如上图的提示,需用户自己选择打开或者保存功能,如果客户电脑上安装迅雷下载软件,会启动迅雷下载,用户体验不好。
方案二
office文档转html,首先引入com组件中office库,然后在程序集扩展中引入word,excel,ppt的dll。
然后F6生成,会报如下错误:
解决办法:
office文档转换html辅助类:
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.OfficePreview9 { 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不需要安装了,内置有这个功能。
核心代码:
测试结果:
此方案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
常见word,excel,ppt 转pdf相关推荐
- php word excel转pdf文件怎么打开,php office文件(word/excel/ppt)转pdf文件,pptpdf
php office文件(word/excel/ppt)转pdf文件,pptpdf 把代码放到了github上,点击进入 前阶段有个项目用到了线上预览功能, 关于预览office文件实现核心就是,把o ...
- php word/excel/ppt 转pdf
转载至:https://blog.csdn.net/sangjinchao/article/details/78053545 把代码放到了github上,点击进入 前阶段有个项目用到了线上预览功能, ...
- java word,excel,ppt转pdf
准备工作 1.下载 jacob.jar 链接:https://pan.baidu.com/s/1TWIGyX9A3xQ6AG9Y3mVlVg 提取码:abcd 2.下载安装wps WPS Offi ...
- C#编写ASP.NET Core的Web API并部署到IIS上的详细教程(API用于准确获取Word/Excel/PPT/PDF的页数)6 -将项目部署到IIS,及常见错误解决方案
C#编写ASP.NET Core的Web API并部署到IIS上的详细教程(API用于准确获取Word/Excel/PPT/PDF的页数)6 -将项目部署到IIS,及常见错误解决方案 1.前言 2.安 ...
- Python办公自动化(八)|使用Python转换PDF,Word/Excel/PPT/md/HTML都能转
Word转PDF Word转PDF应该是最常见的需求了,毕竟使用PDF格式可以更方便展示文档,虽然在Word中可以直接导出为PDF格式,但是使用Python可以批量转换,更加高效. 目前在Python ...
- 文末福利|使用Python转换PDF,Word/Excel/PPT/md/HTML都能转!
往期精选 Python办公自动化|从Word到Excel Python办公自动化|从Excel到Word Python办公自动化|对比文件,光速完成 Python办公自动化|Excel表格,自动更新 ...
- 使用Python转换PDF,Word/Excel/PPT/md/HTML都能转!
同一个操作执行两次,就要考虑自动化! 大家好,又到了Python办公自动化专题. 今天讲的是各位一定会接触到的PDF转换,关于各种格式的文件转换为PDF有很多第三方工具与网站可以实现,但是使用Pyth ...
- python把excel变成ppt_【转】使用Python转换PDF,Word/Excel/PPT/md/HTML都能转!
今天讲的是各位一定会接触到的PDF转换,关于各种格式的文件转换为PDF有很多第三方工具与网站可以实现,但是使用Python的好处不仅可以批量转换,同时一旦脚本写完了以后就可以一键执行,彻底解放双手,那 ...
- 用python转换PDF/Word/Excel/PPT等!
作者:刘早起 来源:早起Python 大家好,又到了Python办公自动化专题.今天讲的是各位一定会接触到的PDF转换,关于各种格式的文件转换为PDF有很多第三方工具与网站可以实现,但是使用Pytho ...
- Python转换PDF,Word/Excel/PPT都能转!
今天讲的是各位一定会接触到的PDF转换,关于各种格式的文件转换为PDF有很多第三方工具与网站可以实现,但是使用Python的好处不仅可以批量转换,同时一旦脚本写完了以后就可以一键执行,彻底解放双手,那 ...
最新文章
- python conda虚拟环境
- 面向对象设计原则之三:里氏替换原则
- TensorFlow如何充分使用所有CPU核数,提高TensorFlow的CPU使用率,以及Intel的MKL加速
- 《软件测试技术实战:设计、工具及管理》—第2章 2.2节运用决策表设计测试用例...
- CSS 3实战:开发与设计迷你书
- java maven调用hbase
- [Leetcode][第206题][JAVA][反转一个单链表][递归][迭代]
- Keil 中的预处理命令const
- IntelliJ IDEA 内存优化最佳实践
- 2008年.Net编程人员工具参照
- 联合概率分布的学习笔记
- 二进制码和格雷码转换问题
- TwinCAT 3 轴程序
- VScode输入感叹号时,没有出现模板
- 五大编程语言,你知道哪门最适合你吗?让我给你仔细分析一波
- POJ 3470 Walls 已翻译
- 网心科技入选2022中国边缘计算企业20强
- C++编程求三角形角平分线与对边的交点坐标
- 虚拟机Linux如何做快照、备份以及快照的使用
- 使用频谱分析仪测量微弱信号的3个步骤