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

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

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

复制代码
Install-Package FreeSpire.Doc

RTF 转 PDF 核心实现代码

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

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

复制代码
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 含特殊格式/字体
相关推荐
测试员周周13 小时前
【Appium 系列】第09节-数据驱动测试 — YAML 数据 + parametrize
服务器·数据库·人工智能·python·测试工具·语言模型·appium
Csvn13 小时前
AI 模型调优与性能优化
人工智能
AI棒棒牛13 小时前
YOLO26最新创新改进:引入 CVPR2026 FAAFusion,普通目标检测获得方向鲁棒性,创新性强!
人工智能·目标检测·计算机视觉·rt-detr·yolo26
lpfasd12313 小时前
Trae Solo 与 Qoder Quest
ide·人工智能·cli
Kingairy13 小时前
ai生成测试用例(Skill/Harness Engineering)
人工智能·测试用例
无忧智库13 小时前
大型集团用户画像系统化标准化数字化用户主数据管理项目规划方案(159页PPT)
大数据·人工智能
头帕王子13 小时前
工业视觉检测入门工具清单2026版
人工智能·数码相机·视觉检测
AI技术控13 小时前
Prompt Engineering 在企业大模型应用中的实践:从提示词模板到可控输出
人工智能·python·深度学习·语言模型·自然语言处理·prompt
勇往直前plus13 小时前
大模型提示词工程
人工智能
Marry Andy13 小时前
langgenius/dify-sandbox:0.2.12启动崩溃
人工智能·经验分享·python