2011-02-05 2 views
3

어떻게 asp.net C#을 사용하여 .doc를 .pdf로 변환 할 수 있습니까? 타사 구성 요소를 사용할 수 없습니다.doc에서 pdf로 변환 #

코드는 (그렇지 않다면, 또한 당신의 답변을 게시하시기 바랍니다, 내가 수동 VS 2005로 변환 것)

  1. C# 또는 VS 2005와
  2. 지원 vb.net에 있어야합니다

검색어가 있으면 알려주십시오.

감사합니다.

+0

간단한 요청을 게시하지 마십시오위한 VS 2005 도구를 설치해야 당신이 만약 –

+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 (기본 상호 운용성 어셈블리는 기본적으로 설치됩니다). (MS 사이트에서 무료)
  • 플러그인 SaveAsPDFandXPS

는 Word.12에 참조가 있는지 확인하십시오. Microsoft.Office.interop.word가 참조에 자동으로 추가됩니다. 다른 사무용으로도 사용하십시오. (참고 :.. 당신은 사무실 2 에드 런타임 (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); 
+1

답변이 추가하는 내용이 대답을 받아 들였다. 일반적으로 코드를 입력하기보다는 게시하는 내용을 설명해야합니다. 그러나 이미 받아 들인 해결책이있는 이전 질문에 대해서는 더욱 그렇습니다. –