2011-02-05 52 views
3

我怎么能转换的.doc使用asp.net C#为.pdf。我无法使用任何第三方组件。文档转换为PDF在C#

的代码应该是

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

让我知道如果任何查询。

谢谢!

+0

请不要张贴简单的请求人写你的代码你,如果你。有一个具体的问题,请张贴问题有关 – 2011-02-05 18:43:45

+1

@Adam:我会记住这一点的 – 2011-02-05 18:45:59

回答

7
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(主组件的互操作性将被默认安装)。
  • 插件SaveAsPDFandXPS(从MS网站免费)

请确保您有参考Word.12。 它会自动将Microsoft.Office.interop.word添加到您的参考。按照这些为其他办公应用程序。 (注:你应该已经安装了VS 2005和Office工具,第二版运行时(VSTO 2005 SE)(86)

0
//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);