2012-06-13 2 views
3

나는 PDF 파일에 마이크로 소프트 OneNote 전자 문서를 변환을 시도하고있다 : 마이크로 소프트의 원인을 통해 스테핑,수 없습니다 프로그래밍

 Microsoft.Office.Interop.OneNote.Application oneNote; 
     oneNote = new Microsoft.Office.Interop.OneNote.Application(); 

     string noteBookXML; 
     oneNote.GetHierarchy(null, HierarchyScope.hsNotebooks, out noteBookXML); 

     XDocument doc = XDocument.Parse(noteBookXML); 
     XNamespace ns = doc.Root.Name.Namespace; 

     foreach (var noteBookNode in from node in doc.Descendants(ns + "Notebook") select node) 
     { 
      string id = noteBookNode.Attribute("ID").Value; 
      string path = "C:\\convert.pdf"; 
      if (File.Exists(path)) 
       File.Delete(path); 
      try 
      { 
       oneNote.Publish(id, path, PublishFormat.pfPDF, ""); 
      } 
      catch(Exception ex) 
      { 
       Console.WriteLine(ex.Message); 
      } 
     } 

나는 현재 게시 호출을 받고 있습니다 위의 코드와

{System.Runtime.InteropServices.COMException (0x800706BE): The remote procedure call failed. (Exception from HRESULT: 0x800706BE) 
    at Microsoft.Office.Interop.OneNote.ApplicationClass.Publish(String bstrHierarchyID, String bstrTargetFilePath, PublishFormat pfPublishFormat, String bstrCLSIDofExporter) 
    at Conversion.OneNoteConverter.run() in G:\Code\OneNoteConversion\Conversion\OneNoteConverter.cs:line 34} 

는 사람이 작업을 얻을 수 있었다 : OneNote를이 예외에 의해 (일반 창 "X 기다려주십시오 작동이 중지되었습니다") 작업을 다음 중지? 나는 분명히 잘못된 것을하고 있습니까?

미리 감사드립니다.

자원 내가 따르려고 노력했습니다

http://msdn.microsoft.com/en-us/library/ms788684.aspx

http://social.technet.microsoft.com/Forums/en/office2010/thread/900dd92b-6e5c-40e5-86ec-f18c1a1fc050

http://www.technologyquestions.com/community/threads/api-onenote-2007-publish.117776/

+0

을 .PDF하는 사실 말이다에서 문서를 수행하고 변환 할 수 전에 : 잘못된 클래스 문자열 (HRESULT에서 예외 : 0x800401F3을 (CO_E_CLASSSTRING)) – Matt

답변

1

.publish 호출을 사용하면 작동하도록 OneNote를 열어야합니다 (그렇지 않으면 예외가 발생합니다).

열기 OneNote의 호출은 빈 ""4 매개 변수가 변경할 수있는 예외의 원인 제거

0

당신이 게시 호출하기 전에 NavigateTo()를 호출 시도?

+0

안녕하세요 Paul, 빠른 응답에 감사드립니다. Publish하기 전에 oneNote.NavigateTo (id)를 추가하고 NavigateTo에 "Exception from HRESULT : 0x80042014"라는 예외가 발생합니다. http://blogs.msdn.com/b/descapa/archive/2006/11/16/onenote-2007-com-error-code-hresults.aspx에 따르면 오류는 "hrObjectDoesNotExist"입니다. 어떤 아이디어? – Matt

+0

이 VB 코드를 C# (http://code.msdn.microsoft.com/office/OneNote-2010-Output-5226f457)로 변환 해보십시오. – paul

0

왜 루프에서 파일을 삭제하거나 만드시겠습니까?

삭제/생성에 잠금이 설정되어 있고 프로세스가 중지되었다고 추측합니다.

어떻게 제거하고 간단히 filename1, filename2 ... filenameN (테스트 실행 용)에 쓰고 동일한 문제가 발생하는지 확인하십시오. 그것이 없다면 답이 있습니다.

관련 문제