2016-09-28 18 views
2

こんにちはみんな良い午後(アルゼンチン時間)、私は、システムがクライアントからのいくつかの要件に応じてワード文書をフォーマットプロジェクトを受け取っていました。私が受け取る単語文書は.doc上にあります。また、別の形式または内部設計でエクスポートまたは作成する文書は.docxです。重要なことは、この同じコードがOffice12アセンブリで使用されていたことですが、Office15の新しいアセンブリを追加するとクラッシュしました。COM例外Range.InsertParagraphAfterを(使用)

私は、次のされたフローのクラッシュのproyectの一部を使用していますサンプルコード:

public void Prueba() 
     { 
      // Open word and a docx file 
      var wordApplication = new Application() { Visible = false }; 
      string [email protected]"<Path>" ; 
      string strNombreArchivo = "<Name of the doc>.doc"; 
      string strddd = "Foo.docx"; 
      var docOriginal = wordApplication.Documents.Open(strPath+strNombreArchivo, ReadOnly: true); 
      //var docddd = wordApplication.Documents.Open(strPath + strddd, ReadOnly: false); 
      var docNuevo = wordApplication.Documents.Add(DocumentType: WdDocumentType.wdTypeDocument); 



      docOriginal.Content.Copy(); 
      docNuevo.Content.Paste(); 
      var docAUsar = docNuevo; 




      Range searchRange = docAUsar.Range(); 
      searchRange.Find.ClearFormatting(); 
      int nextSearchStart = searchRange.Start; 
      searchRange.Start = nextSearchStart; 
      Paragraph ParagraphParrafo = searchRange.Paragraphs.First; 
      nextSearchStart = ParagraphParrafo.Range.End; 
      String titleText = ParagraphParrafo.Range.Text; 

      try 
      { 
       // This is the point where the code crashes. 
       searchRange.InsertParagraphAfter(); 
       docAUsar.Save(); 
      } 
      catch (Exception e) 
      { 
       MessageBox.Show(e.ToString()); 
      } 

      // Close word 
      wordApplication.Quit(); 
      this.Close(); 
     } 

例外メッセージは、次のとおりです。

System.Runtime.InteropServices.COMException was unhandled 
    HelpLink=wdmain11.chm#37373 
    HResult=-2146823683 
    Message=This method or property is not available because this command is not available for reading. 
    Source=Microsoft Word 
    ErrorCode=-2146823683 
    StackTrace: 
     en Microsoft.Office.Interop.Word.Range.InsertParagraphAfter() 
     en WindowsFormsApplication3.Form1.Prueba() en C:\Users\Dleekam\Google Drive\Proyectos\WindowsFormsApplication3\WindowsFormsApplication3\Form1.cs:línea 58 
     en WindowsFormsApplication3.Form1.Form1_Load(Object sender, EventArgs e) en C:\Users\Dleekam\Google Drive\Proyectos\WindowsFormsApplication3\WindowsFormsApplication3\Form1.cs:línea 25 
     en System.Windows.Forms.Form.OnLoad(EventArgs e) 
     en System.Windows.Forms.Form.OnCreateControl() 
     en System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible) 
     en System.Windows.Forms.Control.CreateControl() 
     en System.Windows.Forms.Control.WmShowWindow(Message& m) 
     en System.Windows.Forms.Control.WndProc(Message& m) 
     en System.Windows.Forms.ScrollableControl.WndProc(Message& m) 
     en System.Windows.Forms.Form.WmShowWindow(Message& m) 
     en System.Windows.Forms.Form.WndProc(Message& m) 
     en System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) 
     en System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) 
     en System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) 
    InnerException: 

興味深い:

  1. 新しいファイルを使用するとクラッシュしません。
  2. 私は手でコンテンツを書き込むときにクラッシュしません。
  3. コンテンツをコピーして貼り付けると、クラッシュするコンテンツの一部が貼り付けられます。
  4. 新しい文書の内容を削除してもう一度やり直すとクラッシュします。

私は、ドキュメント原文の単語や段落の書式設定に関連すると思います。それは、元のドキュメントの内容を使用する場合にのみ発生します。しかし、私はまだ何が起こっているのか、それをどう対処するのか、あるいはこれを回避する方法はわかりません。それ以来、例外はそれほど説明的ではありません(私はいつも必要な特定の情報やエラーメッセージを受け取るわけではありません)が、私は既に誰かが同じ、関連しているか無関係なものかを調べるためにウェブを探していますエラーの

すべてのヘルプや向き意志とは高く評価され、コードを読み、理解するあなたの時間をありがとうございました。

親切よろしく ダグラスLeekam

答えて

-1

私はVS2010に取り組んでいたが、その後、私しかしVS2013でソリューションのそのセクションを開き、実行しようとしている上、私は働きました。だから私はVS2013は、オフィスの15バージョンの要素を認識し、それは例外を提起しないと仮定する必要があります。

ありがとうございます。

関連する問題