跳過到頁腳內容
使用IRONPDF
如何在 C# 中創建 PDF

在C#中生成PDF文件(2026指南)

對於 2026 年的 .NET 開發人員來說,從 HTML 和 URL 產生 PDF 是一項至關重要的能力,無論您是將網頁轉換為文件、存檔線上內容,還是將 HTML 報告轉換為可移植格式。 借助合適的 .NET PDF 庫,只需幾行程式碼即可將網頁和 HTML 內容捕獲為專業的 PDF 文檔並保留原始原始檔案的確切外觀和結構

IronPDF是最簡單、最全面的 .NET PDF 產生器,用於將 HTML 轉換為 PDF,其學習曲線非常平緩,只需幾分鐘(而不是幾個小時)即可從 Web 內容產生 PDF。 本綜合指南將向您展示如何使用 IronPDF(一款功能強大的生成器,可產生像素級完美的結果,並支援所有現代 .NET 平台,包括.NET 10 和 C# 14 (均於 2025 年 11 月發布))C# 中從 HTML 和 URL 生成 PDF 文件。 雖然本教學涵蓋了從簡單的 URL 轉換到複雜的多頁 HTML 報告的所有內容,但不要被嚇倒——從頭開始,逐步學習。 您將學習多種 PDF 生成方法,從捕獲單個網頁批量轉換 HTML 文件,以及如何解決常見問題並針對各種 HTML 轉 PDF 場景優化效能。

什麼是 IronPDF?

IronPDF是一個領先的.NET PDF 庫,因其 HTML 到 PDF 的轉換和全面的 PDF 操作功能而受到全球開發人員的認可。 IronPDF 專為 C# 開發人員打造,消除了傳統 PDF 生成過程中存在的複雜性。

IronPDF 使用.NET Chromium 引擎將 HTML 頁面轉換為 PDF 文件。 使用 HTML 轉 PDF,無需使用複雜的 API 來定位或設計 PDF。 IronPDF 支援標準 Web 文件:HTML、ASPX、JS、CSS 和影像。

它使您能夠使用 HTML5、CSS3、JavaScript 和圖像建立 PDF 文件。 您可以輕鬆編輯 PDF 文件,新增圖章、頁首和頁尾。 此外, IronPDF 還可以輕鬆且有效率地讀取 PDF 內容並擷取影像。

IronPDF 為所有與 PDF 相關的問題提供了全面的解決方案。 使用 IronPDF,您可以在一個庫中獲得所有轉換功能以及 PDF 操作任務,無需任何外部相依性。 IronPDF 是一個功能齊全的軟體包,對於開發人員和 C# 程式設計師來說是一個很棒的工具。

IronPDF 可以幫助我們從以下來源產生 PDF 檔案:

  • HTML 字串和模板
  • ASPX WebForms
  • MVC視圖
  • HTML 文件 *任何網址

IronPDF 功能

IronPDF 可協助您使用 HTML 4 和 5、CSS 和 JavaScript 建立 PDF 文檔,並可從 URL 產生 PDF。 它還可以載入帶有自訂網頁登入憑證、使用者代理程式、代理程式、Cookie、HTTP 標頭和表單變數的 URL,從而允許在 HTML 登入表單後面登入。 您可以輕鬆地從 PDF 中提取圖像和文本,將新的 HTML 內容新增至現有的 PDF 頁面,並新增邏輯或 HTML 頁首和頁尾。 它可以載入和提取現有的PDF文件,合併和分割PDF文檔中的內容。 它具有自訂的"基本 URL",允許透過網路存取資源文件,並接受以任何主要文件編碼(預設為 UTF-8)編碼的 HTML。 您可以從文件、二進位資料或 MemoryStreams 儲存和加載,將 PDF 文件轉換為 PrintDocument 物件以便無需 Adobe 即可列印(只需編寫最少的程式碼),並匯出有關 API 成功和偵錯錯誤的詳細日誌文件。

相容性

IronPDF 支援 .NET 語言,如C#、VB.NET 和 F# 。 它與.NET 10、.NET 9、.NET 8、.NET 6、.NET 5 、.NET Core 2x 和 3x、.NET Standard 2 以及 .NET Framework 4x 相容。 它適用於控制台、Web 和桌面應用程序,並受 Microsoft Windows、Linux、macOS、Docker 和 Azure 支援。 IronPDF 可與 Microsoft Visual Studio 2022/2026、JetBrains ReSharper 和 Rider 搭配使用。 該庫與 C# 14(2025 年 11 月發布)完全相容

產生PDF文件的步驟

首先,建立一個新的 Visual Studio 專案。 本教學使用控制台應用程式模板,但您可以根據需要使用任何模板。

您也可以使用現有的項目,並在其中新增 PDF 生成功能。

建立一個 Visual Studio 項目

開啟 Microsoft Visual Studio(建議使用 2022 或 2026 版本)。 點擊"建立新項目"。 選擇 C# 控制台應用程式範本。 點選"下一步"。

為你的項目命名。 本教學使用"CSharpGeneratePDF",但您可以選擇任何名稱。 按一下"下一步",然後設定目標 .NET Framework。 我們推薦使用.NET 10 (最新 LTS 版本)或.NET 9 。 點擊"建立",即可建立新專案。

在 Visual Studio 中安裝 NuGet 套件

在開始之前,請使用以下方法之一安裝 IronPDF 庫:

軟體包管理器控制台

在軟體包管理器控制台中輸入以下命令以下載並安裝軟體包:

Install-Package IronPdf

圖片 1

軟體包管理器控制台顯示 IronPDF 安裝指令

NuGet 套件管理器解決方案

您也可以依照以下步驟使用 NuGet 套件管理器安裝 IronPDF:

點選"工具">"NuGet 套件管理員">"管理解決方案的 NuGet 套件"。

圖片 2

從 Visual Studio 選單存取 NuGet 套件管理器

這將開啟 NuGet 套件管理器。 點擊"瀏覽"並搜尋 IronPDF,如下所示。

圖片 3

在 NuGet 套件管理器中搜尋 IronPDF

點選 IronPDF,然後點選"安裝"。 這將把 IronPDF 安裝到您的專案中。 現在您可以開始使用它的各項功能了。

直接下載 IronPDF ZIP 文件

或者,您可以下載 IronPDF ZIP 套件進行整合

請記住,使用 IronPDF 時,請務必將以下語句新增至任何 .cs 類別檔案的頂部:

using IronPdf;
using IronPdf;
Imports IronPdf
$vbLabelText   $csharpLabel

請訪問NuGet 查看 IronPDF 的安裝和更新信息,以了解更多關於版本更新和安裝的資訊。

IronPDF 也提供了其他適用於 Linux、Mac、Azure 和 AWS 目標的特定部署的 NuGet 套件,這些套件在IronPDF 進階 NuGet 安裝指南中有詳細說明。

IronPDF 庫已經安裝完畢,接下來我們進行下一步。

從 HTML 字串產生 PDF 文件

IronPDF 可以輕鬆地從 HTML 文字產生 PDF 檔案。 以下範例說明了此功能。 當您需要將 HTML 標記轉換為 PDF 時,請使用此選項。

新增以下命名空間:

using IronPdf;
using IronPdf;
Imports IronPdf
$vbLabelText   $csharpLabel

以下程式碼範例可供參考:

// Instantiate the PDF renderer
var Renderer = new ChromePdfRenderer();

// Render HTML as PDF and save the result
Renderer.RenderHtmlAsPdf("<h1>This is the Tutorial for C# Generate PDF</h1>")
        .SaveAs("GeneratePDF.pdf");
// Instantiate the PDF renderer
var Renderer = new ChromePdfRenderer();

// Render HTML as PDF and save the result
Renderer.RenderHtmlAsPdf("<h1>This is the Tutorial for C# Generate PDF</h1>")
        .SaveAs("GeneratePDF.pdf");
' Instantiate the PDF renderer
Dim Renderer As New ChromePdfRenderer()

' Render HTML as PDF and save the result
Renderer.RenderHtmlAsPdf("<h1>This is the Tutorial for C# Generate PDF</h1>") _
        .SaveAs("GeneratePDF.pdf")
$vbLabelText   $csharpLabel

在上面的程式碼中,建立一個新的 ChromePdfRenderer,然後呼叫 RenderHtmlAsPdfSaveAs 取得結果。

輸出

運行程式。 它將在專案的 bin 資料夾中產生一個 PDF 文件(如果沒有指定路徑)。

圖片 4

根據 HTML 字串產生的 PDF 文件,顯示格式化標題

產生您的第一個 PDF 文件

安裝 IronPDF 後,您只需幾行程式碼即可輕鬆建立 PDF 檔案。 複製以下程式碼,將其貼上到 Visual Studio 中,然後執行程式。

// Create a new PDF renderer
var pdf = new ChromePdfRenderer();

// Render HTML to PDF
PdfDocument doc = pdf.RenderHtmlAsPdf("<h1>This is a heading</h1>");

// Save the document
doc.SaveAs("FirstPDFDocument.pdf");
// Create a new PDF renderer
var pdf = new ChromePdfRenderer();

// Render HTML to PDF
PdfDocument doc = pdf.RenderHtmlAsPdf("<h1>This is a heading</h1>");

// Save the document
doc.SaveAs("FirstPDFDocument.pdf");
' Create a new PDF renderer
Dim pdf As New ChromePdfRenderer()

' Render HTML to PDF
Dim doc As PdfDocument = pdf.RenderHtmlAsPdf("<h1>This is a heading</h1>")

' Save the document
doc.SaveAs("FirstPDFDocument.pdf")
$vbLabelText   $csharpLabel

執行後,專案 bin 資料夾中將出現一個名為"FirstPDFDocument.pdf"的檔案。 雙擊檔案即可在瀏覽器中開啟。

圖片 9

第一個顯示渲染標題的 PDF 文檔

使用 IronPDF,只需幾行程式碼即可在 C# 中建立 PDF 檔案或將 HTML 轉換為 PDF。

從 URL 產生 PDF 文檔

使用 URL 在 C# 中建立 PDF 檔案與前面的範例一樣簡單,只需三行程式碼即可。 以下程式碼示範如何使用IronPDF 從 URL 建立 PDF

using IronPdf;

// Instantiate renderer
var Renderer = new ChromePdfRenderer();

// Render URL as PDF
var PDF = Renderer.RenderUrlAsPdf("https://www.wikipedia.org");

// Save to file
PDF.SaveAs("wikipedia.pdf");
using IronPdf;

// Instantiate renderer
var Renderer = new ChromePdfRenderer();

// Render URL as PDF
var PDF = Renderer.RenderUrlAsPdf("https://www.wikipedia.org");

// Save to file
PDF.SaveAs("wikipedia.pdf");
Imports IronPdf

' Instantiate renderer
Dim Renderer As New ChromePdfRenderer()

' Render URL as PDF
Dim PDF = Renderer.RenderUrlAsPdf("https://www.wikipedia.org")

' Save to file
PDF.SaveAs("wikipedia.pdf")
$vbLabelText   $csharpLabel

輸出

圖片 5

維基百科首頁截圖,儲存為PDF文檔,並保留了所有樣式

從 HTML 檔案產生 PDF

IronPDF 也可以從磁碟上現有的 HTML 檔案產生 PDF 檔案。 當您有預先設計好的 HTML 範本或需要轉換的靜態檔案時,這非常有用。

using IronPdf;

// Instantiate renderer
var Renderer = new ChromePdfRenderer();

// Load and render HTML file
var PDF = Renderer.RenderHtmlFileAsPdf("HtmlPage.html");

// Save the PDF
PDF.SaveAs("FromHtmlFile.pdf");
using IronPdf;

// Instantiate renderer
var Renderer = new ChromePdfRenderer();

// Load and render HTML file
var PDF = Renderer.RenderHtmlFileAsPdf("HtmlPage.html");

// Save the PDF
PDF.SaveAs("FromHtmlFile.pdf");
Imports IronPdf

' Instantiate renderer
Dim Renderer As New ChromePdfRenderer()

' Load and render HTML file
Dim PDF = Renderer.RenderHtmlFileAsPdf("HtmlPage.html")

' Save the PDF
PDF.SaveAs("FromHtmlFile.pdf")
$vbLabelText   $csharpLabel

輸出

圖片 6

HTML檔案轉換為PDF格式,所有樣式和佈局均得以保留。

從 ASP.NET Web Forms 產生 PDF 文檔

IronPDF 可與 ASP.NET Web Forms 無縫集成,讓您可以將動態網頁渲染為 PDF 文件。

using IronPdf.AspNetCore;

// Render current page as PDF
var currentPagePdf = AspNetCore.RenderThisPageAsPdf();

// Render specific page as PDF
var specificPagePdf = AspNetCore.RenderPageAsPdf("/Page.aspx");

// Render page with parameters
var pageWithParamsPdf = AspNetCore.RenderPageAsPdf("/Page.aspx?id=100");

// Save the result
currentPagePdf.SaveAs("MyASPXPage.pdf");
using IronPdf.AspNetCore;

// Render current page as PDF
var currentPagePdf = AspNetCore.RenderThisPageAsPdf();

// Render specific page as PDF
var specificPagePdf = AspNetCore.RenderPageAsPdf("/Page.aspx");

// Render page with parameters
var pageWithParamsPdf = AspNetCore.RenderPageAsPdf("/Page.aspx?id=100");

// Save the result
currentPagePdf.SaveAs("MyASPXPage.pdf");
Imports IronPdf.AspNetCore

' Render current page as PDF
Dim currentPagePdf = AspNetCore.RenderThisPageAsPdf()

' Render specific page as PDF
Dim specificPagePdf = AspNetCore.RenderPageAsPdf("/Page.aspx")

' Render page with parameters
Dim pageWithParamsPdf = AspNetCore.RenderPageAsPdf("/Page.aspx?id=100")

' Save the result
currentPagePdf.SaveAs("MyASPXPage.pdf")
$vbLabelText   $csharpLabel

輸出

圖片 7

ASP.NET WebForm 以 PDF 格式呈現,並包含動態內容

從 ASP.NET MVC 視圖產生 PDF

IronPDF 與 ASP.NET MVC 應用程式完美集成,讓您可以將 MVC 視圖直接渲染為 PDF 文件。

using IronPdf.AspNetCore;

// Render MVC View as PDF
var viewPdf = AspNetCore.RenderViewAsPdf("/Home/Index");

// Render with model data
var modelData = new YourModelClass { Name = "John Doe", OrderId = 12345 };
var viewWithModelPdf = AspNetCore.RenderViewAsPdf("/Views/Invoice/Index", modelData);

// Save the PDF
viewPdf.SaveAs("MyMVCView.pdf");
using IronPdf.AspNetCore;

// Render MVC View as PDF
var viewPdf = AspNetCore.RenderViewAsPdf("/Home/Index");

// Render with model data
var modelData = new YourModelClass { Name = "John Doe", OrderId = 12345 };
var viewWithModelPdf = AspNetCore.RenderViewAsPdf("/Views/Invoice/Index", modelData);

// Save the PDF
viewPdf.SaveAs("MyMVCView.pdf");
Imports IronPdf.AspNetCore

' Render MVC View as PDF
Dim viewPdf = AspNetCore.RenderViewAsPdf("/Home/Index")

' Render with model data
Dim modelData = New YourModelClass With {.Name = "John Doe", .OrderId = 12345}
Dim viewWithModelPdf = AspNetCore.RenderViewAsPdf("/Views/Invoice/Index", modelData)

' Save the PDF
viewPdf.SaveAs("MyMVCView.pdf")
$vbLabelText   $csharpLabel

輸出

圖片 8

MVC視圖以PDF格式渲染,包含模型資料和樣式

為PDF文件新增頁首和頁尾

專業的 PDF 文件通常需要頁首和頁腳,用於品牌標識、頁碼、日期和元資料。 IronPDF 提供兩種方法:文字為主的頁首和頁尾以及基於 HTML 的頁首和頁尾。

新增簡單的文字頁首和頁尾

var ChromePdfRenderer = new ChromePdfRenderer();

// Configure page numbering
ChromePdfRenderer.RenderingOptions.FirstPageNumber = 1;

// Header options
ChromePdfRenderer.RenderingOptions.TextHeader.DrawDividerLine = true;
ChromePdfRenderer.RenderingOptions.TextHeader.CenterText = "This is Header {date} {time}";
ChromePdfRenderer.RenderingOptions.TextHeader.FontFamily = "Helvetica,Arial";
ChromePdfRenderer.RenderingOptions.TextHeader.FontSize = 12;

// Footer options
ChromePdfRenderer.RenderingOptions.TextFooter.DrawDividerLine = true;
ChromePdfRenderer.RenderingOptions.TextFooter.FontFamily = "Arial";
ChromePdfRenderer.RenderingOptions.TextFooter.FontSize = 10;
ChromePdfRenderer.RenderingOptions.TextFooter.LeftText = "{date} {time}";
ChromePdfRenderer.RenderingOptions.TextFooter.RightText = "{page} of {total-pages}";

// Generate PDF with headers and footers
ChromePdfRenderer.RenderHtmlAsPdf("<h1>This is my Sample Page for Generate PDF Tutorial</h1>")
                 .SaveAs("GeneratePDF.pdf");
var ChromePdfRenderer = new ChromePdfRenderer();

// Configure page numbering
ChromePdfRenderer.RenderingOptions.FirstPageNumber = 1;

// Header options
ChromePdfRenderer.RenderingOptions.TextHeader.DrawDividerLine = true;
ChromePdfRenderer.RenderingOptions.TextHeader.CenterText = "This is Header {date} {time}";
ChromePdfRenderer.RenderingOptions.TextHeader.FontFamily = "Helvetica,Arial";
ChromePdfRenderer.RenderingOptions.TextHeader.FontSize = 12;

// Footer options
ChromePdfRenderer.RenderingOptions.TextFooter.DrawDividerLine = true;
ChromePdfRenderer.RenderingOptions.TextFooter.FontFamily = "Arial";
ChromePdfRenderer.RenderingOptions.TextFooter.FontSize = 10;
ChromePdfRenderer.RenderingOptions.TextFooter.LeftText = "{date} {time}";
ChromePdfRenderer.RenderingOptions.TextFooter.RightText = "{page} of {total-pages}";

// Generate PDF with headers and footers
ChromePdfRenderer.RenderHtmlAsPdf("<h1>This is my Sample Page for Generate PDF Tutorial</h1>")
                 .SaveAs("GeneratePDF.pdf");
Dim ChromePdfRenderer = New ChromePdfRenderer()

' Configure page numbering
ChromePdfRenderer.RenderingOptions.FirstPageNumber = 1

' Header options
ChromePdfRenderer.RenderingOptions.TextHeader.DrawDividerLine = True
ChromePdfRenderer.RenderingOptions.TextHeader.CenterText = "This is Header {date} {time}"
ChromePdfRenderer.RenderingOptions.TextHeader.FontFamily = "Helvetica,Arial"
ChromePdfRenderer.RenderingOptions.TextHeader.FontSize = 12

' Footer options
ChromePdfRenderer.RenderingOptions.TextFooter.DrawDividerLine = True
ChromePdfRenderer.RenderingOptions.TextFooter.FontFamily = "Arial"
ChromePdfRenderer.RenderingOptions.TextFooter.FontSize = 10
ChromePdfRenderer.RenderingOptions.TextFooter.LeftText = "{date} {time}"
ChromePdfRenderer.RenderingOptions.TextFooter.RightText = "{page} of {total-pages}"

' Generate PDF with headers and footers
ChromePdfRenderer.RenderHtmlAsPdf("<h1>This is my Sample Page for Generate PDF Tutorial</h1>") _
                 .SaveAs("GeneratePDF.pdf")
$vbLabelText   $csharpLabel

輸出帶有頁首和頁尾的PDF文件

圖片 10

帶有文字格式頁首和頁尾的 PDF 文檔,顯示日期、時間和頁碼。

使用 HTML 新增頁首和頁尾

對於更複雜的設計,請使用具有完整樣式控制的基於 HTML 的頁首和頁尾。

var ChromePdfRenderer = new ChromePdfRenderer();

// Configure HTML footer
ChromePdfRenderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
    Height = 15,
    HtmlFragment = "<center><i>{page} of {total-pages}</i></center>",
    DrawDividerLine = true
};

// Configure HTML header
ChromePdfRenderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    Height = 20,
    HtmlFragment = "<div style='text-align: center; font-weight: bold;'>This is Header {date}</div>",
};

// Generate PDF
ChromePdfRenderer.RenderHtmlAsPdf("<h1>This is sample page for Tutorial.</h1>")
                 .SaveAs("GeneratePDF.pdf");
var ChromePdfRenderer = new ChromePdfRenderer();

// Configure HTML footer
ChromePdfRenderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
    Height = 15,
    HtmlFragment = "<center><i>{page} of {total-pages}</i></center>",
    DrawDividerLine = true
};

// Configure HTML header
ChromePdfRenderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    Height = 20,
    HtmlFragment = "<div style='text-align: center; font-weight: bold;'>This is Header {date}</div>",
};

// Generate PDF
ChromePdfRenderer.RenderHtmlAsPdf("<h1>This is sample page for Tutorial.</h1>")
                 .SaveAs("GeneratePDF.pdf");
Dim ChromePdfRenderer = New ChromePdfRenderer()

' Configure HTML footer
ChromePdfRenderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter() With {
    .Height = 15,
    .HtmlFragment = "<center><i>{page} of {total-pages}</i></center>",
    .DrawDividerLine = True
}

' Configure HTML header
ChromePdfRenderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter() With {
    .Height = 20,
    .HtmlFragment = "<div style='text-align: center; font-weight: bold;'>This is Header {date}</div>"
}

' Generate PDF
ChromePdfRenderer.RenderHtmlAsPdf("<h1>This is sample page for Tutorial.</h1>").SaveAs("GeneratePDF.pdf")
$vbLabelText   $csharpLabel

圖片 11

具有基於 HTML 的頁首和頁尾且具有自訂樣式的 PDF 文件

使用密碼加密 PDF 文件

對於敏感文件而言,安全至關重要。 IronPDF 讓使用密碼保護加密 PDF 文件變得簡單。

var ChromePdfRenderer = new ChromePdfRenderer();

// Generate PDF document
var pdfDocument = ChromePdfRenderer.RenderHtmlAsPdf("<h1>Hello world</h1>");

// Set password to encrypt the document
pdfDocument.Password = "Password@1234";

// Save the secured PDF
pdfDocument.SaveAs("secured.pdf");
var ChromePdfRenderer = new ChromePdfRenderer();

// Generate PDF document
var pdfDocument = ChromePdfRenderer.RenderHtmlAsPdf("<h1>Hello world</h1>");

// Set password to encrypt the document
pdfDocument.Password = "Password@1234";

// Save the secured PDF
pdfDocument.SaveAs("secured.pdf");
Dim ChromePdfRenderer = New ChromePdfRenderer()

' Generate PDF document
Dim pdfDocument = ChromePdfRenderer.RenderHtmlAsPdf("<h1>Hello world</h1>")

' Set password to encrypt the document
pdfDocument.Password = "Password@1234"

' Save the secured PDF
pdfDocument.SaveAs("secured.pdf")
$vbLabelText   $csharpLabel

PDF 檔案輸出

圖片 12

開啟加密 PDF 文件時提示輸入密碼

合併和拆分PDF文檔

IronPDF 提供強大的功能,可用於合併多個 PDF 文件和分割現有文件中的頁面。

var ChromePdfRenderer = new ChromePdfRenderer();

// Load existing PDFs
var pdfDocuments = new List<PdfDocument>
{
    PdfDocument.FromFile("AccountPdf.pdf"),
    PdfDocument.FromFile("GeneratePDF.pdf"),
    PdfDocument.FromFile("wikipedia.pdf")
};

// Merge PDFs into a single document
var mergedPdfDocument = PdfDocument.Merge(pdfDocuments);
mergedPdfDocument.SaveAs("merged.pdf");

// Add a cover page
mergedPdfDocument.PrependPdf(ChromePdfRenderer.RenderHtmlAsPdf("<h1>Cover Page</h1><hr>"));

// Remove the last page
mergedPdfDocument.RemovePage(mergedPdfDocument.PageCount - 1);
mergedPdfDocument.SaveAs("merged.pdf");

// Extract specific pages
mergedPdfDocument.CopyPages(1, 2).SaveAs("excerpt.pdf");
var ChromePdfRenderer = new ChromePdfRenderer();

// Load existing PDFs
var pdfDocuments = new List<PdfDocument>
{
    PdfDocument.FromFile("AccountPdf.pdf"),
    PdfDocument.FromFile("GeneratePDF.pdf"),
    PdfDocument.FromFile("wikipedia.pdf")
};

// Merge PDFs into a single document
var mergedPdfDocument = PdfDocument.Merge(pdfDocuments);
mergedPdfDocument.SaveAs("merged.pdf");

// Add a cover page
mergedPdfDocument.PrependPdf(ChromePdfRenderer.RenderHtmlAsPdf("<h1>Cover Page</h1><hr>"));

// Remove the last page
mergedPdfDocument.RemovePage(mergedPdfDocument.PageCount - 1);
mergedPdfDocument.SaveAs("merged.pdf");

// Extract specific pages
mergedPdfDocument.CopyPages(1, 2).SaveAs("excerpt.pdf");
Dim ChromePdfRenderer = New ChromePdfRenderer()

' Load existing PDFs
Dim pdfDocuments = New List(Of PdfDocument) From {
    PdfDocument.FromFile("AccountPdf.pdf"),
    PdfDocument.FromFile("GeneratePDF.pdf"),
    PdfDocument.FromFile("wikipedia.pdf")
}

' Merge PDFs into a single document
Dim mergedPdfDocument = PdfDocument.Merge(pdfDocuments)
mergedPdfDocument.SaveAs("merged.pdf")

' Add a cover page
mergedPdfDocument.PrependPdf(ChromePdfRenderer.RenderHtmlAsPdf("<h1>Cover Page</h1><hr>"))

' Remove the last page
mergedPdfDocument.RemovePage(mergedPdfDocument.PageCount - 1)
mergedPdfDocument.SaveAs("merged.pdf")

' Extract specific pages
mergedPdfDocument.CopyPages(1, 2).SaveAs("excerpt.pdf")
$vbLabelText   $csharpLabel

將 PDF 檔案作為"內容"新增至專案中,即可透過檔案名稱存取它們。

圖片 13

合併多個來源文件的 PDF 文檔

從PDF文件中提取影像

此功能需要 System.Drawing.Common NuGet 套件。 使用 ExtractAllText 取得文本,使用 ExtractAllImages 取得圖像。

var ChromePdfRenderer = new ChromePdfRenderer();

// Load existing PDF
var pdfDocument = PdfDocument.FromFile("wikipedia.pdf");

// Get all text
var allText = pdfDocument.ExtractAllText();

// Get all Images
var allImages = pdfDocument.ExtractAllImages();

// Extract images and text by page
for (var index = 0; index < pdfDocument.PageCount; index++)
{
    var pageNumber = index + 1;
    var pageText = pdfDocument.ExtractTextFromPage(index);
    var pageImages = pdfDocument.ExtractImagesFromPage(index);
}
var ChromePdfRenderer = new ChromePdfRenderer();

// Load existing PDF
var pdfDocument = PdfDocument.FromFile("wikipedia.pdf");

// Get all text
var allText = pdfDocument.ExtractAllText();

// Get all Images
var allImages = pdfDocument.ExtractAllImages();

// Extract images and text by page
for (var index = 0; index < pdfDocument.PageCount; index++)
{
    var pageNumber = index + 1;
    var pageText = pdfDocument.ExtractTextFromPage(index);
    var pageImages = pdfDocument.ExtractImagesFromPage(index);
}
Dim ChromePdfRenderer = New ChromePdfRenderer()

' Load existing PDF
Dim pdfDocument = PdfDocument.FromFile("wikipedia.pdf")

' Get all text
Dim allText = pdfDocument.ExtractAllText()

' Get all Images
Dim allImages = pdfDocument.ExtractAllImages()

' Extract images and text by page
For index = 0 To pdfDocument.PageCount - 1
    Dim pageNumber = index + 1
    Dim pageText = pdfDocument.ExtractTextFromPage(index)
    Dim pageImages = pdfDocument.ExtractImagesFromPage(index)
Next
$vbLabelText   $csharpLabel

您需要新增 System.Drawing 才能將影像儲存為點陣圖。

啟用 JavaScript

現代網頁依靠 JavaScript 來實現動態內容。 IronPDF 的 Chromium 引擎完全支援 JavaScript 執行。

var ChromePdfRenderer = new ChromePdfRenderer();

// Enable JavaScript rendering
ChromePdfRenderer.RenderingOptions = new ChromePdfRenderOptions()
{
    EnableJavaScript = true,
    RenderDelay = 100  // Wait for JavaScript to execute
};
var ChromePdfRenderer = new ChromePdfRenderer();

// Enable JavaScript rendering
ChromePdfRenderer.RenderingOptions = new ChromePdfRenderOptions()
{
    EnableJavaScript = true,
    RenderDelay = 100  // Wait for JavaScript to execute
};
Dim ChromePdfRenderer = New ChromePdfRenderer()

' Enable JavaScript rendering
ChromePdfRenderer.RenderingOptions = New ChromePdfRenderOptions() With {
    .EnableJavaScript = True,
    .RenderDelay = 100 ' Wait for JavaScript to execute
}
$vbLabelText   $csharpLabel

對於 JavaScript 處理繁重或 AJAX 呼叫較多的頁面,請增加 RenderDelay(複雜 SPA 需要 500-1000 毫秒)。

PDF OCR和文字擷取

在許多情況下,您可以直接從 PDF 文件中提取嵌入文字:

// Load PDF
PdfDocument PDF = PdfDocument.FromFile("GeneratePDF.pdf");

// Extract all text 
string Text = PDF.ExtractAllText();
// Load PDF
PdfDocument PDF = PdfDocument.FromFile("GeneratePDF.pdf");

// Extract all text 
string Text = PDF.ExtractAllText();
' Load PDF
Dim PDF As PdfDocument = PdfDocument.FromFile("GeneratePDF.pdf")

' Extract all text 
Dim Text As String = PDF.ExtractAllText()
$vbLabelText   $csharpLabel

如果直接提取不起作用,則您的文字可能嵌入在圖像中。 使用IronOCR 庫掃描文件以提取可視文字:

using IronOcr;

var ocr = new IronTesseract();
var result = ocr.Read("scanned-document.pdf");
string recognizedText = result.Text;
using IronOcr;

var ocr = new IronTesseract();
var result = ocr.Read("scanned-document.pdf");
string recognizedText = result.Text;
Imports IronOcr

Dim ocr As New IronTesseract()
Dim result = ocr.Read("scanned-document.pdf")
Dim recognizedText As String = result.Text
$vbLabelText   $csharpLabel

摘要

只需幾行程式碼,即可產生 PDF 文檔,並對其進行操作和格式化。 IronPDF 會為您處理所有複雜步驟。 開發用戶可以免費使用,購買前還可以免費試用。 雖然還有其他 PDF 庫,但很多要么效能慢,要么需要複雜的底層編碼。

IronPDF .NET 庫現已隨Iron Suite for .NET一起提供。 Iron Suite 包含五個強大的庫: IronPDF、IronXL、IronOCR、IronBarcode 和 IronQR 。 這些庫可以無縫協作,實現全面的文件處理。 如果您購買完整的 Iron Suite 套裝,您只需支付兩件產品的價格即可獲得全部五件產品

IronPDF 與.NET 10 和 C# 14 (2025 年 11 月發布)完全相容,同時也相容於 .NET 9、.NET 8、.NET 6 和所有現代 .NET 平台。

您可以從IronPDF C# PDF 產生教學課程下載專案檔。

常見問題解答

如何在 C# 中從 HTML 字符串生成 PDF?

您可以使用 IronPDF 的 ChromePdfRenderer 中的 RenderHtmlAsPdf 方法從 HTML 字符串生成 PDF。此方法將 HTML 內容轉換為 PDF 格式,然後可以使用 SaveAs 方法保存。

我可以從網頁 URL 創建 PDF 文檔嗎?

是的,您可以使用 IronPDF 從網頁 URL 創建 PDF。利用 ChromePdfRenderer 的 RenderUrlAsPdf 方法將網頁內容轉換為 PDF 文檔。

如何在 C# 中向 PDF 添加頁眉和頁腳?

要在 C# 中向 PDF 添加頁眉和頁腳,可以使用 IronPDF 的 ChromePdfRenderer 來設置 RenderingOptions 中的 TextHeaderTextFooter 屬性。您可以包含動態元素,如頁碼和日期。

在 C# 中加密 PDF 文檔是否可行?

是的,您可以使用 IronPDF 在 C# 中通過設置 PdfDocument 對象的 Password 屬性為所需密碼來加密 PDF 文檔。

如何使用 C# 合併或拆分 PDF 文件?

使用 IronPDF,您可以通過 Merge 方法將多個 PDF 合併為一個文檔。要拆分文檔,您可以使用 CopyPages 方法來提取特定頁面。

使用 IronPDF 有哪些系統要求?

IronPDF 支持 .NET 語言,如 C#、VB.NET 和 F#。它兼容 .NET 6、5、Core 2.x 和 3.x,Standard 2 和 Framework 4.x。 它可以在 Windows、Linux、macOS、Docker 及 Azure OS 上運行。

我可以從 PDF 文件中提取圖像嗎?

是的,您可以使用 IronPDF 的 ExtractAllImages 方法來從 PDF 文件中提取圖像。確保包含 System.Drawing.Common NuGet 包以處理圖像。

如何在我的 C# 項目中安裝 IronPDF?

您可以通過在 Visual Studio 的 NuGet 包管理器中搜索 IronPDF 或使用包管理器控制台使用命令 Install-Package IronPDF 將 IronPDF 安裝到您的項目中。

IronPDF 提供哪些附加功能?

IronPDF 提供多源創建 PDF、添加頁眉和頁腳、加密文檔、提取文本和圖像、轉換 HTML 內容等功能。它還支持 JavaScript 執行和 OCR 能力,用於從嵌入圖像的 PDF 中提取文本。

IronPDF是否與.NET 10兼容,這帶來了哪些好處?

是的,IronPDF完全與.NET 10兼容。它在.NET 10項目中開箱即用,就像在較早的.NET版本中一樣,跨Windows、Linux、容器和macOS運作。好處包括提高的運行時性能,零配置的解決方案,和訪問新的C#語言功能以及支持async的API。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。

鋼鐵支援團隊

我們每週 5 天,每天 24 小時在線上。
聊天
電子郵件
打電話給我