
如何使用OCR.net和IronPDF用C#構建PDF OCR工作流程
在.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中的套件管理器控制台
選項2:.NET CLI
有關安裝逐步指南,請參閱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");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");
此範例顯示了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");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");
}
}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 ClassFile()返回型別告知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");
}<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場景程式碼範例。
外部參考:

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


