.NET WEB 实现office文档(word、excel、ppt)转PDF
2015-12-30 15:41
567 查看
首先新建一个项目命名为:translatePDF
添加一个web窗体,命名为:tranbslatePDF,该页面html代码:
如果你的电脑没有安装office软件将不会有相关引用
然后到代码层:
复制过去即用,内有注释!
添加一个web窗体,命名为:tranbslatePDF,该页面html代码:
<html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> </head> <body> <form id="form1" runat="server"> <div> <asp:Button ID="Buttontrans" runat="server" Text="转换PDF" OnClick="Buttontrans_Click" /> </div> </form> </body> </html>然后添加office引用
如果你的电脑没有安装office软件将不会有相关引用
然后到代码层:
using System; using Word = Microsoft.Office.Interop.Word; using Excel = Microsoft.Office.Interop.Excel; using PowerPoint = Microsoft.Office.Interop.PowerPoint; using Microsoft.Office.Core; namespace translatePDF { public partial class tranbslatePDF : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void Buttontrans_Click(object sender, EventArgs e) { if (DOCConvertToPDF("C:/Users/周杨/Desktop/牛倌儿网合伙投资理财三方借款合同.docx", "C:/Users/周杨/Desktop/牛倌儿网合伙投资理财三方借款合同.pdf")) { Response.Write("<script>alert('DOC转PDF成功!')</script>"); } else { Response.Write("<script>alert('对不起,转换失败!')</script>"); } //if (XLSConvertToPDF("C:/test.xls", "C:/testX.pdf")) //{ // Response.Write("<script>alert('XLS转换成功!')</script>"); //} //else //{ // Response.Write("<script>alert('对不起,转换失败!')</script>"); //} //if (PPTConvertToPDF("C:/需求提纲.pptx", "C:/testP.pdf")) //{ // Response.Write("<script>alert('PPT转换成功!')</script>"); //} //else //{ // Response.Write("<script>alert('对不起,转换失败!')</script>"); //} } //Word转换成pdf /// <summary> /// 把Word文件转换成为PDF格式文件 /// </summary> /// <param name="sourcePath">源文件路径</param> /// <param name="targetPath">目标文件路径</param> /// <returns>true=转换成功</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 { 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; } /// <summary> /// 把Excel文件转换成PDF格式文件 /// </summary> /// <param name="sourcePath">源文件路径</param> /// <param name="targetPath">目标文件路径</param> /// <returns>true=转换成功</returns> private bool XLSConvertToPDF(string sourcePath, string targetPath) { bool result = false; Excel.XlFixedFormatType targetType = Excel.XlFixedFormatType.xlTypePDF; object missing = Type.Missing; Excel.ApplicationClass application = null; Excel.Workbook workBook = null; try { application = new Excel.ApplicationClass(); object target = targetPath; object type = targetType; workBook = application.Workbooks.Open(sourcePath, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing); workBook.ExportAsFixedFormat(targetType, target, Excel.XlFixedFormatQuality.xlQualityStandard, true, false, missing, missing, missing, missing); result = true; } catch { result = false; } finally { if (workBook != null) { workBook.Close(true, missing, missing); workBook = null; } if (application != null) { application.Quit(); application = null; } GC.Collect(); GC.WaitForPendingFinalizers(); GC.Collect(); GC.WaitForPendingFinalizers(); } return result; } /// <summary> /// 把PowerPoing文件转换成PDF格式文件 /// </summary> /// <param name="sourcePath">源文件路径</param> /// <param name="targetPath">目标文件路径</param> /// <returns>true=转换成功</returns> private bool PPTConvertToPDF(string sourcePath, string targetPath) { bool result; PowerPoint.PpSaveAsFileType targetFileType = PowerPoint.PpSaveAsFileType.ppSaveAsPDF; object missing = Type.Missing; PowerPoint.ApplicationClass application = null; PowerPoint.Presentation persentation = null; try { application = new PowerPoint.ApplicationClass(); persentation = application.Presentations.Open(sourcePath, MsoTriState.msoTrue, MsoTriState.msoFalse, MsoTriState.msoFalse); persentation.SaveAs(targetPath, targetFileType, Microsoft.Office.Core.MsoTriState.msoTrue); result = true; } catch { result = false; } finally { if (persentation != null) { persentation.Close(); persentation = null; } if (application != null) { application.Quit(); application = null; } GC.Collect(); GC.WaitForPendingFinalizers(); GC.Collect(); GC.WaitForPendingFinalizers(); } return result; } } }
复制过去即用,内有注释!
相关文章推荐
- 实验四 主存空间的分配和回收模拟
- 经典论文阅读笔记——Feature篇(上)
- innobackupex 使用小结
- github项目提交失败 master -> master (non-fast-forward)
- qt 下的一个小日志系统
- 基于JavaScript实现手机短信按钮倒计时(超简单)
- 三个有用的过滤器
- Tomcat容器入门介绍
- UVA 11090 - Going in Cycle!!(Bellman-Ford)
- CSS 为不同类型的设备建立样式表
- jmeter实践
- C#中用schema验证xml的合法性
- ActiveX控件学习摘要
- 数据库第三章理论总结
- 波特率通讯调试
- 第十一章 非对称加密算法--DH
- 算法之美-求二进制中1的个数
- LinearLayout适配不同机型技巧
- iOS图像资源Images Assets
- JavaScript中的常见问题