2011-05-01 4 views
4

ASP.NET MVC 페이지에서 .doc 파일을 .htm 형식으로 변환하려고합니다. 형식을 .HTM하는 .DOC (심지어을 .ppt)를 변환하는 방법을 Google에 내가 시도C# .doc를 .htm으로 변환합니다.

using Microsoft.Office.Core; 
using Microsoft.Office.Interop.Word; 

.... 

Microsoft.Office.Interop.Word.Application objWord = new Microsoft.Office.Interop.Word.Application(); 

      object source = @"C:\Users\XYZ\Desktop\ScreenShot.doc"; 
      object target = @"C:\Users\XYZ\Desktop\ScreenShot.html"; 
      object unknown = Type.Missing; 
      objWord.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); 

      object format = Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatRTF; 
      objWord.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); 

항상 위의 다소 유사한 코드를 발견 :

나는 C#에서 다음 코드를 사용하고 .) (

Microsoft.Office.Interop.Word.Application objWord = 새로운 Microsoft.Office.Interop.Word.Application; 라인에서

Retrieving the COM class factory for component with CLSID {000209FF-0000-0000-C000-000000000046} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

:

그러나 나는이 예외가 계속

Word Starter 2010이 설치되어 있고 Office 2010 전체가 아닌 이유로 인해 발생 했습니까? 아니면 다른 해결책이 있습니까?

+5

서버에서 Office를 자동화하지 마십시오. – SLaks

+0

@ SLaks : 설명해 주시겠습니까 ... 고마워요. – Jake

+2

http://support.microsoft.com/kb/257757 – SLaks

답변

2

를 들어

좋은 생각이 아니다. 프리스트 문제는 기술적입니다. 프로세스가있는 몇 가지 함정이 있습니다. 즉, 때로는 excel/word가 Quit() 호출 후 종료되지 않습니다. 쉬운 일은 아니지만 해결할 수 있습니다.

그러나 두 번째 문제는 라이센스입니다. MS Office를 사용할 모든 사용자에 대해 라이센스가 필요합니다. 인터넷 웹에서 사용하고 싶다면 심각한 재정적 문제가 있습니다.

MS Office를 설치하지 않고도 MS Office 형식을 열 수있는 여러 라이브러리가 있습니다. 나는 Aspose 라이브러리로 한 번 일했지만 몇 가지 다른 라이브러리가 있습니다.

1

COM 개체가 aspnet 사용자 ID에 대한 시작 및 액세스 권한을 허용하도록 구성되지 않았으므로이 예외가 발생합니다. 응용 프로그램 풀 ID 사용자를 COM + 구성 요소를 실행할 수있는 충분한 권한이있는 "네트워크 서비스"로 변경하는 것이 좋습니다. 서버 측에서 MS 오피스에서 COM 개체를 사용하여 자세한 내용은 check this

+0

응용 프로그램 풀 ID가 어떻게 변경되었는지 설명해 주시겠습니까? – Jake

+0

실행 -> inetmgr을 입력하면 IIS 관리자가 열리고 웹 사이트에 연결된 응용 프로그램 풀을 선택한 다음 동작 메뉴에서 고급 설정을 선택한 다음 ID 옵션을 사용하여 사용자를 변경합니다. – Ahmed

관련 문제