2011-02-05 64 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);