如何使用 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 代表 Rich Text Format(富文本格式),是由 Microsoft 開發的文件檔案格式。 它支援字型、樣式和圖片等文字格式,但功能不如 DOCX 或 PDF 等其他文件格式豐富。 此格式於 1987 年問世,因其純文字特性及內嵌的格式化指令,已成為跨平台文件交換的標準。

IronPDF 可將來自字串和檔案的 RTF 格式轉換為 PDF。 將 RTF 轉換為 PDF 具備多項優勢,包括易於存取、壓縮功能以及列印最佳化。 這可確保文件在所有平台上保持一致的外觀、維持安全性,並具備直接列印的準備狀態。 與 RTF 檔案不同,PDF 檔案無論在何種檢視裝置或作業系統上,都能維持完全相同的版面配置,因此非常適合用於 Professional 文件的發行。

快速入門:使用 IronPDF 將 RTF 轉換為 PDF

立即開始使用 IronPDF 將 RTF 檔案轉換為高品質的 PDF 檔案。 只需兩行程式碼,即可將富文字格式 (RTF) 文件轉換為安全且符合無障礙標準的 PDF 檔案,隨時可供分發與列印。 IronPDF 提供簡便的 RTF 轉 PDF 轉換方法,確保能無縫整合至您的 .NET C# 專案中。

  1. using 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?

using RenderRtfStringAsPdf 方法將 RTF 字串轉換為 PDF 文件。 RenderingOptions 的完整功能,例如套用文字與 HTML 頁首及頁尾文字與圖片浮水印頁碼編排、自訂頁面尺寸與方向等,亦適用於此渲染方式。 生成 PDF 文件後,您可以執行 PDF 頁面操作,例如合併、分割,以及套用 AnnotationsBookmarks

為何使用 RTF 字串轉換而非檔案轉換?

RTF 字串轉換在處理動態生成的內容,或從資料庫、API 或使用者輸入接收 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")
$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");
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")
$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");
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")
$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);
}
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
$vbLabelText   $csharpLabel

生成的 PDF 檔案會是什麼樣子?

轉換 RTF 檔案時常見哪些問題?

在將 RTF 檔案轉換為 PDF 時,您可能會遇到以下幾項常見挑戰:

  1. 字型相容性:請確保 RTF 檔案中使用的字型已安裝於系統中。 關於網頁伺服器或雲端部署,請參閱有關管理字型網頁字型的指南。
  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")
$vbLabelText   $csharpLabel

如需更進階的安全設定選項,請參閱關於 PDF 權限與密碼的完整指南。

進階 RTF 轉 PDF 轉換技術

將多個 RTF 檔案合併為一個 PDF

處理多個 RTF 文件時,請將其合併為單一 PDF 檔案。 這對於製作全面的報告或文件套件特別有用:

using IronPdf;
using System.Co/llections.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.Co/llections.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
$vbLabelText   $csharpLabel

在網頁應用程式中整合 RTF 轉 PDF 功能

對於 ASP.NET 應用程式,IronPDF 可與您的網頁框架無縫整合。 以下是建立 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
$vbLabelText   $csharpLabel

如需更多網頁整合範例,請參閱"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 有什麼好處?

using IronPDF 將 RTF 轉換為 PDF 具備多項優勢:跨平台易於存取、具備壓縮功能、列印最佳化、無論使用何種檢視裝置皆能保持文件外觀一致、強化安全性,以及具備 Professional 級文件發佈的準備就緒性。

我可以在轉換後的 PDF/A 中加入頁首、頁尾和頁碼嗎?

是的,IronPDF 在將 RTF 轉換為 PDF 時,支援完整的 RenderingOptions 功能。您可以套用文字和 HTML 頁首及頁尾、添加頁碼、實施文字和圖片浮水印,以及自訂頁面大小和方向。

從 RTF 轉換後,是否可以對 PDF 進行編輯?

當然可以!使用 IronPDF 將 RTF 檔案轉為 PDF 後,您可以執行各種頁面操作,包括合併與分割 PDF、旋轉頁面、添加註解,以及建立書籤。

Curtis Chau
技術撰稿人

Curtis Chau 擁有卡爾頓大學(Carleton University)的電腦科學學士學位,專精於前端開發,並精通 Node.js、TypeScript、JavaScript 及 React。他熱衷於打造直觀且美觀的用戶介面,喜歡運用現代框架,並創建結構完善、視覺上吸引人的手冊。

除了開發工作之外,Curtis 對物聯網(IoT)抱有濃厚興趣,致力於探索整合硬體與軟體的創新方法。閒暇時,他喜歡玩遊戲和開發 Discord 機器人,將對科技的熱愛與創意相結合。

準備開始了嗎?
Nuget 下載 19,014,616 | 版本: 2026.5 just released
Still Scrolling Icon

還在往下捲動嗎?

想要快速確認成果嗎? PM > Install-Package IronPdf
執行範例 觀看您的 HTML 轉為 PDF。