跳過到頁腳內容
使用IRONPDF

使用 IronPDF 建立 .NET Core PDF 產生器

什麼因素決定了.NET Core PDF產生器的可靠性?

在 .NET Core 應用程式中建立 PDF 文件需要一個能夠處理 HTML 內容、保持格式並支援跨平台部署的 PDF 程式庫。 說實話,如果你正在開發 ASP.NET Core Web API 或控制台應用程序,一個強大的 .NET Core PDF 生成器可以簡化從各種來源建立文件的整個過程。 這能節省大量時間。

立即開始免費試用,了解為什麼開發人員選擇 IronPDF 來產生生產環境中的關鍵 PDF 檔案。

IronPDF 是一款功能全面的 .NET Core PDF 庫,表現突出。 它使用 Chrome 渲染引擎建立像素級精確度的 PDF 文件。 這種方法意味著您無需學習複雜的 PDF API 或處理佈局問題; 您可以利用現有的 HTML 和 CSS 技能來產生 PDF 檔案。 該庫提供了豐富的文件程式碼範例,使實作變得簡單易行。

IronPDF 如何簡化 PDF 文件的產生 .NET Core 中?

IronPDF 將傳統上複雜的 PDF 生成任務轉化為任何 .NET 開發人員都可以實現的簡單程式碼。 該程式庫使用ChromePdfRenderer類別將 HTML 字串、文件或 URL 直接轉換為 PDF 格式。 這種流暢的 API 方法提供了廣泛的自訂選項,同時在不同平台上保持了高效能。

IronPDF真正的強大之處在於它如何處理將HTML內容轉換為專業的PDF文件。 開發者無需手動定位或繪製元素,只需編寫帶有 CSS 樣式的標準 HTML,該程式庫即可無縫處理轉換。 生成的 PDF 文件並非僅僅是文字圖像; 它們是功能齊全的文檔,用戶可以在其中選擇和搜尋文字。

除了基本的 PDF 產生功能外,您還可以使用 IronPDF 的高級編輯工具來編輯 PDF 文件。 使用這些功能,您可以合併文件、新增浮水印、註解等等。 請查看相關教程,以獲取這些工具的更多範例原始程式碼。

透過 NuGet 套件管理器安裝 IronPDF

在 Visual Studio 中開始使用 IronPDF 只需要安裝一個 NuGet 套件。 開啟 NuGet 套件管理器控制台,確保在"預設項目"下拉清單中選擇了您的專案名稱,然後執行以下命令:

Install-Package IronPdf
Install-Package IronPdf
SHELL

這個 NuGet 套件提供了在 .NET Core 應用程式中建立、編輯和產生 PDF 檔案所需的所有功能。 該安裝程式會自動配置您的項目,以便在 Windows、Linux 和 Docker 環境中產生 PDF 檔案。 它還提供對各種 .NET 版本的支持,包括 .NET Framework 4.6.2+、.NET Core 3.1+ 和 .NET Standard 2.0+。

使用 HTML 建立您的第一個 PDF 文檔

讓我們以一個實際的發票文件範例來建立 PDF 文件。 這示範如何從 HTML 內容產生具有正確格式和資料綁定的 PDF 檔案:

using IronPdf;
using System.IO;
using System.Text;
// Initialize the Chrome renderer
var renderer = new ChromePdfRenderer();
// Configure rendering options
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
// Create HTML content for invoice
var htmlBuilder = new StringBuilder();
htmlBuilder.Append(@"
    <html>
    <head>
        <style>
            body { font-family: Arial, sans-serif; font-size: 14px; }
            .invoice-header { background: #f0f0f0; padding: 20px; }
            table { width: 100%; border-collapse: collapse; }
            th, td { padding: 10px; text-align: left; border-bottom: 1px solid #ddd; }
        </style>
    </head>
    <body>
        <div class='invoice-header'>
            <h1>Invoice #INV-2024-001</h1>
            <p>Date: " + DateTime.Now.ToString("MM/dd/yyyy") + @"</p>
        </div>
        <table>
            <tr><th>Item</th><th>Quantity</th><th>Price</th></tr>");
// Example of dynamically adding table rows with a for loop
for (int i = 0; i < 3; i++)
{
    htmlBuilder.Append($"<tr><td>Product #{i + 1}</td><td>{i + 1}</td><td>$25.00</td></tr>");
}
htmlBuilder.Append(@"
        </table>
        <p><strong>This is a new paragraph with a summary.</strong></p>
    </body>
    </html>");
// Generate PDF from HTML string
PdfDocument pdfObject = renderer.RenderHtmlAsPdf(htmlBuilder.ToString());
// Save the PDF file
pdfObject.SaveAs("invoice.pdf");
using IronPdf;
using System.IO;
using System.Text;
// Initialize the Chrome renderer
var renderer = new ChromePdfRenderer();
// Configure rendering options
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
// Create HTML content for invoice
var htmlBuilder = new StringBuilder();
htmlBuilder.Append(@"
    <html>
    <head>
        <style>
            body { font-family: Arial, sans-serif; font-size: 14px; }
            .invoice-header { background: #f0f0f0; padding: 20px; }
            table { width: 100%; border-collapse: collapse; }
            th, td { padding: 10px; text-align: left; border-bottom: 1px solid #ddd; }
        </style>
    </head>
    <body>
        <div class='invoice-header'>
            <h1>Invoice #INV-2024-001</h1>
            <p>Date: " + DateTime.Now.ToString("MM/dd/yyyy") + @"</p>
        </div>
        <table>
            <tr><th>Item</th><th>Quantity</th><th>Price</th></tr>");
// Example of dynamically adding table rows with a for loop
for (int i = 0; i < 3; i++)
{
    htmlBuilder.Append($"<tr><td>Product #{i + 1}</td><td>{i + 1}</td><td>$25.00</td></tr>");
}
htmlBuilder.Append(@"
        </table>
        <p><strong>This is a new paragraph with a summary.</strong></p>
    </body>
    </html>");
// Generate PDF from HTML string
PdfDocument pdfObject = renderer.RenderHtmlAsPdf(htmlBuilder.ToString());
// Save the PDF file
pdfObject.SaveAs("invoice.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

這段程式碼透過將 HTML 標記與動態資料結合,產生專業的發票文件。 請注意,我們在 CSS 中新增了自訂字體大小,並使用 for 迴圈動態產生了表格行。我們也加入了一個新的段落元素(<p> )。 RenderHtmlAsPdf方法傳回一個PdfDocument對象,讓您可以完全控制產生的檔案。如需了解更多進階 HTML 轉 PDF 場景,請參閱HTML 轉 PDF 教學

輸出

下面的螢幕截圖顯示了我們的範例發票完美地渲染成 PDF 文件格式。

使用 IronPDF 建立 .NET Core PDF 產生器:圖 1 - HTML 轉 PDF 的範例輸出

從網址和網頁產生PDF文件

IronPDF 擅長將現有網頁轉換為 PDF 檔案。 當從報表儀表板或基於 Web 的表單產生 PDF 文件時,此功能非常寶貴:

// Create a new ChromePdfRenderer instance
var renderer = new ChromePdfRenderer();
// Set custom page size and margins
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
renderer.RenderingOptions.WaitFor.RenderDelay(1000);
// Convert a URL to PDF
PdfDocument pdfDocument = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page");
// Save to file path
string filePath = Path.Combine(Directory.GetCurrentDirectory(), "webpage.pdf");
pdfDocument.SaveAs(filePath);
// Create a new ChromePdfRenderer instance
var renderer = new ChromePdfRenderer();
// Set custom page size and margins
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
renderer.RenderingOptions.WaitFor.RenderDelay(1000);
// Convert a URL to PDF
PdfDocument pdfDocument = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page");
// Save to file path
string filePath = Path.Combine(Directory.GetCurrentDirectory(), "webpage.pdf");
pdfDocument.SaveAs(filePath);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

該函式庫負責處理 JavaScript 執行,載入圖片和樣式表等外部資源,並在轉換過程中保持響應式佈局。 這使其非常適合從現有 Web 應用程式建立報告。 請參閱詳細指南,以了解有關將 URL 轉換為 PDF 的更多資訊。

使用 IronPDF 建立 .NET Core PDF 產生器:圖 2 - PDF 範例輸出的 URL

複雜報表的高階PDF功能

專業PDF文件通常除了基本內容外,還需要其他元素。 IronPDF 提供多種方法來增強您的 PDF 文檔,包括新增頁首、頁尾和浮水印。 頁首和頁尾 API提供對文件呈現方式的完全控制:

// Create renderer with advanced options
var renderer = new ChromePdfRenderer();
// Add headers and footers
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
    MaxHeight = 25,
    HtmlFragment = "<div style='text-align:center'>Company Report</div>"
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
    MaxHeight = 25,
    HtmlFragment = "<div>Page {page} of {total-pages}</div>"
};
// Generate PDF with form fields
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
string formHtml = @"
    <form>
        <label>Name:</label>
        <input type='text' name='name'/>
        <label>Email:</label>
        <input type='email' name='email'/>
        <button type='submit'>Submit</button>
    </form>";
PdfDocument formDocument = renderer.RenderHtmlAsPdf(formHtml);
// Create renderer with advanced options
var renderer = new ChromePdfRenderer();
// Add headers and footers
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
    MaxHeight = 25,
    HtmlFragment = "<div style='text-align:center'>Company Report</div>"
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
    MaxHeight = 25,
    HtmlFragment = "<div>Page {page} of {total-pages}</div>"
};
// Generate PDF with form fields
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
string formHtml = @"
    <form>
        <label>Name:</label>
        <input type='text' name='name'/>
        <label>Email:</label>
        <input type='email' name='email'/>
        <button type='submit'>Submit</button>
    </form>";
PdfDocument formDocument = renderer.RenderHtmlAsPdf(formHtml);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

本範例示範如何在 PDF 文件的所有頁面中新增一致的頁眉,以及如何在 PDF 文件中建立互動式表單欄位。 系統自動處理頁碼和表單欄位渲染。

使用 IronPDF 建立 .NET Core PDF 產生器:圖 3 - 表單 PDF 範例輸出

在 ASP.NET Core 中使用非同步操作優化效能

對於處理多個 PDF 生成請求的 Web 應用程序,非同步操作可以提高回應速度:

public async Task<byte[]> GeneratePdfAsync(string htmlContent)
{
    var renderer = new ChromePdfRenderer();
    // Configure for optimal performance
    renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
    // Generate PDF asynchronously
    PdfDocument PDF = await renderer.RenderHtmlAsPdfAsync(htmlContent);
    // Return as byte array for API responses
    return PDF.BinaryData;
}
// Usage in ASP.NET Core controller
[HttpPost]
public async Task<IActionResult> CreateInvoice([FromBody] InvoiceData data)
{
    string HTML = BuildInvoiceHtml(data);
    byte[] pdfBytes = await GeneratePdfAsync(HTML);
    return File(pdfBytes, "application/pdf", "invoice.pdf");
}
public async Task<byte[]> GeneratePdfAsync(string htmlContent)
{
    var renderer = new ChromePdfRenderer();
    // Configure for optimal performance
    renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
    // Generate PDF asynchronously
    PdfDocument PDF = await renderer.RenderHtmlAsPdfAsync(htmlContent);
    // Return as byte array for API responses
    return PDF.BinaryData;
}
// Usage in ASP.NET Core controller
[HttpPost]
public async Task<IActionResult> CreateInvoice([FromBody] InvoiceData data)
{
    string HTML = BuildInvoiceHtml(data);
    byte[] pdfBytes = await GeneratePdfAsync(HTML);
    return File(pdfBytes, "application/pdf", "invoice.pdf");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

這種模式使得ASP.NET Core 應用程式能夠有效率地產生 PDF 文件,而不會阻塞線程,這相比於像經典 ASP 這樣的舊式 Web 技術來說是一項巨大的改進,因為在經典 ASP 中,文件產生通常是一個繁瑣的過程。 對於需要直接向客戶端傳回檔案的 API 端點來說,位元組數組輸出非常適用。

請注意File()方法如何傳回具有正確application/pdf內容類型的 PDF,從而確保瀏覽器正確處理回應。 處理大型 PDF 文件或多個並發請求時,這種非同步方法可以保持最佳的系統效能。 有關非同步模式的更多信息,請參閱官方 ASP.NET Core 文件

部署注意事項

IronPDF支援在各種環境中部署。 對於 Docker 容器,請確保您按照Docker 部署指南中的說明,在 Dockerfile 中包含必要的依賴項。 該程式庫可在 Windows Server、Linux 發行版以及 Azure 和 AWS 等雲端平台上無縫運作。 每個環境可能需要對字體和渲染進行特定配置,但核心 API 保持一致。 微軟關於 .NET Core 部署的文檔提供了更多針對生產環境的最佳實踐。

立即開始建立您的 PDF 產生器

IronPDF 將 .NET Core 中的 PDF 產生從複雜的挑戰轉變為簡單的實作。 它支援 HTML 內容,功能豐富,並且具有一致的跨平台行為,是需要可靠地產生 PDF 文件的開發人員的理想選擇。

準備好實現您自己的 PDF 文件產生器了嗎? 首先進行免費試用,即可無限制地體驗所有功能。 該文件提供了大量的範例和指南,可幫助您建立符合您特定要求的專業 PDF 文件。 無論您是建立發票系統、產生複雜報告,或是轉換現有 Web 內容,IronPDF 都能提供對應的工具,幫助您獲得像素級完美的結果。

對於生產環境部署,請探索適合您專案規模的授權選項。 投資高品質的 PDF 庫可以獲得豐厚的回報,包括縮短開發時間,以及在所有 .NET 應用程式中獲得一致、專業的輸出。

常見問題解答

IronPDF 在 .NET Core 的主要功能是什麼?

IronPDF 主要用於在 .NET Core 應用程式中將 HTML 轉換為 PDF,使開發人員能夠建立具有像素級完美渲染效果的發票、報告和其他文件。

IronPDF 如何確保像素級完美渲染?

IronPDF 使用先進的渲染技術,將 HTML、CSS 和 JavaScript 精確地轉換為高品質的 PDF 文檔,從而確保像素級的完美渲染。

IronPDF 能否用於在 .NET Core 中產生報表?

是的,IronPDF 能夠透過將基於 HTML 的報告範本轉換為專業級的 PDF 文檔,在 .NET Core 中產生詳細的報告。

是否可以使用 IronPDF 將網頁轉換為 PDF?

當然,IronPDF 可以將整個網頁轉換為 PDF,同時保留原始 HTML 和 CSS 中指定的佈局和樣式。

IronPDF有哪些常見的使用案例?

IronPDF 的常見用途包括產生發票、建立業務報告、將 HTML 表單轉換為 PDF 以及存檔 Web 內容。

IronPDF支持.NET Core應用程序嗎?

是的,IronPDF 完全支援 .NET Core 應用程序,使其成為跨不同 .NET 平台工作的開發人員的多功能選擇。

IronPDF在HTML轉PDF過程中如何處理CSS和JavaScript?

IronPDF 在轉換過程中處理 CSS 和 JavaScript,以確保 HTML 的視覺佈局和動態內容在 PDF 中準確呈現。

IronPDF 能否根據 HTML 字串產生 PDF 檔案?

是的,IronPDF 可以從 HTML 字串產生 PDF,允許開發人員從其應用程式中產生的 HTML 內容動態建立 PDF 文件。

是否可以使用 IronPDF 自訂 PDF 的外觀?

IronPDF 提供豐富的自訂選項,讓開發人員可以使用 HTML 和 CSS 指定自訂頁首、頁尾和樣式來控制 PDF 的外觀。

與其他 .NET PDF 函式庫相比,IronPDF 有哪些優勢?

IronPDF 具有多項優勢,包括易於與 .NET Core 整合、高品質渲染、支援複雜的文件佈局以及對 HTML、CSS 和 JavaScript 的強大處理能力。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。