2008-08-22 19 views
11

Tôi đang cố gắng để thay thế lựa chọn hiện tại trong Word (2003/2007) bởi một số Chuỗi RTF được lưu trữ trong một biến.Tự động hóa từ: Soạn văn bản RTF mà không qua clipboard

Đây là mã hiện tại:

Clipboard.SetText(strRTFString, TextDataFormat.Rtf) 
oWord.ActiveDocument.ActiveWindow.Selection.PasteAndFormat(0) 

Có cách nào để làm điều tương tự mà không đi qua clipboard. Hoặc có cách nào để đẩy dữ liệu clipboard vào một nơi an toàn và khôi phục sau?

Trả lời

14

Đặt RTF vào tệp thay vì khay nhớ tạm, sau đó chèn từ tệp, ví dụ:

Selection.InsertFile FileName:="myfile.rtf", Range :="", _ ConfirmConversions:=False, Link:=False, Attachment:=False

+0

Cảm ơn Joel. Để làm cho câu trả lời này hữu ích hơn nhiều so với bối cảnh của câu hỏi ban đầu, hãy để tôi thêm rằng phương thức 'InsertFile' cũng nằm trên thuộc tính' Range' (có thể truy cập được, ví dụ, trên 'Word.Document',' Word. Phần tử Document.Sections', v.v.) – WizzleWuzzle

-3

Bạn có thể sử dụng RichTextbox để chuyển đổi RTF thành văn bản hoặc ngược lại.

RichTextBox r = new RichTextBox(); 
r.Rtf = strRTFString; 
Console.WriteLine(r.Text); 
+0

Này sẽ không chuyển đổi chuỗi RTF văn bản đơn giản? – Rick

+0

Mmmn, câu trả lời của tôi dường như không giống bất kỳ câu hỏi nào. Tự hỏi tại sao tôi thậm chí đã viết điều đó? – samjudson