2011-02-05 25 views
3

asp.net c#を使用して.docを.pdfに変換するにはどうすればよいですか?私は第三者コンポーネントを使用することはできません。docをpdf形式に変換する#

コードが

VS 2005との互換性
  1. C#またはvb.net
  2. にする必要があります(ない場合は、またあなたの回答を投稿してください、私は手動VS 2005に変換します)

質問があれば教えてください。

ありがとうございます!

+0

あなたの場合はあなたのためにあなたのコードを書くために誰かのためのシンプルなリクエストを投稿しないでください –

+1

@Adam:これを覚えておいてください。 –

+1

[Wordファイルをプログラムに変換するにはどうすればよいですか?](http://stackoverflow.com/questions/607669)/how-do-i-convert-word-files-to-pdf-programmatically) –

答えて

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が参照に自動的に追加されます。他のオフィスアプリケーションでは、これらに従ってください。 は(注:。。あなたはオフィス第2版のためのVS 2005のツールをインストールしている必要がありますランタイム(VSTO 2005 SE)(x86の)

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); 
+1

あなたの答えが何を追加するのかは明確ではない受け入れられた答え。一般的には、コードを入力するのではなく、投稿している内容を記述する必要がありますが、既に解決済みの古い質問についてはさらに重要です。 –

関連する問題