跳過到頁腳內容
使用IRONPDF

如何在 Dotnet Core 中生成 PDF 文件

對於需要產生發票、報告和其他業務文件的 PDF 文件的 Web 應用程式開發人員來說,在 .NET Core 應用程式中建立 PDF 文件是一項常見的任務。 IronPDF 提供了一個強大的 PDF 庫,它透過其 Chrome 渲染引擎簡化了在 ASP.NET Core 中產生 PDF 的過程,每次都能產生像素級完美的 PDF 檔案。在本文中,我們將探討如何在 .NET 環境中處理各種 PDF 生成任務。

.NET Core 產生 PDF 文件,它是如何運作的?

IronPDF 使用基於 Google Chrome 的 WebKit 渲染引擎將 HTML 內容渲染成 PDF 檔案。 這種建立 PDF 的方法意味著您可以利用現有的 HTML 標籤和 CSS 知識來建立 PDF,而無需學習複雜的 PDF 生成功能或應對陡峭的學習曲線。 PDF庫可以自動從網頁產生PDF文件。

該程式庫的流暢 API 允許開發人員從 HTML 頁面、URL 或 HTML 內容字串產生 PDF 文件。 IronPDF 將 HTML 轉換為 PDF 時,能夠保留複雜的佈局、CSS 樣式、JavaScript 執行,甚至依賴動態內容的 Web 內容。 這使其成為需要在其 .NET 應用程式中使用功能豐富的 PDF 轉換功能的 .NET 開發人員的理想工具。 .NET 函式庫在產生 PDF 檔案方面表現出色,精準度極高。

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

使用 IronPDF 只需要透過 NuGet 套件管理器安裝命令列工具。 開啟 Visual Studio 中的套件管理員控制台,並執行下列指令:

Install-Package IronPdf

如何從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");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

上面的程式碼只用幾行程式碼就建立了一個新的 PDF 文件。 ChromePdfRenderer類別提供了從 HTML 產生 PDF 檔案的核心功能。 pdf物件包含您的 PDF 文檔,可以儲存到指定的文件路徑。

進階 HTML 轉 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>$749</td>
            </tr>
        </table>
        <p class='total'>Total: $749.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>$749</td>
            </tr>
        </table>
        <p class='total'>Total: $749.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");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

此範例展示了 IronPDF 處理具有 CSS 樣式的複雜佈局的能力,包括字體大小和字體系列設定。 PDF 庫處理 HTML 標記以建立 PDF 文檔,從而保持 HTML 頁面的確切外觀。 以上程式碼展示了 ASP.NET Core 應用程式如何為業務文件產生 PDF 輸出。

輸出

如何在 .NET Core 中產生 PDF 文件:圖 1 - HTML 轉 PDF 輸出 PDF 文件

如何將網頁轉換為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("https://example.com");
// Save the PDF document
pdf.SaveAs("webpage.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();
// Render a webpage URL to PDF
var pdf = renderer.RenderUrlAsPdf("https://example.com");
// Save the PDF document
pdf.SaveAs("webpage.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

.NET 程式庫在產生 PDF 檔案時會自動處理 JavaScript 執行、外部資源和響應式設計。 renderer物件提供了對高級功能的訪問,用於自訂網頁如何轉換為 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("https://en.wikipedia.org/wiki/Main_Page");
// 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("https://en.wikipedia.org/wiki/Main_Page");
// Save the PDF document
pdf.SaveAs("webpage.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

這些自訂選項可確保動態內容在 PDF 轉換之前完全加載,從而產生準確的 PDF 檔案。 以上程式碼示範了 ASP.NET Core 如何從網頁產生 PDF,並實現完美的渲染效果。

如何在 .NET Core 中產生 PDF 檔案:圖 2 - 網頁與從網頁渲染的 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");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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

輸出 PDF 檔案

如何在 .NET Core 中產生 PDF 檔案:圖 3 - 在 ASP.NET 中建立的 PDF

對於 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");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

此程式碼範例展示了 ASP.NET Core 如何與 IronPDF 集成,以從 Razor 範本產生 PDF 文件。 從視圖渲染的頁面會產生專業的PDF文件。

結論

IronPDF 將 .NET Core 中產生 PDF 文件的流程簡化為一個高效率的流程。 其 Chrome 渲染引擎可確保從 HTML 內容產生 PDF 檔案時的完美保真度,而直覺的 API 則消除了通常與 PDF 操作相關的學習曲線。 PDF 程式庫為 ASP.NET Core 開發人員提供良好的文件和積極維護的支援。

無論您是建立用於商業用途的 PDF 文件,還是建立企業級 Web 應用程序,IronPDF 都能提供專業 PDF 創建所需的工具,並提供商業許可選項。 開發人員一直稱讚 IronPDF 的易用性和渲染品質。

立即開始免費試用,我們提供適合各種規模團隊的授權選項。

常見問題解答

如何在 .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 機器人,結合科技與創意的樂趣。