2016-06-15 123 views
0

我无法在C#中保存word文档。文本被粘贴在Word文档中,但保存文件是问题。从RichTextbox保存到Word文档C#

wordDoc.Application oWord; 
wordDoc.Document oDoc; 
oWord = new wordDoc.Application(); 
oWord.Visible = true; 
oDoc = oWord.Documents.Add(); 
Clipboard.SetText(_Text); 
oDoc.ActiveWindow.Selection.Paste(); 
string fileName = @"C:\Users\Sam\Documents\NewDocument.docx"; 
oWord.Application.ActiveDocument.SaveAs2(fileName); 
oDoc.Close(); 

时发生的误差是“其他信息:尝试读取或写入受保护的存储器这往往是一个指示其他内存已损坏。”我相信这是复制富文本框。

UPDATE 我从富文本框中复制了内容并手动执行了该方法,并且没有错误地保存。

穆赫辛

System.Windows.Forms.RichTextBox rtb = new System.Windows.Forms.RichTextBox(); 
rtb.Text = _Text; 
rtb.SaveFile(@"C:\Users\Sam\Documents\NewDocument.rtf"); 

肯布里泰恩

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

//Set animation status for word application 
winword.ShowAnimation = false; 

该错误也出现在ShowAnimation 我正在使用Office 2007,但是我可以使用的办公室的任何版本。

+0

http://stackoverflow.com/questions/37496108/how-to-convert-base64-string-to-doc-docx-in-c/37496548#37496548 – mohsen

+0

@mohsen我跟着去rtb的例子和文档中没有文本,请参阅更新 – Bish25

+0

如果您不使用'_Text'复制/粘贴操作,代码是否工作?那时你应该有一个空文件。 –

回答

0

我设法解决了这个问题,这与Interop.Word版本15.0.0.0上的最新版本有关。我下载了以前的版本12.0.0.0并开始工作,不得不更改一些代码。 SaveAs2SaveAs。如果有人有我可以报告错误的链接,请发表评论。