如何在IronPDF C#中将RTF转换为PDF
IronPDF使用PdfDocument。
RTF(富文本格式)是微软在1987年引入的一种文档格式。它将文本与格式化命令(如字体、样式、颜色和项目符号列表)一起存储为纯文本,这就是为什么它能在编辑器之间良好传递。 将RTF转换为PDF让您获得一种在任何设备上看起来都一样的固定布局文件,可以加密并准备好打印或存档。
快速入门:使用IronPDF将 RTF 转换为 PDF
通过一次调用将富文本格式文件渲染为PDF。 将RenderRtfFileAsPdf指向RTF路径,然后保存返回的文档。
最小工作流程(5 个步骤)
- 下载将 RTF 转换为 PDF 的 C# 库。
- 准备您要转换的 RTF 文件或字符串
- 使用
RenderRtfStringAsPdf方法转换 RTF 字符串 - 使用
RenderRtfFileAsPdf方法转换 RTF 文件 - 查看生成的 PDF 文档
如何将RTF字符串转换为PDF?
使用RenderRtfStringAsPdf方法将RTF字符串转为PDF文档。 字符串输入适用于您在运行时生成的内容:从数据库列中拉取的RTF、API返回的RTF,或在代码中组装的RTF,无需编写或清理临时文件。该方法返回一个PdfDocument,因此您可以继续处理结果,应用页眉和页脚、合并页面或添加注释和书签。
: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")
输出
如何应用其他格式化选项?
您用于HTML渲染的相同RenderingOptions也适用于此。 在调用RenderRtfStringAsPdf之前设置渲染器上的纸张方向、边距和页面大小:
:path=/static-assets/pdf/content-code-examples/how-to/rtf-to-pdf-3.cs
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;}}" & _
"{\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
Dim pdf As PdfDocument = renderer.RenderRtfStringAsPdf(rtf)
pdf.SaveAs("formattedRtfToPdf.pdf")
输出
如何将RTF文件转换为PDF?
将您的文档路径传递给RenderRtfFileAsPdf。 该方法接受绝对路径和相对路径。 下载一个示例RTF文件以随行操作:sample.rtf。 下面的示例将该文件渲染为PDF。
输入
转换 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")
要转换一个文件夹的文档,重复使用一个渲染器并遍历文件:
:path=/static-assets/pdf/content-code-examples/how-to/rtf-to-pdf-5.cs
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
输出
转换 RTF 文件时有哪些常见问题?
渲染RTF文件时需要注意一些情况:
如何为转换后的 PDF 添加安全性?
渲染后,通过SecuritySettings锁定文档,设置拥有者密码、用户密码以及复制和打印权限:
:path=/static-assets/pdf/content-code-examples/how-to/rtf-to-pdf-6.cs
using IronPdf;
using IronPdf.Security;
// Convert RTF to PDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderRtfFileAsPdf("confidential.rtf");
// Apply security settings
pdf.SecuritySettings.MakePdfDocumentReadOnly("owner_password");
pdf.SecuritySettings.UserPassword = "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.MakePdfDocumentReadOnly("owner_password")
pdf.SecuritySettings.UserPassword = "user_password"
pdf.SecuritySettings.AllowUserCopyPasteContent = False
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.NoPrint
' Save secured PDF
pdf.SaveAs("secured_document.pdf")
PDF权限和密码指南涵盖了所有限制选项。
如何将多个RTF文件合并成一个PDF?
将每个RTF文件渲染为其自己的PdfDocument.Merge将它们合并。 这从多个源文档中构建一个单一的交付物,例如报告的章节:
:path=/static-assets/pdf/content-code-examples/how-to/rtf-to-pdf-7.cs
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 across the merged document
mergedPdf.AddTextFooters(new TextHeaderFooter
{
CenterText = "Page {page} of {total-pages}",
FontSize = 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 across the merged document
mergedPdf.AddTextFooters(New TextHeaderFooter With {
.CenterText = "Page {page} of {total-pages}",
.FontSize = 12
})
' Save combined document
mergedPdf.SaveAs("combined_document.pdf")
' Clean up individual PDFs
For Each pdf In pdfs
pdf.Dispose()
Next pdf
页脚占位符{total-pages}给合并结果中的页面编号。
如何从Web端点返回转换后的PDF?
在ASP.NET中,在操作中渲染RTF并将文档的字节作为文件结果返回。 读取File:
[HttpGet]
public IActionResult ConvertRtfToPdf(string rtfContent)
{
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderRtfStringAsPdf(rtfContent);
return File(pdf.BinaryData, "application/pdf", "converted_document.pdf");
}
[HttpGet]
public IActionResult ConvertRtfToPdf(string rtfContent)
{
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderRtfStringAsPdf(rtfContent);
return File(pdf.BinaryData, "application/pdf", "converted_document.pdf");
}
<HttpGet>
Public Function ConvertRtfToPdf(rtfContent As String) As IActionResult
Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderRtfStringAsPdf(rtfContent)
Return File(pdf.BinaryData, "application/pdf", "converted_document.pdf")
End Function
结论
IronPDF通过PdfDocument可插入库的其他功能中进行布局、安全和合并。 从这里,将RTF转换与上面显示的自定义边距和页眉和页脚配对,或继续PDF转换的完整列表。
常见问题解答
如何在 C# 中将 RTF 文件转换为 PDF?
有了 IronPDF,只需两行代码,您就可以使用 RenderRtfFileAsPdf 方法将 RTF 文件转换为 PDF。只需创建一个ChromePdfRenderer实例并调用输入文件路径的RenderRtfFileAsPdf,然后使用SaveAs方法保存结果即可。
我可以将 RTF 字符串直接转换为 PDF 而无需先将其保存为文件吗?
是的,IronPDF 提供了 RenderRtfStringAsPdf 方法,允许您将 RTF 内容从字符串直接转换为 PDF 文档。这在处理动态生成的 RTF 内容或数据库数据时尤其有用。
RTF 转换为 PDF 是否保留格式和样式?
IronPDF通过其文档转换路径渲染RTF,因此字体、样式、颜色、加粗、斜体和简单项目符号列表等标准格式可以可靠转换。较不常见的控制词、嵌套表格和嵌入的OLE对象可能无法精确回溯,因此如果文档使用了高级功能,请检查输出。
将 RTF 转换为 PDF 有哪些好处?
using IronPDF 将 RTF 转换为 PDF 有几个好处:跨平台的易访问性、压缩功能、打印优化、无论查看设备如何都能保持一致的文档外观、增强的安全功能以及专业的文档分发准备。
我能否在转换后的 PDF 中添加页眉、页脚和页码?
是的,IronPDF 在将 RTF 转换为 PDF 时支持全部 RenderingOptions。您可以应用文本和 HTML 页眉和页脚,添加页码,实现文本和图像戳记,以及自定义页面大小和方向。
从 RTF 转换为 PDF 后,是否可以对 PDF 进行操作?
当然可以!使用 IronPDF 从 RTF 生成 PDF 后,您可以执行各种页面操作,包括合并和拆分 PDF、旋转页面、添加注释和实现书签。

