我有一个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文件。然后单词是Saved-As XML并关闭。然后,像(说)的标签被提取出来并且有些新的
这里的问题是Word,它在过程中用作转换器,它在Loop中消耗宝贵的时间,在那里它打开单词实例,保存,关闭,删除。
如果我已经制作并帮助我转换为WordML,请更正任何错误。
答案 0 :(得分: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);
这会将新文档中的RTF文本另存为WordML。我不能说时间会循环。但是,MS Word在物理上打开和关闭的时间肯定要少得多。
答案 1 :(得分:0)
除非我遗漏了某些内容,否则我假设您正在尝试从RTF模板创建Office XML文件?我认为您可以使用Open XML SDK来创建xml文件。具体来说,SDK附带的DocumentReflector似乎非常适合。见example。此外,还有一个http://www.codeguru.com/cpp/controls/richedit/conversions/article.php/c5377/,其中显示了如何从RTF转换为可能指导您的HTML。
答案 2 :(得分:-2)
使用wpf richtextbox。 Rtf => XAML。由于xaml是xml_,因此使用xslt或linq将其转换为所需的xml结构