瓦夏 發表於 2026-1-9 08:20:38

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

<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li>RTF 转 PDF 核心实现代码</li><ul class="second_class_ul"><li>场景1:单个RTF文件转换为PDF(基础版)</li><li>场景2:批量转换RTF文件(进阶版)</li></ul><li>常见问题与解决方案</li><ul class="second_class_ul"><li>问题1:加载 RTF 文件时报错</li><li>转换后 PDF 格式错乱</li></ul></ul></div><p>RTF(Rich Text Format)作为跨平台富文本格式,常用于文档编辑与数据交换,而 PDF 因格式稳定、跨设备兼容性强,更适合文档分发和归档。在 .NET 开发中,实现 RTF 到 PDF 的转换是常见需求,本文将介绍如何使用免费库 Free Spire.Doc for .NET 实现该转换过程。</p>
<p><strong>安装:</strong> Free Spire.Doc 是一款支持 RTF、Word 等文档的格式转换的免费 .NET 库 (有篇幅限制),可直接通过 NuGet 包管理器安装:</p>
<div class="jb51code"><pre class="brush:bash;">Install-Package FreeSpire.Doc
</pre></div>
<p class="maodian"></p><h2>RTF 转 PDF 核心实现代码</h2>
<p class="maodian"></p><h3>场景1:单个RTF文件转换为PDF(基础版)</h3>
<p>核心逻辑为&ldquo;加载RTF文件 &rarr; 保存为PDF格式&rdquo;,代码简洁易实现:</p>
<div class="jb51code"><pre class="brush:csharp;">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);
            }
      }
    }
}
</pre></div>
<p class="maodian"></p><h3>场景2:批量转换RTF文件(进阶版)</h3>
<p>针对多文件转换场景,可遍历指定目录下的RTF文件批量处理:</p>
<div class="jb51code"><pre class="brush:csharp;">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);
            }
      }
    }
}
</pre></div>
<p class="maodian"></p><h2>常见问题与解决方案</h2>
<p class="maodian"></p><h3>问题1:加载 RTF 文件时报错</h3>
<ul><li>可能原因:文件路径错误/文件损坏</li><li>解决方案:检查路径正确性,验证 RTF 文件可正常打开</li></ul>
<p class="maodian"></p><h3>转换后 PDF 格式错乱</h3>
<ul><li>可能原因:RTF 含特殊格式/字体</li><li>解决方案:确保运行环境安装了 RTF 中使用的字体</li></ul>
<p>Free Spire.Doc for .NET 为 RTF 到 PDF 的转换提供了可行的免费解决方案,适合文档规模较小、基础转换场景。</p>
<p>到此这篇关于使用C#实现将RTF文档转换为PDF格式的文章就介绍到这了,更多相关C# RTF转PDF内容请搜索琼殿技术社区以前的文章或继续浏览下面的相关文章希望大家以后多多支持琼殿技术社区!</p>
                           
                            <div class="art_xg">
                              <b>您可能感兴趣的文章:</b><ul><li>使用C#实现将RTF转换为PDF</li><li>C#/VB.NET 在PDF中添加文件包(Portfolio)的方法</li><li>C#利用Free&nbsp;Spire.Doc&nbsp;for&nbsp;.NET将RTF文档转换为图片</li><li>C#实现将RTF文档转换为图片(PNG,JPG)</li><li>C#将Word转换为RTF的高效解决方案</li><li>C#实现Word转换RTF的示例代码</li></ul>
                            </div>

                        </div>
                        <!--endmain-->
頁: [1]
查看完整版本: 使用C#实现将RTF文档转换为PDF格式