如何使用.NET SDK在C#中建立、填寫和提取PDF表單
在.NET Core中生成PDF文件,使用IronPDF的ChromePdfRenderer將HTML字串、網頁或Razor視圖轉換為PDF文件,只需幾行程式碼,保持所有CSS樣式和JavaScript功能。
在.NET Core應用程式中建立PDF文件是一個常見的需求,尤其是在構建需要生成發票、報表和其他商業文件的網頁應用時。 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文件。 在將HTML轉換為PDF時,IronPDF保持複雜的佈局、CSS樣式、JavaScript執行和動態網頁內容。 這使得它成為需要可靠PDF轉換功能的.NET開發者在應用中實現的實用選擇。
渲染過程使用驅動Google Chrome的相同技術,確保HTML轉PDF轉換與使用者在現代瀏覽器中看到的一致。 包括對CSS3功能、網頁字體、SVG圖形以及像Flexbox和CSS Grid這樣的現代佈局系統的支持。 由於渲染引擎是基於Chrome的,輸出在開發、測試和生產環境中是一致且可預測的。
如何在.NET 10專案中安裝IronPDF?
開始只需要通過NuGet套件管理器進行一次安裝。 根據您的工作流程,您有兩個選擇。
選項1:Visual Studio中的套件管理器控制台
Install-Package IronPdf
選項2:.NET CLI
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>$999</td>
</tr>
</table>
<p class='total'>Total: $999</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>$999</td>
</tr>
</table>
<p class='total'>Total: $999</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>$999</td>
</tr>
</table>
<p class='total'>Total: $999</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字體和網頁圖標字體,使您能夠建立視覺上精美的PDF。 該程式庫還處理分層文件設計。 您可以將自定義水印或戳記內容新增到現有PDF。
生成的PDF發票看起來如何?

如何將Web頁面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設置確保在PDF捕捉之前,JavaScript驅動的內容(如圖表、延遲載入的圖像、動態表格)完成渲染。 您還可以配置WaitFor條件,以等待特定DOM元素或網路請求完成。 對於需要身份驗證的頁面,程式庫支持HTTP請求標頭和自定義Cookie。
對於基於Angular或React構建的複雜單頁應用,額外的等待條件有助於確保所有客戶端渲染完成,然後進行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");
}
<AttributeUsage(AttributeTargets.Method)>
Public Class HttpGetAttribute
Inherits Attribute
End Class
<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項目中的常用工具)將視圖轉換為IronPDF處理的純HTML字串。 對於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 文件,IronPDF 允許您使用其進階的 Chrome 渲染引擎從 HTML、URL 和 Razor 視圖建立 PDF。
using IronPDF 生成 PDF 有哪些優勢?
IronPDF 提供了多個優勢,包括易於整合、支援像素完美渲染,以及能夠從各種來源(如 HTML 和 URL)建立 PDF,使其成為構建需要 PDF 生成的網頁應用程式的理想選擇。
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 生成能力無縫整合到其網頁專案中。
IronPDF 在網頁應用程式中的一些常見使用案例是什麼?
IronPDF 的常見使用案例包括為發票、報告和其他網頁應用程式所需的商業文件生成 PDF。

