跳過到頁腳內容
USING IRONPDF

DotNet Core Generate PDF Files

要在 .NET Core 中產生 PDF 文件,可以使用 IronPDF 的ChromePdfRenderer只需幾行程式碼即可將 HTML 字串、網頁或 Razor 視圖轉換為 PDF 文檔,同時保留所有 CSS 樣式和 JavaScript 功能。

在 .NET Core 應用程式中建立 PDF 文件是建立需要產生發票、報告和其他業務文件的Web 應用程式時的常見需求。 IronPDF 提供了一個高效的PDF 庫,它透過其Chrome 渲染引擎簡化了 ASP.NET Core 中的 PDF 生成,每次都能生成像素級完美的 PDF 檔案。在本指南中,您將了解如何在 .NET 環境中處理各種PDF 生成任務,從簡單的 HTML 轉換到複雜的報表產生

DotNet Core 如何產生 PDF 檔案?

IronPDF 使用基於 Google Chrome 的WebKit 渲染引擎將 HTML 內容渲染成 PDF 檔案。 這種方法意味著您可以利用現有的 HTML 和 CSS 知識來建立 PDF,而無需學習複雜的PDF 生成功能或應對陡峭的學習曲線。 PDF 程式庫可自動處理網頁轉換,支援JavaScript 執行響應式 CSS

該程式庫的流暢 API 可讓您從HTML 頁面、URL 或 HTML 內容字串產生 PDF 文件。 IronPDF 將 HTML 轉換為 PDF 時,能夠保留複雜的版面、 CSS 樣式、JavaScript 執行,甚至是動態網頁內容。 這使其成為需要在應用程式中具備功能豐富的PDF 轉換功能的.NET 開發人員的理想選擇。 該庫擅長產生精確無誤的PDF 文件,並能保持字體渲染國際語言支援

渲染過程採用與 Google Chrome 相同的技術,確保您的HTML 轉 PDF 轉換效果與使用者在現代瀏覽器中看到的效果一致。 這包括對CSS3 功能網頁字體SVG 圖形,甚至WebGL 內容的支援。 Chrome渲染引擎相比傳統的PDF產生方法,效能有了顯著提升

如何透過 NuGet 套件管理器安裝 IronPDF?

使用 IronPDF 只需透過NuGet 套件管理器進行一次安裝即可。 在 Visual Studio 中開啟程式包管理器控制台,並執行以下命令:

Install-Package IronPdf

對於Docker 部署Linux 環境,您可能需要額外的相依性。 IronPDF 也支援macOSWindows 平台,使其能夠靈活應用於各種開發環境。 該函式庫可以與Azure 部署AWS Lambda 函數無縫協作。

對於使用容器化應用程式的開發人員來說,IronPDF 提供Docker 支持,並且可以作為遠端容器運行。 該庫還提供了一個Windows 安裝程序,用於手動安裝。 部署到雲端平台時,您可以遵循Azure FunctionsAWS 部署的特定指南。

如何從HTML字串產生PDF文件?

建立 PDF 文件最簡單的方法是直接轉換 HTML 內容。 以下是一個基本的"Hello World"範例,示範如何產生PDF:

using IronPdf;

// Create a PDF from HTML string
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
pdf.SaveAs("hello.pdf");
using IronPdf;

// Create a PDF from HTML string
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
pdf.SaveAs("hello.pdf");
Imports IronPdf

' Create a PDF from HTML string
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>")
pdf.SaveAs("hello.pdf")
$vbLabelText   $csharpLabel

上面的程式碼只用了幾行程式碼就建立了一個新的 PDF 文件。 ChromePdfRenderer類別提供了從 HTML 產生 PDF 的核心功能。 pdf物件包含您的 PDF 文檔,可以儲存到文件路徑匯出到記憶體。 您還可以為 PDF 檔案添加標題、作者和關鍵字等元資料

渲染器支援多種渲染選項,可讓您自訂 PDF 輸出。 您可以設定自訂邊距、設定紙張尺寸、控制頁面方向和調整視窗設定。 這些選項可確保您的 PDF 文件符合專業文件的特定格式要求。

如何使用 CSS 樣式建立更複雜的 PDF?

為了更詳細地示範HTML 轉 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;
            font-family: 'Helvetica', sans-serif;
        }
        .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 #2024-001</h1>
        <p>Date: January 15, 2024</p>
    </div>
    <div class='invoice-details'>
        <h3>Bill To: John Doe</h3>
        <table>
            <tr>
                <th>Item</th>
                <th>Quantity</th>
                <th>Price</th>
            </tr>
            <tr>
                <td>Professional License</td>
                <td>1</td>
                <td>$799</td>
            </tr>
        </table>
        <p class='total'>Total: $799.00</p>
    </div>
</body>
</html>";

var renderer = new ChromePdfRenderer();
// Configure rendering options for the PDF document
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;
            font-family: 'Helvetica', sans-serif;
        }
        .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 #2024-001</h1>
        <p>Date: January 15, 2024</p>
    </div>
    <div class='invoice-details'>
        <h3>Bill To: John Doe</h3>
        <table>
            <tr>
                <th>Item</th>
                <th>Quantity</th>
                <th>Price</th>
            </tr>
            <tr>
                <td>Professional License</td>
                <td>1</td>
                <td>$799</td>
            </tr>
        </table>
        <p class='total'>Total: $799.00</p>
    </div>
</body>
</html>";

var renderer = new ChromePdfRenderer();
// Configure rendering options for the PDF document
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;
            font-family: 'Helvetica', sans-serif;
        }
        .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 #2024-001</h1>
        <p>Date: January 15, 2024</p>
    </div>
    <div class='invoice-details'>
        <h3>Bill To: John Doe</h3>
        <table>
            <tr>
                <th>Item</th>
                <th>Quantity</th>
                <th>Price</th>
            </tr>
            <tr>
                <td>Professional License</td>
                <td>1</td>
                <td>$799</td>
            </tr>
        </table>
        <p class='total'>Total: $799.00</p>
    </div>
</body>
</html>"

Dim renderer As New ChromePdfRenderer()
' Configure rendering options for the PDF document
renderer.RenderingOptions.MarginTop = 10
renderer.RenderingOptions.MarginBottom = 10

Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("invoice.pdf")
$vbLabelText   $csharpLabel

此範例展示了 IronPDF 處理具有 CSS 樣式的複雜佈局的能力,包括字體大小和字體系列設定。 PDF 庫處理 HTML 標記以建立 PDF,從而保持 HTML 頁面的確切外觀。 此程式碼展示了 ASP.NET Core 應用程式如何為業務文件產生 PDF 輸出。 您還可以新增自訂邊距、設定自訂紙張尺寸或套用頁面方向設定

為了提升樣式效果,IronPDF 支援Google 字體網頁圖標,讓您能夠創建視覺效果出色的 PDF 檔案。 該庫還可以處理複雜文件設計中的背景層和前景層。 您可以為現有 PDF 檔案新增自訂浮水印內容

產生的PDF檔案是什麼樣子的?

![PDF 發票顯示發票 #2024-001,日期為 2024 年 1 月 15 日,顯示購買專業許可證的價格為 749.00 美元,標題部分為深藍色。 該發票展示了從 HTML 到 PDF 轉換過程中保留的 CSS 樣式,包括自訂字體、顏色和表格格式。

如何將網頁轉換為PDF檔案?

IronPDF 擅長從即時網頁產生 PDF 文件。 此功能對於需要動態擷取 Web 內容的ASP.NET Core Web 應用程式尤其有用。 PDF庫可以從任何URL產生PDF文件:

using IronPdf;

var renderer = new ChromePdfRenderer();
// Render a webpage URL to PDF
var pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_78___");
// Save the PDF document
pdf.SaveAs("webpage.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();
// Render a webpage URL to PDF
var pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_78___");
// Save the PDF document
pdf.SaveAs("webpage.pdf");
Imports IronPdf

Dim renderer = New ChromePdfRenderer()
' Render a webpage URL to PDF
Dim pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_78___")
' Save the PDF document
pdf.SaveAs("webpage.pdf")
$vbLabelText   $csharpLabel

該程式庫在產生 PDF 時會自動處理JavaScript 執行、外部資源和響應式設計。 renderer物件提供了對高級功能的訪問,用於自訂網頁轉換為 PDF 的方式。 對於安全網站,您可以處理TLS 驗證cookie

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.ViewPortWidth = 1920;
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen;
renderer.RenderingOptions.WaitFor.RenderDelay(1000); // Wait for dynamic content

// Render a webpage URL to PDF
var pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_79___");
// Save the PDF document
pdf.SaveAs("webpage.pdf");
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.ViewPortWidth = 1920;
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen;
renderer.RenderingOptions.WaitFor.RenderDelay(1000); // Wait for dynamic content

// Render a webpage URL to PDF
var pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_79___");
// Save the PDF document
pdf.SaveAs("webpage.pdf");
Dim renderer = New ChromePdfRenderer()
renderer.RenderingOptions.ViewPortWidth = 1920
renderer.RenderingOptions.EnableJavaScript = True
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen
renderer.RenderingOptions.WaitFor.RenderDelay(1000) ' Wait for dynamic content

' Render a webpage URL to PDF
Dim pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_79___")
' Save the PDF document
pdf.SaveAs("webpage.pdf")
$vbLabelText   $csharpLabel

這些自訂選項可確保動態內容在 PDF 轉換之前完全加載,從而產生準確的 PDF 檔案。 程式碼示範了 ASP.NET Core 如何從網頁產生 PDF,並實現完美的渲染效果。 您也可以使用WaitFor 方法來處理複雜的 JavaScript 應用程序,或為響應式設計配置視口設定。 對於需要身份驗證的頁面,IronPDF 支援HTTP 請求標頭自訂 cookie

該程式庫為處理JavaScript 密集型網站提供了複雜的選項,包括支援Angular 應用程式圖表渲染自訂 JavaScript 執行。 您可以配置渲染延遲,以確保所有動態內容在轉換前正確載入。

![分割畫面對比,左側為在網頁瀏覽器中渲染的維基百科主頁,右側為使用 .NET Core 中的 IronPDF 轉換的 PDF 檔案。 PDF 版本保留了所有格式、圖像和佈局結構,展現了高保真 HTML 轉 PDF 轉換能力。

如何在 ASP.NET Core Web 應用程式中建立 PDF 文件?

將 PDF 生成功能整合到 ASP.NET Core 應用程式中非常簡單。 PDF 程式庫可與 ASP.NET Core 控制器無縫合作,產生 PDF 檔案。 以下是一個用於建立 PDF 檔案的 API 端點範例:

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() + @"</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 PDF file to browser
        return File(pdf.BinaryData, "application/pdf", "output.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() + @"</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 PDF file to browser
        return File(pdf.BinaryData, "application/pdf", "output.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() & "</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 PDF file to browser
        Return File(pdf.BinaryData, "application/pdf", "output.pdf")
    End Function
End Class
$vbLabelText   $csharpLabel

此控制器操作會建立一個新文件並將 PDF 直接傳送到瀏覽器。 return語句使用了 .NET Core 框架內建的檔案回應處理功能。 ASP.NET Core Web 應用程式可以輕鬆產生報表、發票和其他文件的 PDF 檔案。 您可以透過新增頁首和頁尾頁碼浮水印來改善您的 PDF 檔案。

對於生產應用,可以考慮實現非同步 PDF 生成,以提高效能和可擴充性。 您也可以使用多執行緒功能進行批次處理。 該庫支援記憶體流操作,可在雲端環境中實現高效的資源利用。

ASP.NET 產生的 PDF 是什麼樣子的?

! PDF 檢視器顯示了 2025 年 10 月 30 日產生的月度銷售報告,其中包含產品 A(5,000 美元)和產品 B(3,500 美元)的銷售數據。本報告展示了由 ASP.NET Core 控制器操作產生的簡潔表格格式和專業佈局。

對於 MVC 應用程序,您還可以從Razor 視圖渲染 HTML 以建立 PDF

[HttpGet]
public async Task<IActionResult> DownloadInvoice(int id)
{
    // Get invoice data from database
    var model = await GetInvoiceData(id);
    // Render Razor view to HTML string
    var html = await RenderViewToString("Invoice", model);
    // Convert HTML to PDF document
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf(html);
    // Return PDF file with appropriate file path
    return File(pdf.BinaryData, "application/pdf", $"invoice-{id}.pdf");
}
[HttpGet]
public async Task<IActionResult> DownloadInvoice(int id)
{
    // Get invoice data from database
    var model = await GetInvoiceData(id);
    // Render Razor view to HTML string
    var html = await RenderViewToString("Invoice", model);
    // Convert HTML to PDF document
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf(html);
    // Return PDF file with appropriate file path
    return File(pdf.BinaryData, "application/pdf", $"invoice-{id}.pdf");
}
<Attribute(HttpGet)>
Public Async Function DownloadInvoice(id As Integer) As Task(Of IActionResult)
    ' Get invoice data from database
    Dim model = Await GetInvoiceData(id)
    ' Render Razor view to HTML string
    Dim html = Await RenderViewToString("Invoice", model)
    ' Convert HTML to PDF document
    Dim renderer = New ChromePdfRenderer()
    Dim pdf = renderer.RenderHtmlAsPdf(html)
    ' Return PDF file with appropriate file path
    Return File(pdf.BinaryData, "application/pdf", $"invoice-{id}.pdf")
End Function
$vbLabelText   $csharpLabel

本範例展示了 ASP.NET Core 如何與 IronPDF 集成,以從Razor 範本產生 PDF。 從視圖渲染的頁面會產生專業的PDF文件。 對於Razor Pages 應用程序,您也有類似的選項。 您也可以從Blazor 元件MAUI 應用程式產生 PDF。

該庫為不同的 ASP.NET Core 場景提供專門支持,包括 MVC Core 中的CSHTML 到 PDF 轉換MVC 框架整合ASPX 頁面渲染。 對於現代應用程序,IronPDF 支援Blazor Server整合和MAUI PDF 檢視

有哪些進階PDF生成功能?

IronPDF 提供眾多用於專業 PDF 產生的進階功能。 您可以合併多個 PDF 文件新增數位簽名使用密碼實現 PDF 安全性,或建立符合 PDF/A 標準的文件以進行長期存檔。 該庫還支援建立和填寫PDF 表單,使其成為自動化文件處理的理想選擇。

對於效能要求高的應用,IronPDF 提供非同步方法多執行緒支援。 您也可以透過壓縮線性化來提高 PDF 檔案的瀏覽速度,從而加快網頁瀏覽速度。 此庫可處理影像轉換,包括支援SVG 圖形Base64 編碼影像

其他進階功能包括:

安全功能包括: 加密與解密 -支援 HSM 的數位簽名

.NET Core 中 PDF 產生的下一步是什麼?

IronPDF 讓在 .NET Core 中產生 PDF 變得簡單且有效率。 其 Chrome 渲染引擎可確保從 HTML 內容建立 PDF 時的精確保真度,而使用者友善的 API 則消除了與 PDF 操作相關的典型學習曲線。 PDF 程式庫為 ASP.NET Core 開發人員提供完整的文件和積極維護的支援。 它支援在各種平台上部署,包括Azure FunctionsAWS LambdaDocker 容器

無論您是建立用於商業用途的 PDF 文件,還是建立企業級 Web 應用程序,IronPDF 都能提供專業 PDF 創建所需的工具,並提供商業許可選項。 該庫憑藉其現代化的 API 設計和卓越的渲染能力,比其他 PDF 解決方案更具競爭優勢

立即開始免費試用,我們提供的授權選項適用於各種規模的團隊,從個人開發人員企業部署。 IronPDF 也提供詳細的教學程式碼範例,幫助您快速上手,滿足您的 PDF 生成需求。

常見問題解答

如何在 .NET Core 中生成 PDF 文件?

您可以在 .NET Core 中使用 IronPDF 生成 PDF 文件,IronPDF 允许您使用其先进的 Chrome 渲染引擎从 HTML、URL 和 Razor 视图创建 PDF。

使用 IronPDF 生成 PDF 有哪些優勢?

IronPDF 具備多項優勢,包括易於整合、支援像素完美渲染,以及能夠從 HTML 和 URL 等各種來源建立 PDF,因此非常適合建立需要產生 PDF 的 Web 應用程式。

IronPDF 能否處理複雜的 PDF 生成任務?

是的,IronPDF for .NET 旨在處理 .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 在 Web 應用程式中有哪些常見用例?

IronPDF 的常見用例包括為發票、報告和 Web 應用程式所需的任何其他商業文件產生 PDF。

Curtis Chau
技術撰稿人

Curtis Chau 擁有電腦科學學士學位(卡爾頓大學),專長於前端開發,精通 Node.js、TypeScript、JavaScript 和 React。Curtis 對製作直覺且美觀的使用者介面充滿熱情,他喜歡使用現代化的架構,並製作結構良好且視覺上吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 也有濃厚的興趣,他喜歡探索整合硬體與軟體的創新方式。在空閒時間,他喜歡玩遊戲和建立 Discord bots,將他對技術的熱愛與創意結合。