使用 C# 将富文本格式(RTF)转换为 PDF
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# 项目中。
最小工作流程(5 个步骤)
- 下载将 RTF 转换为 PDF 的 C# 库。
- 准备您要转换的 RTF 文件或字符串
- 使用 `RenderRtfStringAsPdf` 方法转换 RTF 字符串
- 使用 `RenderRtfFileAsPdf` 方法转换 RTF 文件
- 查看生成的 PDF 文档
如何将 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");
Imports IronPdf
' Instantiate Renderer
Private renderer As New ChromePdfRenderer()
' RTF string
Private rtf As String = "{\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
Private pdf As PdfDocument = renderer.RenderRtfStringAsPdf(rtf)
' Save the PDF
pdf.SaveAs("pdfFromRtfString.pdf")
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");
Imports IronPdf
Imports IronPdf.Rendering
' Create renderer with custom options
Dim renderer As 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
Dim rtf As String = "{\rtf1\ansi\deff0{\fonttbl{\f0 Times New Roman;}{\f1 Arial;}}" & vbCrLf &
"{\colortbl;\red255\green0\blue0;\red0\green0\blue255;}" & vbCrLf &
"\f0\fs24 This is a heading\line" & vbCrLf &
"\f1\fs20\cf1 This text is red\line" & vbCrLf &
"\cf2 This text is blue\line" & vbCrLf &
"\b Bold text\b0 and \i italic text\i0}"
' Convert with custom options
Dim pdf As PdfDocument = renderer.RenderRtfStringAsPdf(rtf)
pdf.SaveAs("formattedRtfToPdf.pdf")
如何将 RTF 文件转换为 PDF?
要将 RTF 文件转换为 PDF,请使用 RenderRtfFileAsPdf 方法。 从提供的链接下载示例 RTF 文件。 本示例演示了如何将该示例文件转换为 PDF 文档。 该方法既可接受绝对文件路径,也可接受相对文件路径,因此可灵活适用于各种应用程序架构。
转换前的 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");
Imports IronPdf
' Instantiate Renderer
Private renderer As New ChromePdfRenderer()
' Render from RTF file
Private pdf As PdfDocument = renderer.RenderRtfFileAsPdf("sample.rtf")
' Save the PDF
pdf.SaveAs("pdfFromRtfFile.pdf")
要批量处理多个 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);
}
Imports IronPdf
Imports System.IO
' Create renderer once for efficiency
Dim renderer As New ChromePdfRenderer()
' Get all RTF files in directory
Dim rtfFiles As String() = Directory.GetFiles("C:\RTFDocuments", "*.rtf")
For Each rtfFile As String In rtfFiles
' Convert each RTF file to PDF
Dim pdf As PdfDocument = renderer.RenderRtfFileAsPdf(rtfFile)
' Save with same name but PDF extension
Dim pdfPath As String = Path.ChangeExtension(rtfFile, ".pdf")
pdf.SaveAs(pdfPath)
Next rtfFile
输出的 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");
Imports IronPdf
Imports IronPdf.Security
' Convert RTF to PDF
Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = 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")
如需了解更多高级安全选项,请浏览 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();
}
Imports IronPdf
Imports System.Collections.Generic
' Create renderer
Dim renderer As New ChromePdfRenderer()
' Convert multiple RTF files
Dim pdfs As New List(Of PdfDocument)()
pdfs.Add(renderer.RenderRtfFileAsPdf("chapter1.rtf"))
pdfs.Add(renderer.RenderRtfFileAsPdf("chapter2.rtf"))
pdfs.Add(renderer.RenderRtfFileAsPdf("chapter3.rtf"))
' Merge PDFs
Dim mergedPdf As PdfDocument = PdfDocument.Merge(pdfs)
' Add page numbers
For i As Integer = 0 To mergedPdf.PageCount - 1
mergedPdf.AddTextFooter($"Page {i + 1} of {mergedPdf.PageCount}", FontFamily.Arial, 12)
Next
' Save combined document
mergedPdf.SaveAs("combined_document.pdf")
' Clean up individual PDFs
For Each pdf In pdfs
pdf.Dispose()
Next
将 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");
}
<AttributeUsage(AttributeTargets.Method)>
Public Class HttpGetAttribute
Inherits Attribute
End Class
<HttpGet>
Public Function ConvertRtfToPdf(rtfContent As String) As IActionResult
' Create renderer
Dim renderer As New ChromePdfRenderer()
' Convert RTF string to PDF
Dim pdf As PdfDocument = renderer.RenderRtfStringAsPdf(rtfContent)
' Return as file download
Dim pdfBytes As Byte() = pdf.BinaryData
Return File(pdfBytes, "application/pdf", "converted_document.pdf")
End Function
有关网络集成的更多示例,请参阅 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、旋转页面、添加注释和实现书签。

