【问题标题】:Rtf to WordML Convert in C#在 C# 中将 Rtf 转换为 WordML
【发布时间】:2011-02-09 12:27:58
【问题描述】:

我有一个 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 并关闭。然后,像 (say) 这样的标签被提取和一些新的

这里的问题是Word,它在过程中被用作转换器,它在Loop中消耗了宝贵的时间,它打开了word实例,保存,关闭,删除。

如果我犯了任何错误,请更正并帮助我转换为 WordML 的替代方法。

【问题讨论】:

  • 你的问题不是很清楚。你想做什么?
  • 我刚刚通过搜索得到信息,这是我需要从 RTF 转换成的 WordML 格式
  • 为什么我被否决了?有什么问题吗?有人解释。

标签: c# .net xml


【解决方案1】:

使用 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 物理打开和关闭的时间少得多。

【讨论】:

    【解决方案2】:

    除非我遗漏了什么,否则我假设您正在尝试从 RTF 模板创建 Office XML 文件?我认为您可以使用 Open XML SDK 创建 xml 文件。具体来说,该 SDK 附带的 DocumentReflector 似乎非常适合。请参阅此example。此外,还有一个http://www.codeguru.com/cpp/controls/richedit/conversions/article.php/c5377/ 展示了如何从 RTF 转换为 HTML,这可能会指导您。

    【讨论】:

      【解决方案3】:

      使用 wpf 富文本框。 rtf => xaml。由于 xaml 是 xml_ 使用 xslt 或 linq 将其转换为所需的 xml 结构

      【讨论】:

      • 嗨,感谢您的解决方案。 1) 我们只使用 .net 2.0 vs2005。我可以和企业谈谈同样的事情 2) 你能详细说明一下吗?
      猜你喜欢
      • 2016-12-30
      • 1970-01-01
      • 2012-06-18
      • 1970-01-01
      • 2011-09-28
      • 1970-01-01
      • 2014-11-15
      • 2012-02-17
      • 2011-08-20
      相关资源
      最近更新 更多