2011-02-09 86 views
1

我有一個Windows應用程序來生成報告。 它在RTF中的模板是「{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang2057{\\fonttbl{\\f0\\fnil\\fcharset0 Arial;}}\r\n\\viewkind4\\uc1\\pard\\fs20\\tab\\tab\\tab\\tab af\\par\r\n}\r\n"」,它被寫入到word doc文件中,然後這個詞被保存爲XML並關閉,然後,像(說)這樣的標籤被提取出來,並且一些新的問題在這裏是Word,它在過程中用作轉換器,它在循環中消耗寶貴的時間,在那裏它打開文字實例,保存,關閉,刪除。Rtf到WordML在C#中轉換#

如果我已經做出並幫助我選擇轉換爲WordML,請更正任何錯誤。

+0

你的問題不是很清楚。你想要做什麼? – 2011-02-09 12:33:14

+1

我剛剛通過搜索獲得了信息,它是我需要轉換爲的WordML格式,來自RTF – iTSrAVIE 2011-02-09 14:45:05

回答

2

使用的Aspose .Words

//your rtf string 
string rtfStrx = "{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang2057{\\fonttbl{\\f0\\fnil\\fcharset0 Arial;}}\r\n\\viewkind4\\uc1\\pard\\fs20\\tab\\tab\\tab\\tab af\\par\r\n}\r\n" 

//convert string to bytes for memory stream 
byte[] rtfBytex = Encoding.UTF8.GetBytes(rtfStrx); 
MemoryStream rtfStreamx = new MemoryStream(rtfBytex); 

Document rtfDocx = new Document(rtfStreamx); 

rtfDocx.Save(@"C:\Temp.xml", SaveFormat.WordML); 

這樣可以節省在新文檔的WordML您的RTF文本。我不能說時間會循環。但是,當MS Word被物理地打開和關閉時,肯定會有更少的時間。

-3

使用WPF的RichTextBox。RTF => XAML由於XAML是xml_使用XSLT或LINQ將其轉化爲所需的XML結構