跳至頁尾內容
使用IRONPDF
如何在 C# 中建立 PDF

如何使用C#在ASP.NET中生成PDF

HTML和URL生成PDF是2026年.NET開發人員的關鍵能力,無論您是將網頁轉換為文件、存檔線上內容,還是將HTML報告轉換為便攜格式。 使用正確的.NET PDF程式庫,您可以只需幾行程式碼捕捉網頁和HTML內容為專業的PDF文件保持原始來源的外觀和結構

IronPDF是HTML到PDF轉換時最簡單、最通用的.NET PDF生成器 - 它具有非常簡單的學習曲線,讓您能在幾分鐘內而非數小時內從網頁內容生成PDF。 這本全面的指南將向您展示如何使用IronPDF從HTML和URL在C#中生成PDF文件 - 這是一個能提供像素完美結果的強大生成器,支持所有現代.NET平台,包括.NET 10和C# 14(均於2025年11月發行)。 雖然本教程涵蓋了從簡單的URL轉換到複雜的多頁HTML報告的所有內容,但不要感到畏懼 - 從頭開始並向前進。 您將學習到多種PDF生成方法,從捕捉單個網頁批量轉換HTML文件,以及如何解決常見問題並優化各種HTML到PDF場景的性能。

什麼是IronPDF?

IronPDF是一個領先的.NET PDF程式庫,全球開發人員認可的HTML到PDF轉換及全面的PDF操作功能。 專為C#開發人員構建,IronPDF消除了與PDF生成相關的傳統複雜性。

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

它允許您使用HTML5、CSS3、JavaScript和圖像建立PDF文件。 您可以輕鬆編輯、加印和向PDF新增頁眉和頁腳。 此外,它讓用IronPDF高效地讀取PDF內容並提取圖像變得簡單。

IronPDF提供了解決所有PDF相關問題的全面解決方案。 使用IronPDF時,您可以在一個程式庫中獲得所有的轉換,以及PDF操作任務,不需要外部依賴。 IronPDF是一個完整的包,是開發人員和C#程式設計師的好工具。

IronPDF幫助我們從以下生成PDF文件:

  • HTML字串和範本
  • ASPX WebForms
  • MVC視圖
  • HTML文件
  • 任何URL

IronPDF功能

IronPDF幫助您從HTML 4和5、CSS和JavaScript建立PDF文件,並從URL生成PDF。 它還能載入具有自定義網路登錄憑證、使用者代理、代理、Cookie、HTTP標頭和表單變數的URL,允許在HTML登錄表單後面登錄。 您可以輕鬆地從PDF中提取圖像和文字,將新的HTML內容加印到現有PDF頁面上,以及新增邏輯或HTML頁眉和頁腳。 它可以載入並提取現有的PDF文件,合併和拆分PDF文件中的內容。 它具有自定義的"基URL",允許網上的資源文件存取,並接受任何主要文件編碼中的HTML(預設為UTF-8)。 您可以從文件、二進制資料或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。 它可以在控制台、網頁和桌面版應用上運行,並由Microsoft Windows、Linux、macOS、Docker和Azure支持。 IronPDF與Microsoft Visual Studio 2022/2026、JetBrains ReSharper和Rider配合使用。 此程式庫完全相容C# 14(於2025年11月發佈)。

生成PDF文件的步驟

首先,建立一個新的Visual Studio項目。 本教程使用Console Application範本,但可以根據您的需求使用任何範本。

您也可以將其用於您的現有項目中,想要新增PDF生成功能。

建立Visual Studio項目

打開Microsoft Visual Studio(推薦使用2022或2026版本)。 點擊"建立新項目"。 選擇C# Console Application範本。 點擊"下一步"。

給您的項目指定一個名稱。 本教程使用的是"CSharpGeneratePDF",但您可以選擇任何名稱。 點擊"下一步",並設置目標.NET Framework。 我們推薦使用.NET 10(最新的LTS)或.NET 9。 點擊"建立",將建立一個新項目。

在Visual Studio中安裝NuGet包

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

包管理器控制台

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

Install-Package IronPdf

Image 1

包管理器控制台展示了IronPDF的安裝命令

NuGet包管理器方案

您也可以按照以下步驟使用NuGet包管理器安裝IronPDF:

點擊工具> NuGet包管理器 > 管理NuGet包以解決方案。

Image 2

從Visual Studio選單存取NuGet包管理器

這將打開NuGet包管理器。 點擊"瀏覽"並搜索IronPDF,如下所示。

Image 3

在NuGet包管理器中搜索IronPDF

點擊IronPDF,然後點擊"安裝"。 這將在您的項目中安裝IronPDF。 您現在可以使用其功能。

直接下載IronPDF ZIP

或者,您可以下載用于整合的IronPDF ZIP包

記得在使用IronPDF的任何.cs類文件頂部新增此語句:

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

查看IronPDF在NuGet上有關安裝和更新的內容,以了解有關版本更新和安裝的更多資訊。

還有其他IronPDF NuGet Packages,適用于特定的Linux、Mac、Azure和AWS目標部署,詳情在IronPDF高級NuGet安裝指南中記錄。

IronPDF Library已安裝,接下來我們將進行下一步。

從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

在上面的程式碼中,建立一個新的SaveAs來獲得結果。

輸出

運行該程式。 它將在項目的bin文件夾中生成一個PDF文件(如果未指定路徑)。

Image 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"的文件。 雙擊該文件以在瀏覽器中打開。

Image 9

首個PDF文件顯示渲染的標題

在C#中建立PDF文件或將HTML轉換為PDF只需使用IronPDF的幾行程式碼。

從URL生成PDF文件

在C#中使用URL建立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

輸出

Image 5

Wikipedia首頁捕捉為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

輸出

Image 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

輸出

Image 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

輸出

Image 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文件輸出帶有頁眉和頁腳

Image 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

Image 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文件輸出

Image 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包含在項目中作為"内容"以通過文件名存取它們。

Image 13

合併多個源文件的PDF文件

從PDF文件中提取圖像

此功能需要System.Drawing.Common NuGet Package。 使用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(500-1000毫秒,用於複雜的SPAs)。

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 library以掃描文件中的視覺文字:

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 透過將 PdfDocument 物件的 Password 屬性設置為所需密碼,在 C# 中加密 PDF 文件。

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

using IronPDF,您可以透過 Merge 方法合併多個 PDF 到一個文件。要分割文件,您可以使用 CopyPages 方法提取特定頁面。

using IronPDF 的系統要求是什麼?

IronPDF 支持 C#、VB.NET、F# 等 .NET 語言。它與 .NET 6、5、Core 2.x 和 3.x、Standard 2 和 Framework 4.x 相容。它可運行於 Windows、Linux、macOS、Docker 和 Azure OS。

我可以從 C# 的 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# 語言功能和異步友好的 API。

Curtis Chau
技術作家

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

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

Iron 支援團隊

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