使用FlexPaper实现office文件的预览(C#版)
2014-08-22 10:51
441 查看
【转】http://www.cnblogs.com/zzPrince/p/3378336.html#2814050
需求很简单,用户上传office文件(word、excel、ppt)后,可以预览上传的这些文件。搜索的相关的资料后。整理如下:
Step1.用户上传office文件。
Step2.把Office文件转化为pdf文件
Step3.把pdf文件转化为swf文件
Step4.使用flexpaper插件预览swf文件
根据这四步,我们逐步分析:
在次贴出将word转化为pdf文件的代码,完整实例,请看附件。
View Code
(考虑到有些和我一样的新手,在此赘述几句吧:如果你使用vs2010开发,在添加office引用的时候,直接选择.net栏目下的office、Microsoft.Office.Interop.Word,Microsoft.Office.Interop.PowerPoint和Microsoft.Office.Interop.Excel,并且保证office的版本高于后三者就行啦。不用再在com栏目下引入相关office的com组件)
View Code
此处也有两处要重点提醒。首先呢,就是所有的文件路径都不能有空格,这是因为pdf2swf对含有空格的文件路径不支持。其次,就是flashversion=9这个关键的命名也要加上,否则会出现在flexpaper无法预览该swf文档的情况。
有些童鞋该说了,我想把swf文件动态加载,也就是FlexPaperViewer中的SwfFile动态加载。so easy。
比如一个http://localhost:12345/mypage.aspx?swf=123.swf这样的请求,
我们在CS端通过request.QueryString["swf"]获取123.swf文件之后可以将其值赋给mypage.aspx页面的HiddenField1,然后在
mypage.aspx中使用
即可动态获取swf文件。
最后贴出最终的显示结果图:
图1.初始页面
View Code
这几个命令虽然网上有,但是很多都是有问题的,有的在flexpaper当中不能用。本人的这个是亲测可用的,欢迎拍砖!
PostScript:
最后附上本人的项目附件,第一次这么仔细的写博客,大家多多关照。
附件下载
需求很简单,用户上传office文件(word、excel、ppt)后,可以预览上传的这些文件。搜索的相关的资料后。整理如下:
Step1.用户上传office文件。
Step2.把Office文件转化为pdf文件
Step3.把pdf文件转化为swf文件
Step4.使用flexpaper插件预览swf文件
根据这四步,我们逐步分析:
Step1.上传文件,在此不做赘述。
Step2.把Office文件转化为pdf文件。
必须保证你的office版本在2007之上。我第一次使用office2003,不报错,但是也没用生成相关的pdf文件。果断使用了最新的office2013即可完美运行。在次贴出将word转化为pdf文件的代码,完整实例,请看附件。
View Code
(考虑到有些和我一样的新手,在此赘述几句吧:如果你使用vs2010开发,在添加office引用的时候,直接选择.net栏目下的office、Microsoft.Office.Interop.Word,Microsoft.Office.Interop.PowerPoint和Microsoft.Office.Interop.Excel,并且保证office的版本高于后三者就行啦。不用再在com栏目下引入相关office的com组件)
Step3.把pdf文件转化为swf文件。
首先,我们可以下载swftools,完成安装后会在安装目录下面有多个小工具。选择pdf2swf.exe 拷贝到我们的项目相关目录下面,使用如下代码,便可完成调用。View Code
此处也有两处要重点提醒。首先呢,就是所有的文件路径都不能有空格,这是因为pdf2swf对含有空格的文件路径不支持。其次,就是flashversion=9这个关键的命名也要加上,否则会出现在flexpaper无法预览该swf文档的情况。
Step4.使用flexpaper插件预览swf文件
刚开始我们可以下载一个官方的用例,选择-》download web server package。然后直接打开index.html发现不能预览docs中的Paper.pdf.swf这个swf文件。于是乎网上出现了n多关于通过通过将adobe flash player将flexpaper添加信任啥的,这个哥试了,但是发现不行!有种被坑的感觉!最后我的解决方案是:直接将这个官网的例子放在IIS服务下面就行了。或者你通过vs2010建立项目的时候把这个插件添加进去(就是把官网的那些代码粘过去,我这样说你明白吧,但是注意一下路径问题)也是可以的。有些童鞋该说了,我想把swf文件动态加载,也就是FlexPaperViewer中的SwfFile动态加载。so easy。
比如一个http://localhost:12345/mypage.aspx?swf=123.swf这样的请求,
我们在CS端通过request.QueryString["swf"]获取123.swf文件之后可以将其值赋给mypage.aspx页面的HiddenField1,然后在
mypage.aspx中使用
SwfFile: escape($("#HiddenField1").val()),
即可动态获取swf文件。
最后贴出最终的显示结果图:
图1.初始页面
View Code
这几个命令虽然网上有,但是很多都是有问题的,有的在flexpaper当中不能用。本人的这个是亲测可用的,欢迎拍砖!
PostScript:
最后附上本人的项目附件,第一次这么仔细的写博客,大家多多关照。
附件下载
相关文章推荐
- 使用FlexPaper实现office文件的预览(C#版)
- C# web实现word 转Html、office转Html、pdf转图片 在线预览文件
- 使用FlexPaper实现PDF文件在线预览
- C# web实现word 转Html、office转Html、pdf转图片 在线预览文件
- C# web实现word 转Html、office转Html、pdf转图片 在线预览文件
- 使用FlexPaper实现PDF文件在线预览
- 使用IIS作文件服务,使用C#实现上传删除
- C#使用XmlEDocument实现数据文件安全存储功能
- C#使用指定打印机打印Word,Excel等Office文件和打印PDF文件的代码
- C#实现使用API函数播放MP3等音频文件的类设计
- C# 实现预览dwg文件完整源代码(无需autocad环境)
- c#使用资源文件实现多语言应用程序
- 使用资源文件实现C#国际化(Silverlight中英文的实现)
- C#实现使用Excel COM组件向Excel文件中添加图片的Demo
- c#使用 主题文件实现多界面
- C#操作Office文件,成功释放,但读取文件时提示"文件***正由另一进程使用,因此该进程无法访问此文件"的解决办法
- C#使用指定打印机打印Word,Excel等Office文件和打印PDF文件的代码
- C#使用XmlEDocument实现数据文件安全存储功能
- C#实现使用Excel COM组件向Excel文件中添加图片的Demo
- 使用C#实现对文件的共享