如何使用C#將RTF轉換為PDF

如何將RTF轉換成PDF在IronPDF C

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

IronPDF使用PdfDocument您可以儲存、加密或合併。

RTF(豐富文字格式)是Microsoft於1987年引入的一種文件格式。它將文字和格式命令(如字體、樣式、顏色和符號列表)儲存為純文字,這使其能夠在不同編輯器之間正常傳輸。 將RTF轉換為PDF可以讓您獲得一個固定布局的文件,該文件在任何裝置上看起來都一樣,可以設置密碼保護,並且準備列印或存檔。

請注意IronPDF通過其文件轉換路徑渲染RTF,該路徑直接解釋RTF標記,而不是通過用於HTML轉PDF的Chrome HTML引擎。 標準格式(如粗體、斜體、下劃線、顏色、字體和簡單的符號列表)可靠地轉換。 不常見的RTF控制字、巢狀表格和嵌入的OLE物件可能無法精確地往返,因此當文件使用高級功能時,請檢查輸出。}

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

在一次調用中將豐富文字格式文件渲染為PDF。 將RenderRtfFileAsPdf指向RTF路徑,然後儲存返回的文件。

  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文件。 字串輸入適合在運行時構建的內容:從資料庫列提取的RTF,由API返回或在程式碼中組合的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")
$vbLabelText   $csharpLabel

輸出

我如何應用其他格式選項?

您用於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")
$vbLabelText   $csharpLabel

欲了解更多頁面幾何的更精細控制,請參閱自定義邊距自定義紙張尺寸指南。

輸出

我如何將RTF文件轉換為PDF?

將您的文件路徑傳遞給RenderRtfFileAsPdf。 該方法接受絕對路徑和相對路徑。 下載一個範例RTF文件隨著進行:sample.rtf。 下面的例子將該文件渲染為PDF。

輸入

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

要轉換一個文件夾的文件,重用一個渲染器並迴圈遍歷這些文件:

: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
$vbLabelText   $csharpLabel

輸出

轉換RTF文件時有哪些常見問題?

渲染RTF文件時有幾種情況需要注意:

  1. 字體:RTF中命名的字體必須安裝在進行轉換的機器上,這在無頭伺服器和容器上最為重要。 字體管理指南介紹了在運行時註冊字體。
  2. 大型文件:將長文件用非同步API從請求執行緒中渲染,使應用程式保持響應。
  3. 國際字元:包含非拉丁文腳本的文件依賴於源RTF中的正確編碼和覆蓋這些字形的已安裝字體。
  4. 高級標記:巢狀表格和嵌入物件可能無法精確再現。 比較當文件依賴於它們時,輸出與源文件。

我如何向轉換的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")
$vbLabelText   $csharpLabel

PDF權限和密碼指南涵蓋了完整的一組限制選項。

Icon Quote related to 我如何向轉換的PDF新增安全性?

我最喜歡的程式庫是IronPDF。它允許快速高效地操作PDF文件。它還有許多有價值的功能,例如導出到PDF/A格式和數位簽署PDF文件。

Milan Jovanovic related to 我如何向轉換的PDF新增安全性?

Milan Jovanovic

Microsoft MVP

查看案例研究
Icon Quote related to 我如何向轉換的PDF新增安全性?

IronOCR意味著我們每年可以從手動處理中節省$40,000,同時提高生產力,釋放資源以進行高影響的任務。我會強烈推薦它。

Brent Matzelle related to 我如何向轉換的PDF新增安全性?

Brent Matzelle

首席技術官,OPYN

查看案例研究
Icon Quote related to 我如何向轉換的PDF新增安全性?

IronSuite在我們的運營中扮演著至關重要的角色。這些工具增加了包括建立平面圖和改善庫存管理在內的業務效率。

David Jones related to 我如何向轉換的PDF新增安全性?

David Jones

首席軟體工程師,Agorus Build

查看案例研究

我如何將多個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
$vbLabelText   $csharpLabel

腳註佔位符{total-pages}將頁面編號於合併結果。

我如何從網路端點返回轉換的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
$vbLabelText   $csharpLabel

總結

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的好處是什麼?

使用IronPDF將RTF轉換為PDF具有以下幾個好處:跨平台的易於存取性、壓縮能力、列印優化、無論檢視裝置如何都能保持一致的文件外觀、增強的安全功能以及專業的文件分發準備。

我可以在轉換後的PDF中新增頁眉、頁腳和頁碼嗎?

可以,IronPDF在將RTF轉換為PDF時支持完整的RenderingOptions。您可以套用文字和HTML頁眉及頁腳、新增頁碼、實現文字和圖片水印,並自訂頁面尺寸和方向。

轉換自RTF的PDF可以進行操作嗎?

當然可以!使用IronPDF將RTF轉換為PDF後,您可以執行各種頁面操作,包括合併和拆分PDF、旋轉頁面、新增註釋以及實現書籤。

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

準備開始了嗎?
Nuget 下載 20,296,129 | 版本: 2026.7 剛剛發布
Still Scrolling Icon

還在捲動嗎?

想快速獲得證明嗎? PM > Install-Package IronPdf
執行範例 看您的HTML變成PDF。