如何使用 C# 将 RTF 转换为 PDF | IronPDF

Convert Rich Text Format to PDF in C

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPdf 只需两行代码就能用 C# 将 RTF 文档无缝转换为 PDF,同时支持 RTF 字符串和文件,并保留格式、字体和样式,以实现一致的跨平台文档显示。

RTF代表富文本格式,是由微软开发的一种文档文件格式。 它支持诸如字体、样式和图像的文本格式化,但功能不如其他文档格式如DOCX或PDF丰富。 该格式于 1987 年推出,由于其纯文本性质和嵌入式格式化命令,已成为跨平台文档交换的标准。

IronPDF 可将字符串和文件中的 RTF 转换为 PDF。 将 RTF 转换为 PDF 有几个好处,包括易于访问、压缩功能和打印优化。 这将确保文档在所有平台上保持一致的外观、安全性和可打印性。 与 RTF 文件不同,PDF 文件无论在何种浏览设备或操作系统下都能保持准确的布局,因此非常适合专业文档的分发。

快速入门:使用IronPDF将 RTF 转换为 PDF

开始使用 IronPDF 将 RTF 文件转换为高质量 PDF。 只需两行代码,即可将富文本格式文档转换为安全、可访问的 PDF 文件,以便分发和打印。 IronPDF 提供了将 RTF 转换为 PDF 的直接方法,确保无缝集成到您的 .NET C# 项目中。

  1. 使用 NuGet 包管理器安装 https://www.nuget.org/packages/IronPdf

    PM > Install-Package IronPdf
  2. 复制并运行这段代码。

    new IronPdf.ChromePdfRenderer()
         .RenderRtfFileAsPdf("input.rtf")
         .SaveAs("output.pdf");
  3. 部署到您的生产环境中进行测试

    通过免费试用立即在您的项目中开始使用IronPDF

    arrow pointer


如何将 RTF 字符串转换为 PDF?

使用 RenderRtfStringAsPdf 方法将 RTF 字符串转换为 PDF 文档。 全系列的 渲染选项,如应用 文本和 HTML 页眉页脚 文本和图像戳记页面编号、自定义页面大小和方向,也适用于这种渲染方法。 生成 PDF 文档后,您可以执行 合并、拆分 和旋转页面等 PDF 页面操作,还可以应用 注释 书签

为什么使用 RTF 字符串转换而不是文件转换?

在处理动态生成的内容或从数据库、API 或用户输入接收 RTF 数据时,RTF 字符串转换尤其有用。 这种方法无需创建临时文件,可提高网络应用程序的性能。 此外,基于字符串的转换允许在转换前更轻松地操作和预处理 RTF 内容。

:path=/static-assets/pdf/content-code-examples/how-to/rtf-to-pdf-from-string.cs
using IronPdf;

// Instantiate Renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();

// RTF string
string rtf = @"{\rtf1\ansi\deff0{\fonttbl{\f0 Arial;}}{\colortbl;\red0\green0\blue0;}\cf0This is some \b bold \b0 and \i italic \i0 text.}";

// Render from RTF string
PdfDocument pdf = renderer.RenderRtfStringAsPdf(rtf);

// Save the PDF
pdf.SaveAs("pdfFromRtfString.pdf");
$vbLabelText   $csharpLabel

RTF 字符串转换的常见用例有哪些?

RTF 字符串转换常用于以下场景:

  • 电子邮件模板:将 RTF 格式的电子邮件正文转换为 PDF 以便存档
  • 数据库报告:将数据库中存储的 RTF 数据转换为可打印的 PDF 文件
  • 动态文档生成:实时从用户生成的 RTF 内容创建 PDF
  • API 集成:将来自外部服务的 RTF 响应处理为 PDF 格式

对于更高级的文档生成场景,请探索 将 DOCX 转换为 PDF 生成 PDF 报告

如何应用其他格式化选项?

IronPDF通过 RenderingOptions 类提供广泛的自定义选项。 配置页面方向、页边距、纸张大小等:

using IronPdf;
using IronPdf.Rendering;

// Create renderer with custom options
ChromePdfRenderer renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;
renderer.RenderingOptions.MarginTop = 50;
renderer.RenderingOptions.MarginBottom = 50;
renderer.RenderingOptions.MarginLeft = 25;
renderer.RenderingOptions.MarginRight = 25;

// RTF string with formatting
string rtf = @"{\rtf1\ansi\deff0{\fonttbl{\f0 Times New Roman;}{\f1 Arial;}}
{\colortbl;\red255\green0\blue0;\red0\green0\blue255;}
\f0\fs24 This is a heading\line
\f1\fs20\cf1 This text is red\line
\cf2 This text is blue\line
\b Bold text\b0 and \i italic text\i0}";

// Convert with custom options
PdfDocument pdf = renderer.RenderRtfStringAsPdf(rtf);
pdf.SaveAs("formattedRtfToPdf.pdf");
using IronPdf;
using IronPdf.Rendering;

// Create renderer with custom options
ChromePdfRenderer renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;
renderer.RenderingOptions.MarginTop = 50;
renderer.RenderingOptions.MarginBottom = 50;
renderer.RenderingOptions.MarginLeft = 25;
renderer.RenderingOptions.MarginRight = 25;

// RTF string with formatting
string rtf = @"{\rtf1\ansi\deff0{\fonttbl{\f0 Times New Roman;}{\f1 Arial;}}
{\colortbl;\red255\green0\blue0;\red0\green0\blue255;}
\f0\fs24 This is a heading\line
\f1\fs20\cf1 This text is red\line
\cf2 This text is blue\line
\b Bold text\b0 and \i italic text\i0}";

// Convert with custom options
PdfDocument pdf = renderer.RenderRtfStringAsPdf(rtf);
pdf.SaveAs("formattedRtfToPdf.pdf");
$vbLabelText   $csharpLabel

有关自定义页边距和页面布局的更多信息,请参阅自定义页边距自定义纸张尺寸指南。

如何将 RTF 文件转换为 PDF?

要将 RTF 文件转换为 PDF,请使用 RenderRtfFileAsPdf 方法。 从提供的链接下载示例 RTF 文件。 本示例演示了如何将该示例文件转换为 PDF 文档。 该方法既可接受绝对文件路径,也可接受相对文件路径,因此可灵活适用于各种应用程序架构。

转换前的 RTF 文件是什么样的?

Microsoft Word 显示 RTF 文件,包含格式化文本示例,包括粗体、斜体、圆点和下划线文本

转换 RTF 文件需要哪些代码?

:path=/static-assets/pdf/content-code-examples/how-to/rtf-to-pdf-from-file.cs
using IronPdf;

// Instantiate Renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();

// Render from RTF file
PdfDocument pdf = renderer.RenderRtfFileAsPdf("sample.rtf");

// Save the PDF
pdf.SaveAs("pdfFromRtfFile.pdf");
$vbLabelText   $csharpLabel

要批量处理多个 RTF 文件,请执行一个简单的循环:

using IronPdf;
using System.IO;

// Create renderer once for efficiency
ChromePdfRenderer renderer = new ChromePdfRenderer();

// Get all RTF files in directory
string[] rtfFiles = Directory.GetFiles(@"C:\RTFDocuments", "*.rtf");

foreach (string rtfFile in rtfFiles)
{
    // Convert each RTF file to PDF
    PdfDocument pdf = renderer.RenderRtfFileAsPdf(rtfFile);

    // Save with same name but PDF extension
    string pdfPath = Path.ChangeExtension(rtfFile, ".pdf");
    pdf.SaveAs(pdfPath);
}
using IronPdf;
using System.IO;

// Create renderer once for efficiency
ChromePdfRenderer renderer = new ChromePdfRenderer();

// Get all RTF files in directory
string[] rtfFiles = Directory.GetFiles(@"C:\RTFDocuments", "*.rtf");

foreach (string rtfFile in rtfFiles)
{
    // Convert each RTF file to PDF
    PdfDocument pdf = renderer.RenderRtfFileAsPdf(rtfFile);

    // Save with same name but PDF extension
    string pdfPath = Path.ChangeExtension(rtfFile, ".pdf");
    pdf.SaveAs(pdfPath);
}
$vbLabelText   $csharpLabel

输出的 PDF 是什么样子?

转换 RTF 文件时有哪些常见问题?

将 RTF 文件转换为 PDF 时,您可能会遇到几个常见的难题:

1.字体兼容性:确保系统上已安装 RTF 文件中使用的字体。 对于网络服务器或云部署,请参阅管理字体网络字体指南。 2.大文件处理:对于大型 RTF 文档,请实施 async 转换,以防止阻塞应用程序的主线程。 3.内存使用:处理多个文件时,正确处理 PdfDocument 对象以防止内存泄漏。 了解PDF压缩以减小输出文件大小。 4.特殊字符:通过查看UTF-8支持指南,确保对国际字符进行正确编码。

如何为转换后的 PDF 添加安全性?

将 RTF 文件转换为 PDF 后,通过添加密码和权限来增强安全性:

using IronPdf;
using IronPdf.Security;

// Convert RTF to PDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderRtfFileAsPdf("confidential.rtf");

// Apply security settings
pdf.SecuritySettings.RemovePasswordsAndEncryption();
pdf.SecuritySettings.MakePdfDocumentReadOnly("owner_password");
pdf.SecuritySettings.SetUserPassword("user_password");
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.NoPrint;

// Save secured PDF
pdf.SaveAs("secured_document.pdf");
using IronPdf;
using IronPdf.Security;

// Convert RTF to PDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderRtfFileAsPdf("confidential.rtf");

// Apply security settings
pdf.SecuritySettings.RemovePasswordsAndEncryption();
pdf.SecuritySettings.MakePdfDocumentReadOnly("owner_password");
pdf.SecuritySettings.SetUserPassword("user_password");
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.NoPrint;

// Save secured PDF
pdf.SaveAs("secured_document.pdf");
$vbLabelText   $csharpLabel

如需了解更多高级安全选项,请浏览 PDF 权限和密码综合指南。

将 RTF 转换为 PDF 的高级技术

将多个 RTF 文件合并为一个 PDF 文件

在处理多个 RTF 文档时,请将它们合并为一个 PDF。 这对于创建综合报告或文档包尤其有用:

using IronPdf;
using System.Collections.Generic;

// Create renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();

// Convert multiple RTF files
List<PdfDocument> pdfs = new List<PdfDocument>();
pdfs.Add(renderer.RenderRtfFileAsPdf("chapter1.rtf"));
pdfs.Add(renderer.RenderRtfFileAsPdf("chapter2.rtf"));
pdfs.Add(renderer.RenderRtfFileAsPdf("chapter3.rtf"));

// Merge PDFs
PdfDocument mergedPdf = PdfDocument.Merge(pdfs);

// Add page numbers
for (int i = 0; i < mergedPdf.PageCount; i++)
{
    mergedPdf.AddTextFooter($"Page {i + 1} of {mergedPdf.PageCount}", 
        FontFamily.Arial, 12);
}

// Save combined document
mergedPdf.SaveAs("combined_document.pdf");

// Clean up individual PDFs
foreach (var pdf in pdfs)
{
    pdf.Dispose();
}
using IronPdf;
using System.Collections.Generic;

// Create renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();

// Convert multiple RTF files
List<PdfDocument> pdfs = new List<PdfDocument>();
pdfs.Add(renderer.RenderRtfFileAsPdf("chapter1.rtf"));
pdfs.Add(renderer.RenderRtfFileAsPdf("chapter2.rtf"));
pdfs.Add(renderer.RenderRtfFileAsPdf("chapter3.rtf"));

// Merge PDFs
PdfDocument mergedPdf = PdfDocument.Merge(pdfs);

// Add page numbers
for (int i = 0; i < mergedPdf.PageCount; i++)
{
    mergedPdf.AddTextFooter($"Page {i + 1} of {mergedPdf.PageCount}", 
        FontFamily.Arial, 12);
}

// Save combined document
mergedPdf.SaveAs("combined_document.pdf");

// Clean up individual PDFs
foreach (var pdf in pdfs)
{
    pdf.Dispose();
}
$vbLabelText   $csharpLabel

将 RTF 转换为 PDF 集成到 Web 应用程序中

对于 ASP.NET 应用程序,IronPDF 可与您的 Web Framework 无缝集成。 以下是创建 PDF 下载端点的示例:

[HttpGet]
public IActionResult ConvertRtfToPdf(string rtfContent)
{
    // Create renderer
    ChromePdfRenderer renderer = new ChromePdfRenderer();

    // Convert RTF string to PDF
    PdfDocument pdf = renderer.RenderRtfStringAsPdf(rtfContent);

    // Return as file download
    byte[] pdfBytes = pdf.BinaryData;
    return File(pdfBytes, "application/pdf", "converted_document.pdf");
}
[HttpGet]
public IActionResult ConvertRtfToPdf(string rtfContent)
{
    // Create renderer
    ChromePdfRenderer renderer = new ChromePdfRenderer();

    // Convert RTF string to PDF
    PdfDocument pdf = renderer.RenderRtfStringAsPdf(rtfContent);

    // Return as file download
    byte[] pdfBytes = pdf.BinaryData;
    return File(pdfBytes, "application/pdf", "converted_document.pdf");
}
$vbLabelText   $csharpLabel

有关网络集成的更多示例,请参阅 ASPX 至 PDF 导出 PDF 的教程。

准备好看看您还能做些什么吗? 点击此处查看教程页面:Convert PDFs

常见问题解答

如何在 C# 中将 RTF 文件转换为 PDF?

有了 IronPDF,只需两行代码,您就可以使用 RenderRtfFileAsPdf 方法将 RTF 文件转换为 PDF。只需创建一个ChromePdfRenderer实例并调用输入文件路径的RenderRtfFileAsPdf,然后使用SaveAs方法保存结果即可。

我可以将 RTF 字符串直接转换为 PDF 而无需先将其保存为文件吗?

是的,IronPDF 提供了 RenderRtfStringAsPdf 方法,允许您将 RTF 内容从字符串直接转换为 PDF 文档。这在处理动态生成的 RTF 内容或数据库数据时尤其有用。

RTF 转换为 PDF 是否保留格式和样式?

是的,IronPDF 在转换过程中会保留所有 RTF 格式,包括字体、样式、图像和布局。这种转换可确保您的文档在所有平台和设备上保持一致的外观。

将 RTF 转换为 PDF 有哪些好处?

使用 IronPDF 将 RTF 转换为 PDF 有几个好处:跨平台的易访问性、压缩功能、打印优化、无论查看设备如何都能保持一致的文档外观、增强的安全功能以及专业的文档分发准备。

我能否在转换后的 PDF 中添加页眉、页脚和页码?

是的,IronPDF 在将 RTF 转换为 PDF 时支持全部 RenderingOptions。您可以应用文本和 HTML 页眉和页脚,添加页码,实现文本和图像戳记,以及自定义页面大小和方向。

从 RTF 转换为 PDF 后,是否可以对 PDF 进行操作?

当然可以!使用 IronPDF 从 RTF 生成 PDF 后,您可以执行各种页面操作,包括合并和拆分 PDF、旋转页面、添加注释和实现书签。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。

准备开始了吗?
Nuget 下载 17,803,474 | 版本: 2026.3 刚刚发布
Still Scrolling Icon

还在滚动吗?

想快速获得证据? PM > Install-Package IronPdf
运行示例看着你的HTML代码变成PDF文件。