通过 C# 将 RTF 格式转换为 Word 文档

张开发
2026/4/3 22:13:32 15 分钟阅读
通过 C# 将 RTF 格式转换为 Word 文档
在 .NET 项目中处理文档格式转换时RTF 转 Word 是一个常见的需求。RTFRich Text Format作为一种跨平台的文档格式常被用作中间载体而最终交付时往往需要转换为更通用的 Word 格式.doc 或 .docx。本文将演示如何使用一个免费 .NET 库通过几行 C# 代码实现 RTF 到 Word 的转换。整个过程无需安装 Microsoft Office且完全在代码层面控制适合集成到后台服务或桌面应用中。装包新建一个 .NET 项目控制台、WebApi 都行。然后通过 NuGet 包管理器直接安装 Free Spire.DocInstall-Package FreeSpire.Doc该免费版本使用时会有页数限制。安装完成后在代码文件顶部添加命名空间usingSpire.Doc;核心转换逻辑FreeSpire.Doc 中转换文档非常直观先加载 RTF 文件再保存为 Word 格式。下面是一个最简示例// 创建 Document 对象DocumentdocnewDocument();// 加载 RTF 文件doc.LoadFromFile(input.rtf,FileFormat.Rtf);// 保存为 Word 97-2003 格式.docdoc.SaveToFile(output.doc,FileFormat.Doc);// 或者保存为 Word 2007 格式.docxdoc.SaveToFile(output.docx,FileFormat.Docx);LoadFromFile方法支持指定文件格式第二个参数FileFormat.Rtf告知库按 RTF 解析文件。SaveToFile方法第二个参数决定了输出格式FileFormat.Doc输出兼容旧版 Word 的二进制格式FileFormat.Docx输出基于 XML 的现代格式。完整代码示例以下是一个更完整的控制台应用程序示例包含基本的异常处理和路径检查usingSystem;usingSpire.Doc;classRtfToWordConverter{staticvoidMain(string[]args){stringrtfPathC:\docs\source.rtf;stringdocxPathC:\docs\result.docx;stringdocPathC:\docs\result.doc;try{// 加载 RTF 文档DocumentdocnewDocument();doc.LoadFromFile(rtfPath,FileFormat.Rtf);// 输出为 Docxdoc.SaveToFile(docxPath,FileFormat.Docx);Console.WriteLine($转换成功{docxPath});// 也可以同时输出为 Docdoc.SaveToFile(docPath,FileFormat.Doc);Console.WriteLine($转换成功{docPath});}catch(Exceptionex){Console.WriteLine($转换失败{ex.Message});}Console.WriteLine(按任意键退出...);Console.ReadKey();}}转换后的 Word 文档效果图进阶使用流进行转换如果你不希望直接操作文件而是从内存流或网络流中读取 RTF 数据同样可以使用LoadFromStream方法using(FileStreamfsnewFileStream(input.rtf,FileMode.Open)){DocumentdocnewDocument();doc.LoadFromStream(fs,FileFormat.Rtf);using(FileStreamoutStreamnewFileStream(output.docx,FileMode.Create)){doc.SaveToStream(outStream,FileFormat.Docx);}}这种方式在 Web 应用中尤为实用比如从上传的文件流直接处理避免中间临时文件。注意事项格式兼容性Free Spire.Doc 对 RTF 的解析能力覆盖了大多数常用格式字体、表格、图片等但某些特殊 RTF 特性如嵌入对象、复杂数学公式可能无法完美保留。建议用典型文档先行测试。权限问题一定要确保程序对源文件有读取权限对目标保存目录有写入权限不然会报权限异常。我之前部署到服务器就是因为目标目录没给写入权限排查了半天。批量转换如果需要批量处理多个RTF文件建议循环里每次都实例化新的Document对象并且及时Dispose避免内存堆积。其实 RTF 转 Word 这个需求本身不复杂最怕的就是折腾半天还要装 Office 组件。用 Free Spire.Doc 的方式代码量很小逻辑清晰并且可以灵活控制输出格式.doc 或 .docx。希望本文能帮助你快速解决 RTF 转换 Word 的需求。实际项目中请根据文档内容和规模选择合适的输出格式并妥善处理异常情况。

更多文章