项目里一个功能,要求在网页上预览word文档。就像百度文库那样。最终选定采用swf格式来实现预览效果。
前提需要:
1.swf 转换工具:Print2Flash3 。网上有很多swf转换工具,比如Print2FlashFree4、swftools、FlashPaper等,但是经过本人测试这些都不大合适,本人开发是64位系统,其中flashpapers适用32位机,print2flashfree4适用64.但是老是报一些莫名其妙的错误。
2.在程序中引用Print2Flash3的dll(从添加引用的COM 中寻找)。
后台代码中:
using Print2Flash3;
效果:
在前台上传word,通过查询页面显示word文档,并且可以实现网页预览的效果。
3.原理
将word上传后存储到服务器,在查询时,调用安装的swf转换工具Print2Flash3,将word转换成swf格式的,然后点击预览就可以实现在线网上浏览。
后台代码:
//将word ppt 转换成swf oldFile是上传的文件,swfFile是转换后的文件 public void ConvertToSWF(string oldFile, string swfFile) { try { System.Diagnostics.Process pc = new System.Diagnostics.Process(); pc.StartInfo.FileName = "\\\\F-MDH\\Users\\Public\\print2\\p2fServer.exe";//默认Print2Flash3安装目录 pc.StartInfo.Arguments = oldFile + " " + swfFile;//调用FlashPrinter的命令 pc.StartInfo.CreateNoWindow = true;//不创建窗口 pc.StartInfo.UseShellExecute = false; pc.StartInfo.RedirectStandardInput = false;//不重定向输入 pc.StartInfo.RedirectStandardOutput = false;//不重定向输出 pc.StartInfo.RedirectStandardError = true; pc.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; pc.Start(); pc.WaitForExit(); System.Threading.Thread.Sleep(1000 * 3); pc.Close(); pc.Dispose(); } catch (Exception) { throw; } System.Diagnostics.Debug.Print("Completed");