news 2026/6/23 20:35:40

使用 C# 实现 RTF 文档转 PDF 格式

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
使用 C# 实现 RTF 文档转 PDF 格式

RTF(Rich Text Format)作为跨平台富文本格式,常用于文档编辑与数据交换,而 PDF 因格式稳定、跨设备兼容性强,更适合文档分发和归档。在 .NET 开发中,实现 RTF 到 PDF 的转换是常见需求,本文将介绍如何使用免费库 Free Spire.Doc for .NET 实现该转换过程。

安装:Free Spire.Doc 是一款支持 RTF、Word 等文档的格式转换的免费 .NET 库 (有篇幅限制),可直接通过 NuGet 包管理器安装:

/* by yours.tools - online tools website : yours.tools/zh/tuya.html */ Install-Package FreeSpire.Doc

RTF 转 PDF 核心实现代码

场景1:单个RTF文件转换为PDF(基础版)

核心逻辑为“加载RTF文件 → 保存为PDF格式”,代码简洁易实现:

/* by yours.tools - online tools website : yours.tools/zh/tuya.html */ using System; using Spire.Doc; namespace RtfToPdfConverter { class Program { static void Main(string[] args) { try { // 初始化Document对象 Document document = new Document(); // 加载本地RTF文件(替换为实际文件路径) string rtfFilePath = @"C:\Files\test.rtf"; document.LoadFromFile(rtfFilePath, FileFormat.Rtf); // 保存为PDF文件(替换为输出路径) string pdfFilePath = @"C:\Files\test.pdf"; document.SaveToFile(pdfFilePath, FileFormat.Pdf); // 释放资源 document.Close(); Console.WriteLine("RTF转PDF成功!输出路径:" + pdfFilePath); } catch (Exception ex) { Console.WriteLine("转换失败:" + ex.Message); } } } }

场景2:批量转换RTF文件(进阶版)

针对多文件转换场景,可遍历指定目录下的RTF文件批量处理:

using System; using System.IO; using Spire.Doc; namespace BatchRtfToPdfConverter { class Program { static void Main(string[] args) { // 源RTF文件目录、PDF输出目录(替换为实际路径) string sourceDir = @"C:\Files\RTF_Source"; string outputDir = @"C:\Files\PDF_Output"; // 检查并创建输出目录 if (!Directory.Exists(outputDir)) { Directory.CreateDirectory(outputDir); } try { // 获取目录下所有RTF文件 string[] rtfFiles = Directory.GetFiles(sourceDir, "*.rtf"); if (rtfFiles.Length == 0) { Console.WriteLine("源目录下未找到RTF文件!"); return; } // 批量转换 int successCount = 0; foreach (string rtfFile in rtfFiles) { try { Document document = new Document(); document.LoadFromFile(rtfFile, FileFormat.Rtf); // 生成同名PDF文件 string fileName = Path.GetFileNameWithoutExtension(rtfFile); string pdfFile = Path.Combine(outputDir, $"{fileName}.pdf"); document.SaveToFile(pdfFile, FileFormat.Pdf); document.Close(); successCount++; Console.WriteLine($"成功转换:{rtfFile} → {pdfFile}"); } catch (Exception ex) { Console.WriteLine($"转换失败 {rtfFile}:{ex.Message}"); } } Console.WriteLine($"\n批量转换完成!成功:{successCount} 个,失败:{rtfFiles.Length - successCount} 个"); } catch (Exception ex) { Console.WriteLine("批量转换异常:" + ex.Message); } } } }

常见问题与解决方案

问题1:加载 RTF 文件时报错
  • 可能原因:文件路径错误/文件损坏
  • 解决方案:检查路径正确性,验证 RTF 文件可正常打开
转换后 PDF 格式错乱
  • 可能原因:RTF 含特殊格式/字体
  • 解决方案:确保运行环境安装了 RTF 中使用的字体

Free Spire.Doc for .NET 为 RTF 到 PDF 的转换提供了可行的免费解决方案,适合文档规模较小、基础转换场景。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/17 19:35:50

MATLAB在线网页版新手教程:从零开始学科学计算

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个交互式MATLAB学习应用,包含:1. 基础语法教学模块;2. 实时代码练习环境;3. 常见错误提示与解决方案;4. 渐进式难…

作者头像 李华
网站建设 2026/6/16 9:41:58

10分钟原型开发:魔兽世界智能宏配置器

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 构建一个魔兽世界宏配置器原型,包含:1) 可视化技能图标拖拽界面 2) 条件逻辑流程图编辑器 3) 实时模拟测试窗口 4) 多方案保存功能。要求响应式设计&#x…

作者头像 李华
网站建设 2026/6/22 2:50:14

企业级JDK下载管理方案:安全高效的批量部署实践

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个企业级JDK管理工具,功能包括:1.从Oracle官网安全下载指定版本JDK 2.自动校验文件完整性(MD5/SHA256) 3.支持内网镜像服务器部署 4.提供API接口供其…

作者头像 李华
网站建设 2026/6/11 11:32:44

AI如何帮你轻松掌握ORACLE DECODE函数

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个ORACLE DECODE函数的交互式学习工具,包含以下功能:1) 根据用户输入的表结构和需求自动生成DECODE使用示例;2) 提供常见错误模式检测&am…

作者头像 李华
网站建设 2026/6/15 17:21:59

Z-Image-Turbo与LabelImg结合:AI标注预处理加速

Z-Image-Turbo与LabelImg结合:AI标注预处理加速 在计算机视觉项目中,数据标注是模型训练前最耗时、最繁琐的环节之一。传统的人工标注方式不仅效率低下,且容易因主观判断导致标注不一致。随着生成式AI技术的发展,利用AI生成高质量…

作者头像 李华
网站建设 2026/6/10 15:59:26

Cursor IDEA插件入门指南:5分钟学会AI编程

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 编写一个适合新手的Cursor IDEA插件入门教程,包含以下内容:1. 插件安装与配置;2. 基本功能演示(代码补全、错误检测)&am…

作者头像 李华