如何使用IronPDF在.NET Core中生成PDF
要在 .NET Core 中產生 PDF 文件,可以使用 IronPDF 的 ChromePdfRenderer 將 HTML 字串、網頁或 Razor 視圖轉換為 PDF 文檔,只需幾行程式碼即可,同時保留所有 CSS 樣式和 JavaScript 功能。
在 .NET Core 應用程式中建立 PDF 文件是建立需要產生發票、報告和其他業務文件的 Web 應用程式時的常見需求。 IronPDF提供了一個功能齊全的PDF 庫,它透過其 Chrome 渲染引擎簡化了 ASP.NET Core 中的 PDF 生成,每次都能生成像素級完美的 PDF 檔案。在本指南中,您將學習如何在 .NET 10 環境中處理各種 PDF 生成任務,從簡單的 HTML 轉換到使用 C# 頂級語句產生複雜的報表。
.NET Core 如何產生 PDF 檔案?
IronPDF 使用基於 Chrome 的渲染引擎將 HTML 內容轉換為 PDF 檔案。 這種方法意味著您可以利用現有的 HTML 和 CSS 知識來建立 PDF,而無需學習複雜的底層 PDF API 或應對陡峭的學習曲線。 該程式庫可自動處理網頁轉換,支援 JavaScript 執行和響應式 CSS 佈局。
該程式庫的 API 可讓您從 HTML 字串、URL 或本機 HTML 檔案產生 PDF 文件。 IronPDF 將 HTML 轉換為 PDF 時,能夠保留複雜的佈局、CSS 樣式、JavaScript 執行和動態 Web 內容。 對於需要在應用程式中實現可靠PDF 轉換功能的.NET 開發人員來說,這是一個實用的選擇。
渲染過程採用與 Google Chrome 相同的技術,確保 HTML 到 PDF 的轉換效果與使用者在現代瀏覽器中看到的效果一致。 這包括對 CSS3 功能、Web 字體、SVG 圖形以及 Flexbox 和 CSS Grid 等現代佈局系統的支援。 由於渲染引擎是基於 Chrome,因此在開發、測試和生產環境中,輸出結果都是可預測且一致的。
如何在 .NET 10 專案中安裝 IronPDF?
首先,只需透過 NuGet 套件管理器進行一次安裝即可開始使用。 根據您的工作流程,您有兩個選擇。
選項 1:Visual Studio 中的套件管理器控制台
Install-Package IronPdf
Install-Package IronPdf
選項 2:.NET CLI
dotnet add package IronPdf
dotnet add package IronPdf
有關逐步安裝指南,請參閱NuGet 安裝指南。
對於 Docker 部署或 Linux 環境,可能需要額外的系統相依性。 IronPDF 支援 macOS、Windows、Linux、Azure 和 AWS Lambda,使其能夠適應各種託管場景。 安裝完成後,新增試用許可證金鑰即可在開發過程中解鎖全部功能。 試用版是免費的,無需信用卡,因此您可以在購買商業許可證之前充分評估該庫。
如何從 HTML 字串產生 PDF?
建立 PDF 最直接的方法是轉換 HTML 內容。 以下是一個使用 C# 頂級語句的最小範例:
using IronPdf;
// Instantiate the renderer
var renderer = new ChromePdfRenderer();
// Convert an HTML string to PDF
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This is a PDF generated from HTML.</p>");
// Save to disk
pdf.SaveAs("hello.pdf");
using IronPdf;
// Instantiate the renderer
var renderer = new ChromePdfRenderer();
// Convert an HTML string to PDF
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This is a PDF generated from HTML.</p>");
// Save to disk
pdf.SaveAs("hello.pdf");
Imports IronPdf
' Instantiate the renderer
Dim renderer As New ChromePdfRenderer()
' Convert an HTML string to PDF
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This is a PDF generated from HTML.</p>")
' Save to disk
pdf.SaveAs("hello.pdf")
ChromePdfRenderer 類別處理轉換過程。 傳回的 PdfDocument 物件可讓您存取二進位資料、頁面計數和輸出選項,例如儲存到檔案或記憶體流。 您還可以將標題、作者和主題關鍵字等元資料附加到輸出檔案中。
渲染器支援多種渲染選項。 您可以設定自訂邊距、設定紙張尺寸、控制頁面方向和調整視窗尺寸。 這些選項可確保 PDF 輸出符合專業文件的特定格式要求。
如何使用 CSS 樣式建立 PDF 發票?
舉個更實際的例子,以下是如何使用 HTML 標籤和 CSS 產生樣式化的發票文件:
using IronPdf;
var html = @"
<html>
<head>
<style>
body { font-family: Arial, sans-serif; font-size: 14px; }
.invoice-header {
background-color: #2c3e50;
color: white;
padding: 20px;
}
.invoice-details { margin: 20px 0; }
table { width: 100%; border-collapse: collapse; }
th, td {
padding: 12px;
text-align: left;
border-bottom: 1px solid #ddd;
}
.total {
font-size: 1.2em;
font-weight: bold;
text-align: right;
}
</style>
</head>
<body>
<div class='invoice-header'>
<h1>Invoice #2026-001</h1>
<p>Date: February 28, 2026</p>
</div>
<div class='invoice-details'>
<h3>Bill To: Jane Smith</h3>
<table>
<tr>
<th>Item</th>
<th>Quantity</th>
<th>Price</th>
</tr>
<tr>
<td>Professional License</td>
<td>1</td>
<td>$749.00</td>
</tr>
</table>
<p class='total'>Total: $749.00</p>
</div>
</body>
</html>";
var renderer = new ChromePdfRenderer();
// Apply custom margins
renderer.RenderingOptions.MarginTop = 10;
renderer.RenderingOptions.MarginBottom = 10;
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("invoice.pdf");
using IronPdf;
var html = @"
<html>
<head>
<style>
body { font-family: Arial, sans-serif; font-size: 14px; }
.invoice-header {
background-color: #2c3e50;
color: white;
padding: 20px;
}
.invoice-details { margin: 20px 0; }
table { width: 100%; border-collapse: collapse; }
th, td {
padding: 12px;
text-align: left;
border-bottom: 1px solid #ddd;
}
.total {
font-size: 1.2em;
font-weight: bold;
text-align: right;
}
</style>
</head>
<body>
<div class='invoice-header'>
<h1>Invoice #2026-001</h1>
<p>Date: February 28, 2026</p>
</div>
<div class='invoice-details'>
<h3>Bill To: Jane Smith</h3>
<table>
<tr>
<th>Item</th>
<th>Quantity</th>
<th>Price</th>
</tr>
<tr>
<td>Professional License</td>
<td>1</td>
<td>$749.00</td>
</tr>
</table>
<p class='total'>Total: $749.00</p>
</div>
</body>
</html>";
var renderer = new ChromePdfRenderer();
// Apply custom margins
renderer.RenderingOptions.MarginTop = 10;
renderer.RenderingOptions.MarginBottom = 10;
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("invoice.pdf");
Imports IronPdf
Dim html As String = "
<html>
<head>
<style>
body { font-family: Arial, sans-serif; font-size: 14px; }
.invoice-header {
background-color: #2c3e50;
color: white;
padding: 20px;
}
.invoice-details { margin: 20px 0; }
table { width: 100%; border-collapse: collapse; }
th, td {
padding: 12px;
text-align: left;
border-bottom: 1px solid #ddd;
}
.total {
font-size: 1.2em;
font-weight: bold;
text-align: right;
}
</style>
</head>
<body>
<div class='invoice-header'>
<h1>Invoice #2026-001</h1>
<p>Date: February 28, 2026</p>
</div>
<div class='invoice-details'>
<h3>Bill To: Jane Smith</h3>
<table>
<tr>
<th>Item</th>
<th>Quantity</th>
<th>Price</th>
</tr>
<tr>
<td>Professional License</td>
<td>1</td>
<td>$749.00</td>
</tr>
</table>
<p class='total'>Total: $749.00</p>
</div>
</body>
</html>"
Dim renderer As New ChromePdfRenderer()
' Apply custom margins
renderer.RenderingOptions.MarginTop = 10
renderer.RenderingOptions.MarginBottom = 10
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("invoice.pdf")
此範例展示了 IronPDF 處理複雜佈局和 CSS 樣式的能力,包括字體系列設定、背景顏色和表格格式。 此程式庫處理 HTML 標記並產生與來源文件視覺外觀相符的 PDF。
為了改善排版效果,IronPDF 支援 Google Fonts 和網頁圖示字體,讓您能夠建立視覺效果精美的 PDF 檔案。 該庫還支援分層文件設計。 您可以為現有 PDF 檔案新增自訂浮水印或內容印章。
產生的PDF發票是什麼樣子的?
![PDF 發票顯示發票 #2026-001,日期為 2026 年 2 月 28 日,顯示購買專業許可證的價格為 749.00 美元,標題部分為深藍色。 該發票展示了從 HTML 到 PDF 轉換過程中保留的 CSS 樣式,包括自訂字體、顏色和表格格式。
如何將網頁 URL 轉換為 PDF?
IronPDF 可以透過向渲染器傳遞 URL 來從即時網頁產生 PDF。 當您需要動態擷取網頁內容或存檔公用頁面時,這非常有用:
using IronPdf;
var renderer = new ChromePdfRenderer();
// Configure viewport and JavaScript settings
renderer.RenderingOptions.ViewPortWidth = 1920;
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen;
renderer.RenderingOptions.WaitFor.RenderDelay(1500); // Allow dynamic content to load
// Render the URL to PDF
var pdf = renderer.RenderUrlAsPdf("https://example.com");
// Save to disk
pdf.SaveAs("webpage.pdf");
using IronPdf;
var renderer = new ChromePdfRenderer();
// Configure viewport and JavaScript settings
renderer.RenderingOptions.ViewPortWidth = 1920;
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen;
renderer.RenderingOptions.WaitFor.RenderDelay(1500); // Allow dynamic content to load
// Render the URL to PDF
var pdf = renderer.RenderUrlAsPdf("https://example.com");
// Save to disk
pdf.SaveAs("webpage.pdf");
Imports IronPdf
Dim renderer As New ChromePdfRenderer()
' Configure viewport and JavaScript settings
renderer.RenderingOptions.ViewPortWidth = 1920
renderer.RenderingOptions.EnableJavaScript = True
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen
renderer.RenderingOptions.WaitFor.RenderDelay(1500) ' Allow dynamic content to load
' Render the URL to PDF
Dim pdf = renderer.RenderUrlAsPdf("https://example.com")
' Save to disk
pdf.SaveAs("webpage.pdf")
RenderDelay 設定可確保 JavaScript 驅動的內容(圖表、延遲載入的影像、動態表格)在擷取 PDF 之前完成渲染。 您也可以設定 WaitFor 條件,以等待特定的 DOM 元素或網路請求完成。 對於需要身份驗證的頁面,該庫支援 HTTP 請求標頭和自訂 cookie。
對於使用 Angular 或 React 建立的複雜單頁應用程序,額外的等待條件有助於確保在拍攝 PDF 快照之前完成所有用戶端渲染。
![分割畫面比較,左側顯示瀏覽器中渲染的網頁,右側顯示使用 .NET Core 中的 IronPDF 將其轉換為 PDF 的結果。 PDF 版本保留了所有格式、圖像和佈局結構,展現了高保真 HTML 到 PDF 的轉換效果。
如何將 PDF 生成功能整合到 ASP.NET Core 控制器中?
在 ASP.NET Core Web API 中產生 PDF 檔案非常簡單。 以下範例展示了一個控制器操作,該操作會產生一個 HTML 報告並將其作為文件下載返回:
using Microsoft.AspNetCore.Mvc;
using IronPdf;
[ApiController]
[Route("api/[controller]")]
public class PdfController : ControllerBase
{
[HttpGet("generate-report")]
public IActionResult GenerateReport()
{
var html = @"
<h1>Monthly Sales Report</h1>
<p>Generated on: " + DateTime.Now.ToString("MMMM dd, yyyy") + @"</p>
<table>
<tr><th>Product</th><th>Sales</th></tr>
<tr><td>Product A</td><td>$5,000</td></tr>
<tr><td>Product B</td><td>$3,500</td></tr>
</table>";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
// Return the PDF bytes as a downloadable file
return File(pdf.BinaryData, "application/pdf", "monthly-report.pdf");
}
}
using Microsoft.AspNetCore.Mvc;
using IronPdf;
[ApiController]
[Route("api/[controller]")]
public class PdfController : ControllerBase
{
[HttpGet("generate-report")]
public IActionResult GenerateReport()
{
var html = @"
<h1>Monthly Sales Report</h1>
<p>Generated on: " + DateTime.Now.ToString("MMMM dd, yyyy") + @"</p>
<table>
<tr><th>Product</th><th>Sales</th></tr>
<tr><td>Product A</td><td>$5,000</td></tr>
<tr><td>Product B</td><td>$3,500</td></tr>
</table>";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
// Return the PDF bytes as a downloadable file
return File(pdf.BinaryData, "application/pdf", "monthly-report.pdf");
}
}
Imports Microsoft.AspNetCore.Mvc
Imports IronPdf
<ApiController>
<Route("api/[controller]")>
Public Class PdfController
Inherits ControllerBase
<HttpGet("generate-report")>
Public Function GenerateReport() As IActionResult
Dim html As String = "
<h1>Monthly Sales Report</h1>
<p>Generated on: " & DateTime.Now.ToString("MMMM dd, yyyy") & "</p>
<table>
<tr><th>Product</th><th>Sales</th></tr>
<tr><td>Product A</td><td>$5,000</td></tr>
<tr><td>Product B</td><td>$3,500</td></tr>
</table>"
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(html)
' Return the PDF bytes as a downloadable file
Return File(pdf.BinaryData, "application/pdf", "monthly-report.pdf")
End Function
End Class
傳回類型 File() 告訴 ASP.NET Core 將原始 PDF 位元組串流傳輸到客戶端瀏覽器,並帶有正確的 MIME 類型。 客戶將收到一個可下載的PDF文件,磁碟上沒有任何中間文件。 您可以為每頁新增頁首和頁腳,或為草稿或機密文件新增浮水印。
對於生產應用,請考慮使用非同步 PDF 產生來保持請求管道不阻塞,尤其是在產生大型或複雜文件時。
如何在MVC中將Razor視圖渲染成PDF?
對於 MVC 應用程序,您可以將 Razor 視圖渲染為 HTML 字串,然後將其轉換為 PDF。 此模式將您的文件範本保存在標準的 .cshtml 文件中:
[HttpGet]
public async Task<IActionResult> DownloadInvoice(int id)
{
// Fetch invoice data from the database
var model = await GetInvoiceData(id);
// Render the Razor view to an HTML string
var html = await RenderViewToString("Invoice", model);
// Convert the rendered HTML 到 PDF
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
// Return the file to the browser
return File(pdf.BinaryData, "application/pdf", $"invoice-{id}.pdf");
}
[HttpGet]
public async Task<IActionResult> DownloadInvoice(int id)
{
// Fetch invoice data from the database
var model = await GetInvoiceData(id);
// Render the Razor view to an HTML string
var html = await RenderViewToString("Invoice", model);
// Convert the rendered HTML 到 PDF
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
// Return the file to the browser
return File(pdf.BinaryData, "application/pdf", $"invoice-{id}.pdf");
}
Imports System.Threading.Tasks
Imports Microsoft.AspNetCore.Mvc
<HttpGet>
Public Async Function DownloadInvoice(id As Integer) As Task(Of IActionResult)
' Fetch invoice data from the database
Dim model = Await GetInvoiceData(id)
' Render the Razor view to an HTML string
Dim html = Await RenderViewToString("Invoice", model)
' Convert the rendered HTML to PDF
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(html)
' Return the file to the browser
Return File(pdf.BinaryData, "application/pdf", $"invoice-{id}.pdf")
End Function
這種方法可讓您使用模型綁定和部分視圖,將發票或報表範本維護為普通的 Razor 視圖。 RenderViewToString 輔助方法(MVC 專案中的常用工具)將視圖轉換為純 HTML 字串,然後 IronPDF 對其進行處理。 對於 Razor Pages 或 Blazor Server 項目,也適用類似的模式。

IronPDF 支援哪些進階 PDF 功能?
除了基本的 HTML 轉 PDF 功能外,IronPDF 還提供一系列廣泛的文件處理功能:
-合併和分割:使用合併和分割 API合併多個 PDF 或提取特定頁面。 -數位簽章:應用基於憑證的數位簽章進行文件認證 -文本提取:從 PDF 文件中提取文本,用於搜尋索引或資料處理。
- PDF 表單:透過程式設計方式建立和填寫 PDF 表單,實現文件工作流程自動化 -將PDF頁面轉換為圖像:將PDF頁面匯出為圖像,以便產生縮圖或預覽圖
- HTML 字串渲染:對HTML 字串到 PDF轉換選項進行精細控制 安全性:密碼保護、加密和權限控制可確保敏感文件的安全性。
對於效能要求極高的工作負載,IronPDF 提供非同步方法和多執行緒支援。 該庫還支援圖像到 PDF 的轉換、PDF 壓縮和線性化,以加快網頁瀏覽速度。
| 特點 | 描述 | 典型應用情境 |
|---|---|---|
| HTML 到 PDF | 將 HTML 字串、文件或 URL 轉換為 PDF | 發票、報告、網頁存檔 |
| Razor 到 PDF | 將 Razor 視圖 (.cshtml) 渲染為 PDF | MVC 和 Razor Pages 應用程式 |
| 合併/拆分 | 合併或拆分 PDF 文檔 | 文檔打包、頁面擷取 |
| 數位簽名 | 應用 X.509 憑證簽名 | 法律文件、合約工作流程 |
| 文字抽取 | 讀取現有PDF中的文字內容。 | 搜尋索引、資料遷移 |
| PDF 表單 | 建立並填寫互動式表單字段 | 自動化數據採集 |
| 標題和頁腳 | 新增頁碼、日期和自訂文本 | 專業文件格式 |
如何在 .NET 10 中開始使用 IronPDF?
IronPDF 讓在 .NET Core 中產生 PDF 檔案變得簡單。 其 Chrome 渲染引擎可確保從 HTML 內容建立 PDF 時的精確保真度,而 API 設計則消除了與 PDF 操作相關的典型複雜性。 該程式庫提供所有功能的完整文檔,並支援在 Windows、Linux、macOS、Azure Functions、AWS Lambda 和 Docker 容器上部署。
無論您是建立發票、報表或文件管理工具,IronPDF 都能提供專業 PDF 建立所需的工具。 查看完整的功能列表,了解該程式庫的全部功能,或查看適合個人開發者和企業團隊的授權選項。
立即開始免費試用,在您自己的 .NET 10 專案中測試 IronPDF。 試用許可證涵蓋所有功能,因此您可以在購買許可證之前評估 PDF 生成、合併、簽名、表單填寫和文字提取等功能。
如需更多背景信息,請瀏覽IronPDF 文件主頁,其中包含 API 參考、平台指南和涵蓋常見 .NET PDF 場景的程式碼範例。
外部參考文獻:
常見問題解答
如何在.NET Core中產生PDF文件?
您可以使用 IronPDF 在 .NET Core 中產生 PDF 文檔,它允許您使用其先進的 Chrome 渲染引擎從 HTML、URL 和 Razor 視圖建立 PDF。
使用 IronPDF 進行 PDF 生成有什麼優勢?
IronPDF 具有許多優勢,包括易於整合、支援像素級完美渲染,以及能夠從 HTML 和 URL 等各種來源建立 PDF,使其成為建立需要產生 PDF 的 Web 應用程式的理想選擇。
IronPDF 能處理複雜的 PDF 生成任務嗎?
是的,IronPDF 旨在處理 .NET 環境中複雜的 PDF 生成任務,為開發人員提供創建詳細、準確的 PDF 文件所需的工具。
Chrome渲染引擎在IronPDF中扮演什麼角色?
IronPDF 中的 Chrome 渲染引擎可確保產生的 PDF 檔案像素完美,並保持原始 HTML 或網頁內容的保真度。
IronPDF 是否適合產生發票和報告等商業文件?
當然,IronPDF 非常適合產生發票和報告等商業文檔,它提供精確的渲染效果並支援各種文檔格式。
IronPDF 可以將哪些類型的輸入轉換為 PDF?
IronPDF 可以將 HTML、URL 和 Razor 視圖等輸入轉換為 PDF 文檔,從而為內容創建提供靈活性。
IronPDF 是否支援 ASP.NET Core 應用程式?
是的,IronPDF 與 ASP.NET Core 應用程式完全相容,允許開發人員將 PDF 生成功能無縫整合到他們的 Web 專案中。
IronPDF在Web應用程式中有哪些常見用例?
IronPDF 的常見用途包括產生發票、報告以及 Web 應用程式所需的任何其他業務文件的 PDF 文件。



