使用 C# 將 Rich Text Format 轉換為 PDF
IronPDF只需兩行程式碼即可在 C# 中將 RTF 文件無縫轉換為 PDF,支援 RTF 字串和文件,同時保留格式、字體和樣式,以實現一致的跨平台文件顯示。
RTF 代表 Rich Text Format(富文本格式),是微軟開發的一種文件文件格式。 它支援字體、樣式和圖像等文字格式,但功能不如 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 字串轉換為 Pdf 格式。
- 使用`RenderRtfFileAsPdf`方法從 RTF 檔案轉換
- 查看產生的 PDF 文檔
如何將RTF字串轉換為PDF?
使用 RenderRtfStringAsPdf 方法將 RTF 字串轉換為 PDF 文件。 渲染選項的全部範圍,例如套用文字和 HTML 頁首和頁尾、文字和圖像浮水印、頁碼、自訂頁面大小和方向,也適用於此渲染方法。 產生 PDF 文件後,您可以執行 PDF 頁面操作,例如合併、分割和旋轉頁面,以及套用註解和書籤。
為什麼使用RTF字串轉換而不是檔案轉換?
當處理動態產生的內容或從資料庫、API 或使用者輸入接收 RTF 資料時,RTF 字串轉換特別有用。 這種方法無需建立臨時文件,並能為 Web 應用程式提供更好的效能。 此外,基於字串的轉換允許在轉換之前更輕鬆地對 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 檔案中使用的字體已安裝在系統中。 對於 Web 伺服器或雲端部署,請參閱有關管理字體和Web 字體的指南。 2.大文件處理:對於大型 RTF 文檔,實現非同步轉換,以防止阻塞應用程式的主線程。 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
在 Web 應用程式中整合 RTF 到 PDF 的轉換
對於ASP.NET應用程序, IronPDF可以與您的 Web 框架無縫整合。 以下是一個建立 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
有關 Web 整合的更多範例,請參閱ASPX 轉 PDF和匯出 PDF 的教學課程。
準備好要看看你還能做什麼了嗎? 請點擊這裡查看教學頁面:轉換 PDF 文件
常見問題解答
如何在 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、旋轉頁面、添加註釋和實現書籤。

