在c#中将doc转换为pdf

如何使用asp.net c#将.doc转换为.pdf。 我不能使用任何第三方组件。

代码应该在

  1. C#或vb.net
  2. 兼容VS 2005.(如果没有,那么也请发布你的回复,我会手动转换为VS 2005)

如果有任何疑问,请告诉我。

谢谢!

private Microsoft.Office.Interop.Word.ApplicationClass MSdoc; //Use for the parameter whose type are not known or say Missing object Unknown = Type.Missing; private void word2PDF(object Source, object Target) { //Creating the instance of Word Application if (MSdoc == null)MSdoc = new Microsoft.Office.Interop.Word.ApplicationClass(); try { MSdoc.Visible = false; MSdoc.Documents.Open(ref Source, ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown); MSdoc.Application.Visible = false; MSdoc.WindowState = Microsoft.Office.Interop.Word.WdWindowState.wdWindowStateMinimize; object format = Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatPDF; MSdoc.ActiveDocument.SaveAs(ref Target, ref format, ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown); } catch (Exception e) { MessageBox.Show(e.Message); } finally { if (MSdoc != null) { MSdoc.Documents.Close(ref Unknown, ref Unknown, ref Unknown); //WordDoc.Application.Quit(ref Unknown, ref Unknown, ref Unknown); } // for closing the application WordDoc.Quit(ref Unknown, ref Unknown, ref Unknown); } } 

先决条件:

  • MS word2007 with(默认情况下将安装主互操作性程序集)。
  • 插件SaveAsPDFandXPS (从MS Site免费)

确保您参考Word.12。 它会自动将Microsoft.Office.interop.word添加到您的引用中。 请关注其他办公室应用程序。 (注意:您应该已经安装了VS 2005 Tools for Office 2nd Ed。运行时(VSTO 2005 SE)(x86)

 //Add Office Library using Word = Microsoft.Office.Interop.Word; object str_letter_path = @"D:\DOCTEST.doc"; object outputFilePathPDF = @"D:\PDFTEST.PDF"; Word.Application wordApp = new Word.Application(); wordApp.Visible = false; wordApp.ScreenUpdating = false; object oMissing = System.Reflection.Missing.Value; object fileFormat = Word.WdSaveFormat.wdFormatPDF; Word.Document doc = wordApp.Documents.Open(ref str_letter_path, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing); doc.Activate(); doc.SaveAs(ref outputFilePathPDF, ref fileFormat, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing); object saveChanges = Word.WdSaveOptions.wdDoNotSaveChanges; if (doc != null) ((Word._Document)doc).Close(ref saveChanges, ref oMissing, ref oMissing); ((Microsoft.Office.Interop.Word._Application)wordApp).Quit(ref saveChanges, ref oMissing, ref oMissing);