html怎么转换到百度,类似百度文库在线预览文档flash版(支持word、excel、ppt、pdf)+在线预览文档html版...

类似百度文库在线预览文档flash版(支持word、excel、ppt、pdf)+在线预览文档html版

(1).将文档转换为html,只支持支持office文档 (2).将文档转换为flash,实现类似百度文库的效果,除支持office文档外还支持pdf

(1) a.首先添加引用:

using Microsoft.Office.Core;using Word = Microsoft.Office.Interop.Word;

b.其次编写文档转换的方法:

36328856_1.gif1 /// 2 ///word转成html3 /// 4 /// 要转换的文档的路径5 /// 转换成的html的保存路径6 /// 转换后html文件的名字7 private static void WordToHtml(string path, string savePath, string wordFileName)8 {9 Word.ApplicationClass word = new Word.ApplicationClass();10 Type wordType = word.GetType();11 Word.Documents docs = word.Documents;12 Type docsType = docs.GetType();13 Word.Document doc = (Word.Document)docsType.InvokeMember("Open", System.Reflection.BindingFlags.InvokeMethod, null, docs, new Object[] {(object)path, true, true });14 Type docType = doc.GetType();15 string strSaveFileName = savePath + wordFileName + ".html";16 object saveFileName = (object)strSaveFileName;17 docType.InvokeMember("SaveAs", System.Reflection.BindingFlags.InvokeMethod, null, doc, new object[] { saveFileName, Word.WdSaveFormat.wdFormatFilteredHTML });18 docType.InvokeMember("Close", System.Reflection.BindingFlags.InvokeMethod, null, doc, null);19 wordType.InvokeMember("Quit", System.Reflection.BindingFlags.InvokeMethod, null, word, null);20 }21 /// 22 ///excel 转换为html23   /// 24   /// 要转换的文档的路径25   /// 转换成的html的保存路径26   /// 转换后html文件的名字27 public static void ExcelToHtml(string path, string savePath, string wordFileName)28 {29 string str = string.Empty;30 Microsoft.Office.Interop.Excel.Application repExcel = new Microsoft.Office.Interop.Excel.Application();31 Microsoft.Office.Interop.Excel.Workbook workbook = null;32 Microsoft.Office.Interop.Excel.Worksheet worksheet = null;33 workbook = repExcel.Application.Workbooks.Open(path, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);34 worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1];35 object htmlFile = savePath + wordFileName + ".html";36 object ofmt = Microsoft.Office.Interop.Excel.XlFileFormat.xlHtml;37 workbook.SaveAs(htmlFile, ofmt, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);38 object osave = false;39 workbook.Close(osave, Type.Missing, Type.Missing);40 repExcel.Quit();41 }42 /// 43   ///ppt转换为html44   /// 45   /// 要转换的文档的路径46   /// 转换成的html的保存路径47   /// 转换后html文件的名字48 public static void PPTToHtml(string path, string savePath, string wordFileName)49 {50 Microsoft.Office.Interop.PowerPoint.Application ppApp = new Microsoft.Office.Interop.PowerPoint.Application();51 string strSourceFile = path;52 string strDestinationFile = savePath + wordFileName + ".html";53 Microsoft.Office.Interop.PowerPoint.Presentation prsPres = ppApp.Presentations.Open(strSourceFile, Microsoft.Office.Core.MsoTriState.msoTrue, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoFalse);54 prsPres.SaveAs(strDestinationFile, Microsoft.Office.Interop.PowerPoint.PpSaveAsFileType.ppSaveAsHTML, MsoTriState.msoTrue);55 prsPres.Close();56 ppApp.Quit();57 }

36328856_1.gif

c.接下来就是调用方法:WordToHtml(string path, string savePath, string wordFileName);ExcelToHtml(string path, string savePath, string wordFileName);PPTToHtml(string path, string savePath, string wordFileName)实现相应文档的转换

然后就可以看见效果了

WORD

36328856_2.jpg

PPT

36328856_3.jpg

大家看一下这样的效果确实感觉挺丑的,特别是word,excel格式都没有了,这样的效果是难以满足要求的,那接下来我们就学习第二种方案。。。。

(2).在网上搜索如何和将office文档的pdf文档转换为flash,实现在线预览,你会发现有好几种解决方案

a.使用flashpaper将需要的文档通过简单的设置转换为SWF格式的Flash,扩展阅读:http://baike.baidu.com/view/917746.htm,不过由于我的电脑室win7,而flashpaper又不支持win7,所以只好

放弃此种方案。

b.在网上发现可以使用swftools(http://www.swftools.org/谢天谢地啊,它支持win7)将pdf格式的文件转换为flash,但是不能讲office文档转换为flash,那怎么办呢,难道这种方法又不行,可是仔

细想一下如果我们能将office文档先转换为pdf文件不就解决问题了吗,突然之间隐隐约约觉得使用office软件就可实现这一功能,于是打开word看一下究竟

36328856_4.jpg哈哈果然有,不过要先装一个插件                  

36328856_5.jpg

一切准备工作结束以后我们就可以进行编码了

c.首先说一下swftools使用:在命令行中运行pdf2swf src.pdf des.swf一般能满足需求。然后就行主要的代码的编写(即将office文档转换为pdf文档)

编写Office2Pdf.cs类

36328856_1.gif1 using System;2 using System.Data;3 using System.Configuration;4 using System.Web;5 using System.Web.Security;6 using System.Web.UI;7 using System.Web.UI.WebControls;8 using System.Web.UI.WebControls.WebParts;9 using System.Web.UI.HtmlControls;10 using Word = Microsoft.Office.Interop.Word;11 using Excel = Microsoft.Office.Interop.Excel;12 using PowerPoint = Microsoft.Office.Interop.PowerPoint;13 using Microsoft.Office.Core;14 15 /// 16 ///Office2Pdf 将Office文档转化为pdf17 /// 18 public class Office2Pdf19 {20 public Office2Pdf()21 {22 //23 //TODO: 在此处添加构造函数逻辑24 //25 }26 /// 27 ///Word转换成pdf28 /// 29 /// 源文件路径30 /// 目标文件路径31 /// true=转换成功32 public bool DOCConvertToPDF(string sourcePath, string targetPath)33 {34 bool result = false;35 Word.WdExportFormat exportFormat = Word.WdExportFormat.wdExportFormatPDF;36 object paramMissing = Type.Missing;37 Word.ApplicationClass wordApplication = new Word.ApplicationClass();38 Word.Document wordDocument = null;39 try40 {41 object paramSourceDocPath = sourcePath;42 string paramExportFilePath = targetPath;43 Word.WdExportFormat paramExportFormat = exportFormat;44 bool paramOpenAfterExport = false;45 Word.WdExportOptimizeFor paramExportOptimizeFor = Word.WdExportOptimizeFor.wdExportOptimizeForPrint;46 Word.WdExportRange paramExportRange = Word.WdExportRange.wdExportAllDocument;47 int paramStartPage = 0;48 int paramEndPage = 0;49 Word.WdExportItem paramExportItem = Word.WdExportItem.wdExportDocumentContent;50 bool paramIncludeDocProps = true;51 bool paramKeepIRM = true;52 Word.WdExportCreateBookmarks paramCreateBookmarks = Word.WdExportCreateBookmarks.wdExportCreateWordBookmarks;53 bool paramDocStructureTags = true;54 bool paramBitmapMissingFonts = true;55 bool paramUseISO19005_1 = false;56 wordDocument = wordApplication.Documents.Open(57 ref paramSourceDocPath, ref paramMissing, ref paramMissing,58 ref paramMissing, ref paramMissing, ref paramMissing,59 ref paramMissing, ref paramMissing, ref paramMissing,60 ref paramMissing, ref paramMissing, ref paramMissing,61 ref paramMissing, ref paramMissing, ref paramMissing,62 ref paramMissing);63 if (wordDocument != null)64 wordDocument.ExportAsFixedFormat(paramExportFilePath,65 paramExportFormat, paramOpenAfterExport,66 paramExportOptimizeFor, paramExportRange, paramStartPage,67 paramEndPage, paramExportItem, paramIncludeDocProps,68 paramKeepIRM, paramCreateBookmarks, paramDocStructureTags,69 paramBitmapMissingFonts, paramUseISO19005_1,70 ref paramMissing);71 result = true;72 }73 catch74 {75 result = false;76 }77 finally78 {79 if (wordDocument != null)80 {81 wordDocument.Close(ref paramMissing, ref paramMissing, ref paramMissing);82 wordDocument = null;83 }84 if (wordApplication != null)85 {86 wordApplication.Quit(ref paramMissing, ref paramMissing, ref paramMissing);87 wordApplication = null;88 }89 GC.Collect();90 GC.WaitForPendingFinalizers();91 GC.Collect();92 GC.WaitForPendingFinalizers();93 }94 return result;95 }96 97 /// 98 ///把Excel文件转换成PDF格式文件99 /// 100 /// 源文件路径101 /// 目标文件路径102 /// true=转换成功103 public bool XLSConvertToPDF(string sourcePath, string targetPath)104 {105 bool result = false;106 Excel.XlFixedFormatType targetType = Excel.XlFixedFormatType.xlTypePDF;107 object missing = Type.Missing;108 Excel.ApplicationClass application = null;109 Excel.Workbook workBook = null;110 try111 {112 application = new Excel.ApplicationClass();113 object target = targetPath;114 object type = targetType;115 workBook = application.Workbooks.Open(sourcePath, missing, missing, missing, missing, missing,116 missing, missing, missing, missing, missing, missing, missing, missing, missing);117 workBook.ExportAsFixedFormat(targetType, target, Excel.XlFixedFormatQuality.xlQualityStandard, true, false, missing, missing, missing, missing);118 result = true;119 }120 catch121 {122 result = false;123 }124 finally125 {126 if (workBook != null)127 {128 workBook.Close(true, missing, missing);129 workBook = null;130 }131 if (application != null)132 {133 application.Quit();134 application = null;135 }136 GC.Collect();137 GC.WaitForPendingFinalizers();138 GC.Collect();139 GC.WaitForPendingFinalizers();140 }141 return result;142 }143 ///144 ///把PowerPoint文件转换成PDF格式文件145 ///146 ///源文件路径147 ///目标文件路径148 ///true=转换成功 149 public bool PPTConvertToPDF(string sourcePath, string targetPath)150 {151 bool result;152 PowerPoint.PpSaveAsFileType targetFileType = PowerPoint.PpSaveAsFileType.ppSaveAsPDF;153 object missing = Type.Missing;154 PowerPoint.ApplicationClass application = null;155 PowerPoint.Presentation persentation = null;156 try157 {158 application = new PowerPoint.ApplicationClass();159 persentation = application.Presentations.Open(sourcePath, MsoTriState.msoTrue, MsoTriState.msoFalse, MsoTriState.msoFalse); persentation.SaveAs(targetPath, targetFileType, Microsoft.Office.Core.MsoTriState.msoTrue);160 result = true;161 }162 catch163 {164 result = false;165 }166 finally167 {168 if (persentation != null)169 {170 persentation.Close();171 persentation = null;172 }173 if (application != null)174 {175 application.Quit();176 application = null;177 }178 GC.Collect();179 GC.WaitForPendingFinalizers();180 GC.Collect();181 GC.WaitForPendingFinalizers();182 }183 return result;184 }185 }

36328856_1.gif

然后编写Pdf2Swf.cs类调用命令行将pdf转换为swf格式的flash

36328856_1.gif1 using System;2 using System.Data;3 using System.Configuration;4 using System.Web;5 using System.Web.Security;6 using System.Web.UI;7 using System.Web.UI.WebControls;8 using System.Web.UI.WebControls.WebParts;9 using System.Web.UI.HtmlControls;10 using System.Diagnostics;11 using System.IO;12 13 /// 14 ///Pdf2Swf 将pdf转化为swf15 /// 16 public class Pdf2Swf17 {18 public Pdf2Swf()19 {20 //21 //TODO: 在此处添加构造函数逻辑22 //23 }24 public void PDFConvertToSWF(string sourcePath, string targetPath)25 {26 Process p = new Process();27 p.StartInfo.FileName = "cmd.exe";28 p.StartInfo.UseShellExecute = false;29 p.StartInfo.RedirectStandardInput = true;30 p.StartInfo.RedirectStandardOutput = true;31 p.StartInfo.RedirectStandardError = true;32 p.StartInfo.CreateNoWindow = true;33 p.Start();34 string cmd = "pdf2swf.exe" + " " + sourcePath + "-o" + targetPath;35 p.StandardInput.WriteLine(cmd);36 p.Close();37 }38 }

36328856_1.gif

然后只需要调用这两个类就可以实现将office转换为pdf再转换为flash的功能了

(3)最后就是实现flash的显示:这时我们还要借助工具来实现功能,那就是flexpaper,首先在网上下载所需要的flash文件、javascript文件,然后编写html代码:

36328856_6.gif12 3 4 5 中勤文库-Flash版 6 7 8 html, body{height:100%; }9 body{margin:0;padding:0;overflow:auto; }10 #flashContent{display:none; }11 12 13 14 15 16 28 29 30 varswfVersionStr= "10.0.0";31 32 varxiSwfUrlStr= "playerProductInstall.swf";33 varswfFile=emotion;//这填写文档转换成的flash文件的路径34 35 varflashvars={36 SwfFile : escape(swfFile),37 Scale :0.6,38 ZoomTransition :"easeOut",39 ZoomTime :0.5,40 ZoomInterval :0.2,41 FitPageOnLoad :true,42 FitWidthOnLoad :false,43 PrintEnabled :true,44 FullScreenAsMaxWindow :false,45 ProgressiveLoading :true,46 47 PrintToolsVisible :true,48 ViewModeToolsVisible :true,49 ZoomToolsVisible :true,50 FullScreenVisible :true,51 NavToolsVisible :true,52 CursorToolsVisible :true,53 SearchToolsVisible :true,54 55 localeChain:"en_US"56 };57 58 varparams={59 60 }61 params.quality= "high";62 params.bgcolor= "#ffffff";63 params.allowscriptaccess= "sameDomain";64 params.allowfullscreen= "true";65 varattributes={};66 attributes.id= "FlexPaperViewer";67 attributes.name= "FlexPaperViewer";68 swfobject.embedSWF(69 "FlexPaperViewer.swf","flashContent",70 "730","580",71 swfVersionStr, xiSwfUrlStr,72 flashvars, params, attributes);73 swfobject.createCSS("#flashContent","display:block;text-align:left;");74 75 76 77 78 79 80 81 82

83 To view this page ensure that Adobe Flash Player version 84 10.0.0 or greater is installed. 85

86 87 varpageHost=((document.location.protocol== "https:")? "https://":"http://");88 document.write(" Get Adobe Flash player");90 91 92
93 94 95 96
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值