2013-07-30 1 views
1

Word 문서를 swf 파일로 변환하려고하는 일부 코드에서 작업 중입니다.C에서 단어 사용 # 항상 닫을 때 '다른 이름으로 저장'대화 상자 표시

나는 이런 식으로 수행

  1. 은 내가 swftools를 사용하여 SWF 할 수있는 PDF 변환 사무실 구성 요소 서비스로서
  2. 를 사용하여 PDF 문서에 Word 문서를 변환합니다.

내 컴퓨터 (64 비트, Windows Server 2008 R2, Office 2010)에서 실행했으나 정상적으로 작동하지만 서버 (64 비트, Windows 서버 2008 R2, Office2010) 코드가 프로그램에서 Word를 닫으려고 할 때 '저장'대화 상자가 표시되고 '저장'또는 '취소'를 클릭하면 '파일이 읽기 전용'이라는 예외가 발생합니다. 그러나 실제로, 원본 파일을 변경하지 않았으며 방금 열어 PDF 문서로 저장했습니다. 여기

코드가 'PDF를 워드로 변환'이다

bool ret = true; 
     Microsoft.Office.Interop.Word.Application newApp = new Microsoft.Office.Interop.Word.Application(); 
     Microsoft.Office.Interop.Word.Document doc = null; 
     object Unknown = Type.Missing; 
     try 
     { 

      object Source = path; 
      object Target = path.Substring(0, path.LastIndexOf(".")) + ".pdf"; 
      if (outpath != "") 
       Target = outpath; 
      object readOnly = true; 
      object format = Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatPDF; 
      doc = newApp.Documents.Open(ref Source, ref Unknown, ref readOnly, 
       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); 
      doc.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) 
     { 
      ret = false; 
     } 
     finally 
     { 
      if (doc != null) 
      { 
       doc.Close(ref Unknown, ref Unknown, ref Unknown); 
       //dialog shows up here 
      } 
      newApp.Quit(ref Unknown, ref Unknown, ref Unknown); 
      GC.Collect(); 
     } 

     return ret; 

어떤 제안?

+0

시도 들어갈 때 거짓. 이 프로덕션 서버에서 작동하는 경우 다음 의미가 이미 생산에 swftools 함께 뭔가 의미가 있습니다 – bazz

+0

나는 이미 그랬어, swfools swf 파일로 작동하도록 잘 작동합니다 및 서버에서 잘 작동합니다. – jarvanJiang

+0

잘 모르겠다. 차이를 만들지 만 지금 가지고있는 것보다는'Unkown = System.Reflection.Missing.Value'를 시도하십시오 .. – bazz

답변

관련 문제