IRONSOFTWAREHOME
使用IRONPDF

如何建立 .NET Core PDF 生成器

Curtis Chau
Curtis Chau
Updated: 2026年1月19日

IronPDF 提供基於 Chrome 的渲染引擎,將 HTML、CSS 和 JavaScript 轉換為 .NET Core 應用程式中的 PDF 文件,支援跨 Windows、Linux 和 Docker 容器的跨平台部署,安裝 NuGet 即可輕鬆完成。

什麼使 .NET Core PDF 生成器可靠?

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

開始您的免費試用,了解為什麼開發者在生產環境的任務關鍵 PDF 生成中選擇 IronPDF。

IronPDF 以全面的 .NET Core PDF 程式庫著稱。 它使用 Chrome 渲染引擎建立具有像素級準確性的 PDF 文件。 這種方法意味著您不需要學習複雜的 PDF API 或苦於處理佈局問題; 您可以利用現有的 HTML 和 CSS 技能生成 PDF 文件。 程式庫的廣泛文件程式碼範例使實施變得簡單。

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

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

為什麼基於 HTML 的 PDF 生成對開發者來說重要?

真正的威力在於 IronPDF 如何處理將 HTML 內容轉換為專業 PDF 文件。 而不是手動定位或需要繪製元素,開發者撰寫標準的 HTML 和 CSS 樣式,程式庫可以無縫地進行轉換。 生成的 PDF 文件不僅僅是文字的圖片; 它們是功能齊全的文件,使用者可以選擇和搜尋文字。 對於容器化部署,此方法消除了與字體管理UTF-8 字元編碼相關的常見問題,這些是Docker 環境的關鍵考慮因素。

有哪些高級編輯功能可供使用?

除了基本的 PDF 生成,您還可以使用 IronPDF 的高級編輯工具編輯 PDF 文件。 借助這些工具,您可以合併文件,新增水印註解等。 程式庫支援文件驗證的數位簽名以及優化文件大小以便網路傳輸的PDF 壓縮。 查看相關的教程,以查看這些工具的更多範例原始程式碼。 對於 DevOps 團隊,這些功能使自動化文件處理工作流程成為可能,無需外部依賴。

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

在 Visual Studio 中開始使用 IronPDF 只需安裝一個 NuGet 套件。 打開 NuGet 套件管理器控制台,確保已在"預設專案"下拉列表中選擇了您的專案名稱,然後輸入以下命令:

PM > Install-Package IronPdf

NuGet 套件包含什麼?

這個單一的 NuGet 套件提供在您的 .NET Core 應用程式中建立、編輯和生成 PDF 文件所需的所有功能。 安裝會自動為WindowsLinuxDocker 環境上的 PDF 生成配置您的專案。 它還支援各種 .NET 版本,包括 .NET Framework 4.6.2+、.NET Core 3.1+ 和 .NET Standard 2.0+。 對於容器化部署,該套件包含優化為最小圖像大小的本機依賴項IronPdf.Slim 變體為具有嚴格大小限制的環境提供了額外的部署靈活性。

如何從 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");

此程式碼通過將 HTML 標記與動態資料相結合,建立專業的發票文件。 請注意,我們在 CSS 中新增了一個自定義字體大小,並使用 for 迴圈動態生成表格行。我們還新增了一個新的段落元素。 該 RenderHtmlAsPdf 方法返回一個 PdfDocument 物件,使您可以完全控制生成的文件。對於其他高級 HTML 到 PDF 的場景,請查看更多的HTML 到 PDF 教程渲染選項提供了對邊距紙張大小視窗設定的廣泛控制。

生成的 PDF 輸出看起來如何?

以下截圖顯示了將我們的發票範例完美渲染為 PDF 文件格式。

PDF viewer displaying an invoice document with invoice number INV-2024-001, showing a table with three products priced at $25.00 each, generated from HTML using .NET Core.

如何從 URL 和網頁生成 PDF 文件?

IronPDF 在將現有網頁轉換為 PDF 文件方面表現出色。 此功能在從報告儀表板或基於網頁表單生成 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("___PROTECTED_URL_51___");
// Save to file path
string filePath = Path.Combine(Directory.GetCurrentDirectory(), "webpage.pdf");
pdfDocument.SaveAs(filePath);
// For containerized environments, consider using environment variables
string outputPath = Environment.GetEnvironmentVariable("PDF_OUTPUT_PATH") ?? "/app/output";
pdfDocument.SaveAs(Path.Combine(outputPath, "webpage.pdf"));

為什麼 JavaScript 支援對於 URL 轉換很重要?

該程式庫處理 JavaScript 執行,載入圖像和樣式表等外部資源,並在轉換過程中保持響應佈局。 這使得它非常適合從現有網頁應用程式生成報告。 WaitFor 配置確保在渲染前載入所有動態內容。 對於需要身份驗證的網站,IronPDF 支援cookieHTTP 標頭TLS 網站登錄。 在詳細指南中了解更多將 URL 轉換為 PDF的過程。

 維基百科首頁轉換為 PDF 格式的截圖,顯示主頁佈局,包括特色文章、新聞部分和導航元素

哪些高級 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: <input type='text' name='name' /></label>
        <label>Email: <input type='email' name='email' /></label>
        <button type='submit'>Submit</button>
    </form>";
PdfDocument formDocument = renderer.RenderHtmlAsPdf(formHtml);
// Add metadata for document management systems
formDocument.MetaData.Author = "Automated System";
formDocument.MetaData.CreationDate = DateTime.Now;
formDocument.SaveAs("form-document.pdf");

標頭和表單如何增強專業文件?

此範例演示如何在所有頁面上新增一致的標頭並在 PDF 文件中建立互動式表單字段。 系統自動處理頁碼表單字段渲染。 對於複雜的表單,您還可以使用程式碼填寫現有的 PDF 表單元資料屬性可與文件管理系統整合。

 PDF 文件顯示一個簡單的表單,其中有

如何在 ASP.NET Core 中使用非同步操作優化性能?

對於處理多個 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");
}
// Health check endpoint for monitoring
[HttpGet("/health/pdf-generator")]
public async Task<IActionResult> HealthCheck()
{
    try
    {
        var renderer = new ChromePdfRenderer();
        var testPdf = await renderer.RenderHtmlAsPdfAsync("<p>Test</p>");
        return Ok(new { status = "healthy", renderer = "operational" });
    }
    catch (Exception ex)
    {
        return StatusCode(503, new { status = "unhealthy", error = ex.Message });
    }
}

為什麼非同步模式對於網頁應用程式至關重要?

這種模式使 ASP.NET Core 應用程式可以高效地生成 PDF 文件而不會阻塞執行緒,這比舊版網頁技術中文件生成通常繁瑣的情況有了巨大改善。 字節陣列輸出對於需要直接將文件返回給使用者的 API 端點來說完全合適。 對於高流量場景,探索並行 PDF 生成多執行緒渲染技術。 健康檢查端點為容器化部署提供基本監控。

控制器中的文件響應處理如何運作?

請注意,File() 方法以正確的 application/pdf 內容型別返回 PDF,從而確保瀏覽器正確處理響應。 在處理大 PDF 文件或多個並行請求時,這種非同步方法保持最佳系統性能。 對於記憶體受限環境,系統可直接流式傳輸 PDF 而不需輸出到磁盤。 有關非同步模式的更多資訊,請參閱官方 ASP.NET Core 文件

生產部署的關鍵考量是什麼?

IronPDF 支援哪些平台和環境?

IronPDF 支援在多種環境中部署。 對於 Docker 容器,確保在 Dockerfile 中包含必要的依賴項,如Docker 部署指南中所示。 該程式庫在 Windows Server、Linux 發行版以及AzureAWS等雲平台上一樣運行無阻。 每個環境可能需要特定的字體和渲染配置,但核心 API 保持一致。 對於 Kubernetes 部署,考慮使用遠程引擎配置將 PDF 渲染從應用程式 pod 分離。 該Microsoft .NET Core 部署文件提供了生產環境的更多最佳實踐。

# Example multi-stage Dockerfile for IronPDF
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
WORKDIR /source

# Copy and restore
COPY *.csproj .
RUN dotnet restore

# Copy and publish
COPY . .
RUN dotnet publish -c Release -o /app

# Runtime image
FROM mcr.microsoft.com/dotnet/aspnet:8.0
WORKDIR /app
COPY --from=build /app .

# Install IronPDF dependencies for Linux
RUN apt-get update \
    && apt-get install -y libgdiplus libc6-dev \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

EXPOSE 80
ENTRYPOINT ["dotnet", "YourApp.dll"]
Text

準備好今天開始構建您的 PDF 生成器了嗎?

IronPDF 將 .NET Core 中的 PDF 生成從一個複雜的挑戰轉變為一個簡單的實施過程。 支援 HTML 內容、豐富的功能集和一致的跨平台行為,這是需要可靠生成 PDF 文件的開發者的理想選擇。 程式庫的性能優化功能確保容器化環境中高效的資源使用,對 Linux ARM 的本機支持提供了在現代雲端基礎架構上的部署可能。

準備好實現您自己的 PDF 文件生成器了嗎? 從免費試用開始來探索所有功能,無限制。 文件提供廣泛的範例和指南,幫助您建立滿足精確要求的專業 PDF 文件。 無論您是在構建發票系統、生成複雜報告還是轉換現有網頁內容,IronPDF 都提供工具來實現像素完美的結果。 查看演示,了解現實世界中的實施案例。

對於生產部署,探索適合您專案規模的許可選項。 投資於高質量的 PDF 程式庫可通過減少開發時間和一致的專業輸出來帶來紅利,適用於所有 .NET 應用程式。 考慮許可擴展以獲得長期支持,並升級以始終獲得最新功能。

Curtis Chau
技術作家

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

...
閱讀更多

相關文章

Key in blue circle

立即免費取得 30 天試用金鑰

Your trial license will be sent to your email address

無任何限制。100% 解鎖。無需信用卡。

bullet_checked無需信用卡或建立帳號無任何限制。100% 解鎖。無需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
預訂您的免費現場演示
Booking Badge

受到全球數百萬工程師的信任

Iron Software的客戶標誌
獲取您的無義務諮詢
填寫以下表格或電子郵件sales@ironsoftware.com
您的詳細資訊將始終保密
受到全球數百萬工程師的信任
Iron Software的客戶標誌
立即獲取您的30天試用金鑰
無需信用卡或帳戶建立