实现WORD及PDF文档在线阅读 ASPNET FLEX PAPER

一、做这个功能的原因

在一个项目中,有个文档管理模块。这个模块呢是让用户上传文档并填写文档相关的信息,存入服务器后,,可以对文档进行删除、下载以及在线阅读等操作。前两个操作(删除、下载)比较的简单在这就不提出实现方法,本文只针对后者做详细的论述。

二、需要安装的软件

vOffice2007

vSWFTools

vFlexPlayer

Office2007

FlexPlayer

三、转换文档的步骤

第一步:将

第二步:将

如果您要阅读的文件是PDF的话,可省去第一步。

四、环境设置

根据您的系统环境二选其一:

打开

由于

五、代码转换页面源代码:<html xmlns=""><head id="Head1" runat="server"><title></title><script type="text/javascript" src="../js/flexpaper_flash_debug.js"></script><script type="text/javascript" src="../js/flexpaper_flash.js"></script><script type="text/javascript" src="../js/jquery.js"></script></head><body><form id="form1" runat="server"><div id="shtml" runat="server" style="margin: auto; width: 90%; height: 600px; border: 3px solid #999;"></div></form></body></html>

第一步DOC2PDF:/// <summary>/// 把Word文件转换成为PDF格式文件/// </summary>/// <param name="sourcePath">源文件路径</param>/// <param name="targetPath">目标括文件路径</param>/// <returns></returns>private bool DOCConvertToPDF(string sourcePath, string targetPath){bool result = false;Word.WdExportFormat exportFormat = Word.WdExportFormat.wdExportFormatPDF;object paramMissing = Type.Missing;Word.ApplicationClass wordApplication = new Word.ApplicationClass();Word.Document wordDocument = null;try{object paramSourceDocPath = sourcePath;string paramExportFilePath = targetPath;Word.WdExportFormat paramExportFormat = exportFormat;bool paramOpenAfterExport = false;Word.WdExportOptimizeFor paramExportOptimizeFor = Word.WdExportOptimizeFor.wdExportOptimizeForPrint;Word.WdExportRange paramExportRange = Word.WdExportRange.wdExportAllDocument;int paramStartPage = 0;int paramEndPage = 0;Word.WdExportItem paramExportItem = Word.WdExportItem.wdExportDocumentContent;bool paramIncludeDocProps = true;bool paramKeepIRM = true;Word.WdExportCreateBookmarks paramCreateBookmarks = Word.WdExportCreateBookmarks.wdExportCreateWordBookmarks;bool paramDocStructureTags = true;bool paramBitmapMissingFonts = true;bool paramUseISO19005_1 = false;wordDocument = wordApplication.Documents.Open(ref paramSourceDocPath, ref paramMissing, ref paramMissing,ref paramMissing, ref paramMissing, ref paramMissing,ref paramMissing, ref paramMissing, ref paramMissing,ref paramMissing, ref paramMissing, ref paramMissing,ref paramMissing, ref paramMissing, ref paramMissing,ref paramMissing);if (wordDocument != null)wordDocument.ExportAsFixedFormat(paramExportFilePath,paramExportFormat, paramOpenAfterExport,paramExportOptimizeFor, paramExportRange, paramStartPage,paramEndPage, paramExportItem, paramIncludeDocProps,paramKeepIRM, paramCreateBookmarks, paramDocStructureTags,paramBitmapMissingFonts, paramUseISO19005_1,ref paramMissing);result = true;}catch (Exception ex){Response.Write(ex.Message);result = false;}finally{if (wordDocument != null){wordDocument.Close(ref paramMissing, ref paramMissing, ref paramMissing);wordDocument = null;}if (wordApplication != null){wordApplication.Quit(ref paramMissing, ref paramMissing, ref paramMissing);wordApplication = null;}GC.Collect();GC.WaitForPendingFinalizers();GC.Collect();GC.WaitForPendingFinalizers();}return result;}

第二步PDF2SWF: /// <summary>/// 把PDF文件转换成为SWF格式文件/// </summary>/// <param name="fileName"></param>private static void ConvertCmd(string fileName){using (Process p = new Process()){string cmdStr = @"C:/SWFTools/pdf2swf.exe";// HttpContext.Current.Server.MapPath("~/SWFTools/pdf2swf.exe");string savePath = HttpContext.Current.Server.MapPath("~/filefactory/");string sourcePath = @"""" + savePath + fileName + @"""";string targetPath = @"""" + savePath + fileName.Substring(0, fileName.LastIndexOf(".")) + ".swf" + @"""";string argsStr = " -t " + sourcePath + " -s flashversion=9 -o " + targetPath;ProcessStartInfo psi = new ProcessStartInfo(cmdStr, argsStr);p.StartInfo = psi;p.Start();p.WaitForExit();}}

第三步显示SWF文件:protected void InitSWF(string guid){string swfhtml = "<a></a><script type=’text/javascript’>var fp = new FlexPaperViewer(‘FlexPaperViewer’,’viewerPlaceHolder’, { config: {SwfFile: escape(‘../filefactory/" + guid + ".swf’),Scale: 0.6,ZoomTransition: ‘easeOut’,ZoomTime: 0.5,ZoomInterval: 0.2,FitPageOnLoad: true,FitWidthOnLoad: false,FullScreenAsMaxWindow: false,ProgressiveLoading: false,MinZoomSize: 0.2,MaxZoomSize: 5,SearchMatchAll: false,InitViewMode: ‘Portrait’,PrintPaperAsBitmap: false,ViewModeToolsVisible: true,ZoomToolsVisible: true,NavToolsVisible: true,CursorToolsVisible: true,SearchToolsVisible: true,localeChain: ‘en_US’} });</script>";this.shtml.InnerHtml = swfhtml;}

六、呈现在方法中调用一二三步:

protectedvoidPage_Load(objectsender,EventArgse)

{

stringguid="3c3d23";

//假定阅读的文件在filefactory目录下

爱情不是避难所,想进去避难的话,是会被赶出来的。

实现WORD及PDF文档在线阅读 ASPNET FLEX PAPER

相关文章:

你感兴趣的文章:

标签云: