IRONSOFTWAREHOME

HTML 轉 PDF 在 C# .NET 中

Jacob Mellor,首席技術官 @ Team Iron
Jacob Mellor
Updated: 2026年9月17日

作為 IronPDF 的開發者,我們知道 HTML 轉 PDF 的轉換需要產生準確、高品質的結果以滿足客戶的期望。本 C# 教程將指導您為您的應用程式、專案和網站構建一個 HTML 轉 PDF 的轉換器。我們將開發一個 C# HTML 轉 PDF 的轉換器,IronPDF 生成的輸出 PDF 文件將與 Google Chrome 網頁瀏覽器生成的 PDF 完全一致。

  1. 1Install IronPDF with NuGet Package Manager

    PM > Install-Package IronPdf

  2. 2複製並運行這段程式碼片段。

    IronPdf.ChromePdfRenderer
           .StaticRenderHtmlAsPdf("<p>Hello World</p>")
           .SaveAs("pixelperfect.pdf");
  3. 3部署以在您的實時環境中測試

    今天就開始在您的專案中使用IronPDF,透過免費試用
    arrow pointer

概覽


C# 和 VB.NET 的 HTML 轉 PDF 轉換器

在 .NET 中以程式化方式創建 PDF 文件可能是一項令人沮喪的任務。PDF 文件格式的設計更多是為了打印機而不是開發者。而且 C# 沒有內建許多適合的庫或功能來生成 PDF,許多庫需要額外的設置,並且在需要多行代碼來完成簡單任務時會造成進一步的挫折。

我們在本教程中將使用的 C# HTML 轉 PDF 轉換工具是 Iron Software 的 IronPDF,一個非常受歡迎的 C# PDF 生成和編輯庫。該庫具有完整的 PDF 編輯和生成功能,開箱即用,能夠以最少的代碼行數完成您需要的工作,並且擁有 其 50 多個功能的出色文檔。IronPDF 的突出之處在於它支持 .NET 10, .NET 9, .NET 8, .NET 7, .NET 6, 和 .NET 5,.NET Core, .NET Standard, 和 .NET Framework 在 Windows, macOS, Linux, Docker, Azure, 和 AWS 上。

使用 C# 和 IronPDF,"生成 PDF 文件" 或 "HTML 轉 PDF 轉換" 的邏輯是簡單明了的。由於 IronPDF 的先進 Chrome 渲染器,大多數或所有的 PDF 文件設計和佈局將使用現有的 HTML 資產。

這種使用 HTML5 在 .NET 中動態生成 PDF 的方法在控制台應用程式、Windows Forms 應用程式、WPF 以及網站和 MVC 中同樣有效。

IronPDF 還支持使用 Chrome 調試您的 HTML 以獲得像素完美的 PDF。可以在 這裡找到設置此功能的教程。

IronPDF 在 .NET 生態系統內外有多種語言版本。

IronPDF 在開發中是免費的;部署到生產環境並移除試用水印需要許可證密鑰。您可以在 這裡購買許可證 或註冊 免費 30 天試用密鑰


步驟 1

下載並安裝 HTML 轉 PDF C# 庫

Visual Studio - NuGet 套件管理器

在 Visual Studio 中,右鍵單擊您的專案解決方案資源管理器並選擇 Manage NuGet Packages...,然後只需搜索 IronPDF 並將最新版本安裝到您的解決方案中... 點擊 OK 以確認任何彈出對話框。這在 VB.NET 專案中同樣有效。

PM > Install-Package IronPdf

NuGet 網站上的 IronPDF

要全面了解 IronPDF 的功能、兼容性和下載,請查看 NuGet 官方網站上的 IronPDF:https://www.nuget.org/packages/IronPdf

通過 DLL 安裝

另一個選擇是直接安裝 IronPDF DLL。IronPDF 可以從 https://ironpdf.com/packages/IronPdf.zip 下載並手動安裝到專案或 GAC。


如何教程

在 C# .NET 中使用 HTML 字串創建 PDF

如何:將 HTML 字串轉換為 PDF? 在 C# 中創建新的 PDF 文件是一項非常高效且有益的技能。

我們可以簡單地使用 ChromePdfRenderer.RenderHtmlAsPdf 方法將任何 HTML (HTML5) 字串轉換為 PDF。C# HTML 轉 PDF 渲染是由隨 IronPDF NuGet 套件一起提供的完整功能的 Google Chromium 引擎進行的。

using IronPdf;

// ChromePdfRenderer turns HTML into a PDF using IronPDF's embedded Chrome engine
var renderer = new ChromePdfRenderer();

// Render an HTML string. The result is a PdfDocument held in memory
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello IronPdf</h1>");

// Write the PDF to disk
pdf.SaveAs("pixel-perfect.pdf");

RenderHtmlAsPdf 完全支持 HTML5、CSS3、JavaScript 和圖像。如果這些資產位於硬碟上,我們可能需要將 RenderHtmlAsPdf 的第二個參數設置為包含資產的目錄。此方法返回一個 PdfDocument 對象,這是一個用於保存 PDF 信息的類。

IronPDF 將精確渲染您的 HTML 如同在 Chrome 中顯示的一樣

我們有一個完整的教程,專門用於讓您設置 Chrome 進行完整的 HTML 調試,以確保當您選擇渲染時,您在編輯 HTML、CSS 和 JavaScript 時所看到的更改與 IronPDF 的輸出 PDF 完全一致。請在這裡找到教程:如何在 Chrome 中調試 HTML 以創建像素完美的 PDF

基礎 URL 路徑 (BaseUrlOrPath 參數):

using IronPdf;

var renderer = new ChromePdfRenderer();

// The second argument is the base path. Relative URLs in the HTML (the image
// below, but also stylesheets, scripts and fonts) are resolved against it.
var pdf = renderer.RenderHtmlAsPdf("<img src='image1.png'/>", @"C:\MyProject\Assets\");

pdf.SaveAs(@"C:\MyProject\Assets\output.pdf");

所有引用的 CSS 樣式表、圖像和 JavaScript 文件將相對於該基礎路徑,並可以保持在一個整潔且合乎邏輯的結構中。當然,您也可以選擇在線引用圖像、樣式表和資產,包括網頁字體如 Google Fonts 甚至 jQuery。


使用現有 URL 匯出 PDF | URL 轉 PDF

使用 C# 將現有 URL 渲染為 PDF 是非常高效且直觀的。這也允許團隊將 PDF 設計和後端 PDF 渲染工作分配給多個團隊。

讓我們在以下示例中渲染 Wikipedia.com 的一個頁面:

using IronPdf;

var renderer = new ChromePdfRenderer();

// Render a live web page straight from its URL
var pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/PDF");

// The PDF is written next to the executable
pdf.SaveAs("wikipedia.pdf");

您會注意到,我們的 C# 代碼生成的 PDF 中保留了超鏈接甚至 HTML 表單。

在渲染現有網頁時,我們可能希望應用一些技巧:

打印和屏幕 CSS

CSS 媒體類型允許頁面攜帶單獨的打印和屏幕樣式。我們可以指示 IronPDF 渲染 "Print" CSS,這通常更簡單。默認情況下將渲染 "Screen" CSS 樣式,這與您在瀏覽器中看到的相匹配。

using IronPdf;
using IronPdf.Rendering;

var renderer = new ChromePdfRenderer();

// Choose which CSS media type the page is rendered with.
// Screen (the default) renders the page as a browser displays it;
// Print applies the page's @media print rules instead.

// renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Screen;
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;

主文章:像素完美 HTML 轉 PDF 比較

JavaScript

IronPDF 支持 JavaScript、jQuery 甚至 AJAX。我們可能需要指示 IronPDF 等待 JS 或 ajax 完成運行後再渲染我們網頁的快照。

using IronPdf;

var renderer = new ChromePdfRenderer();

// Let the page's JavaScript run before the snapshot is taken
renderer.RenderingOptions.EnableJavaScript = true;

// Give scripts and AJAX calls 500 milliseconds to finish before rendering.
// For event-driven pages, WaitFor.NetworkIdle() or WaitFor.JavaScript() wait
// for a signal instead of a fixed delay.
renderer.RenderingOptions.WaitFor.RenderDelay(500);

我們可以通過渲染 d3.js chord-diagram 文檔頁面 來演示 JavaScript 支持,其圖表在頁面加載時由 JavaScript 繪製:

using IronPdf;

var renderer = new ChromePdfRenderer();

// The chart is drawn by JavaScript, so let it run and give it a moment to finish
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.RenderDelay(500);

// Render the d3.js chord-diagram documentation page, whose charts are drawn by JavaScript
var pdf = renderer.RenderUrlAsPdf("https://d3js.org/d3-chord");

pdf.SaveAs("chart.pdf");

響應式 CSS

使用響應式 CSS 在 .NET 中將 HTML 轉換為 PDF!響應式網頁 是為在瀏覽器中查看而設計的。IronPDF 不會在您的服務器操作系統中打開一個真正的瀏覽器窗口。沒有瀏覽器視口,響應式佈局可能會回退到其最窄的斷點。

我們建議使用 Print css 媒體類型來解決此問題。打印 CSS 通常不應該是響應式的。

using IronPdf;
using IronPdf.Rendering;

var renderer = new ChromePdfRenderer();

// Responsive layouts are designed for a browser viewport, so render the page's
// print stylesheet instead of its screen stylesheet
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;

從 HTML 頁面生成 PDF

我們還可以將硬碟上的任何 HTML 頁面渲染為 PDF。所有相對資產如 CSS、圖像和 js 將被渲染,就像文件是使用 file:// 協議打開的一樣。

using IronPdf;

var renderer = new ChromePdfRenderer();

// Render an HTML file from disk. Relative CSS, image and script paths
// resolve against the file's own folder, as if opened with file://
var pdf = renderer.RenderHtmlFileAsPdf("Assets/TestInvoice1.html");

pdf.SaveAs("Invoice.pdf");

此方法的優勢在於允許開發者在開發過程中在瀏覽器中測試 HTML 內容。我們推薦使用 Chrome,因為它是 IronPDF 的渲染引擎所基於的網頁瀏覽器。

要將 XML 轉換為 PDF,您可以使用 XSLT 模板將 XML 內容打印到 PDF


添加自定義頁眉和頁腳

頁眉和頁腳可以在渲染時添加到 PDF 中,或者使用 IronPDF 添加到現有的 PDF 文件中。

使用 IronPDF,頁眉和頁腳可以使用 TextHeaderFooter 類包含簡單的文本內容,或者使用 HtmlHeaderFooter 類包含圖像和豐富的 HTML 內容。

using IronPdf;
using IronPdf.Rendering;

// Create a PDF from an existing HTML file with rendering options set up front
var renderer = new ChromePdfRenderer
{
    RenderingOptions = new ChromePdfRenderOptions
    {
        // Margins are in millimeters
        MarginTop = 50,
        MarginBottom = 50,

        // Render the page's print stylesheet
        CssMediaType = PdfCssMediaType.Print,

        // Plain-text header: the document title, centered, above a divider line
        TextHeader = new TextHeaderFooter
        {
            CenterText = "{pdf-title}",
            DrawDividerLine = true,
            FontSize = 16
        },

        // Plain-text footer: date and time on the left, page numbers on the right
        TextFooter = new TextHeaderFooter
        {
            LeftText = "{date} {time}",
            RightText = "Page {page} of {total-pages}",
            DrawDividerLine = true,
            FontSize = 14
        }
    }
};

var pdf = renderer.RenderHtmlFileAsPdf("Assets/TestInvoice1.html");

pdf.SaveAs("Invoice.pdf");

// Open the result in the default PDF viewer
System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo
{
    FileName = "Invoice.pdf",
    UseShellExecute = true
});

在以下如何文章中探索所有渲染選項:如何使用渲染選項

HTML 頁眉和頁腳

HtmlHeaderFooter 類允許使用 HTML5 內容生成豐富的頁眉和頁腳,這些內容甚至可以包括圖像和樣式表。

using IronPdf;

var renderer = new ChromePdfRenderer();

// An HTML footer can carry markup, styles and images.
// {page} and {total-pages} are filled in for every page.
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
    HtmlFragment = "<div style='text-align:right'><em style='color:pink'>page {page} of {total-pages}</em></div>"
};

PDF 頁眉和頁腳中的動態數據

我們可以使用佔位符將內容 "郵件合併" 到頁眉和頁腳的文本甚至 HTML 中,例如:

  • {page} 表示當前頁碼
  • {total-pages} 表示 PDF 的總頁數
  • {url} 表示從網頁渲染的 PDF 的 URL
  • {date} 表示今天的日期
  • {time} 表示當前時間
  • {html-title} 表示渲染的 HTML 文檔的 <title>
  • {pdf-title} 表示文檔標題,可以通過 ChromePdfRenderOptions 設置

C# HTML 轉 PDF 轉換設置

我們的用戶和客戶可能期望 PDF 內容以多種方式呈現。
ChromePdfRenderer 類包含一個 RenderingOptions 屬性,可用於設置這些選項。

例如,我們可能希望選擇只接受 "print" 樣式的 CSS3 指令:

using IronPdf;
using IronPdf.Rendering;

var renderer = new ChromePdfRenderer();

// Render the page's @media print CSS rather than its screen styles
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;

renderer.RenderHtmlAsPdf("<html><body><h1>Hello, World!</h1></body></html>").SaveAs("Output.pdf");

我們還可能希望更改打印邊距的大小,以在頁面上創建更多的空白,以便為大型頁眉或頁腳留出空間,甚至為商業印刷的宣傳冊或海報設置零邊距:

using IronPdf;

var renderer = new ChromePdfRenderer();

// Page margins in millimeters. Larger margins leave room for headers and
// footers; set them to 0 for edge-to-edge brochures and posters.
renderer.RenderingOptions.MarginTop = 50;
renderer.RenderingOptions.MarginBottom = 50;
renderer.RenderingOptions.MarginLeft = 20;
renderer.RenderingOptions.MarginRight = 20;

我們可能希望開啟或關閉 HTML 元素的背景圖像:

using IronPdf;

var renderer = new ChromePdfRenderer();

// Include CSS background colors and images in the PDF (set false to drop them)
renderer.RenderingOptions.PrintHtmlBackgrounds = true;

var pdf = renderer.RenderHtmlAsPdf("<h1 style='background:#eee'>Hello, PDF!</h1>");

pdf.SaveAs("output.pdf");

還可以將我們的輸出 PDF 設置為在任何虛擬紙張尺寸上渲染 - 包括縱向和橫向尺寸,甚至可以設置為毫米或英寸的自定義尺寸。

using IronPdf;
using IronPdf.Rendering;

var renderer = new ChromePdfRenderer();

// Standard paper sizes and orientation
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;

// Or a custom size, in millimeters or inches
// renderer.RenderingOptions.SetCustomPaperSizeinMilimeters(210, 297);
// renderer.RenderingOptions.SetCustomPaperSizeInInches(8.5, 11);

在以下如何文章中探索所有渲染選項:"如何使用渲染選項。"


我最喜歡的程式庫是IronPDF。它允許快速高效地操作PDF文件。它還有許多有價值的功能,例如導出到PDF/A格式和數位簽署PDF文件。

Milan Jovanovic

Microsoft MVP

查看案例研究

IronOCR意味著我們每年可以從手動處理中節省$40,000,同時提高生產力,釋放資源以進行高影響的任務。我會強烈推薦它。

Brent Matzelle

首席技術官,OPYN

查看案例研究

IronSuite在我們的運營中扮演著至關重要的角色。這些工具增加了包括建立平面圖和改善庫存管理在內的業務效率。

David Jones

首席軟體工程師,Agorus Build

查看案例研究

應用 HTML 模板

對於互聯網和網站開發者來說,模板化或 "批量創建" PDF 是一個常見的需求。

與其模板化 PDF 文件本身,使用 IronPDF 我們可以使用現有的、經過驗證的技術來模板化我們的 HTML。當 HTML 模板與查詢字串或數據庫中的數據結合時,我們最終得到一個動態生成的 PDF 文件。

在最簡單的情況下,使用 C# 的 String.Format 方法對於基本示例是有效的。

using IronPdf;

var renderer = new ChromePdfRenderer();

// Insert a value into an HTML template with string.Format
string html = string.Format("<h1>Hello {0}!</h1>", "World");

var pdf = renderer.RenderHtmlAsPdf(html);

pdf.SaveAs("Hello.pdf");

如果 HTML 文件較長,我們通常可以使用任意佔位符如 [[NAME]],然後用真實數據替換它們。

以下示例將創建 3 個 PDF,每個 PDF 都個性化為一個用戶。

using IronPdf;

var renderer = new ChromePdfRenderer();

// A template with a placeholder to replace
var htmlTemplate = "<p>[[NAME]]</p>";

var names = new[] { "John", "James", "Jenny" };

// One personalized PDF per name
foreach (var name in names)
{
    var htmlInstance = htmlTemplate.Replace("[[NAME]]", name);

    var pdf = renderer.RenderHtmlAsPdf(htmlInstance);

    pdf.SaveAs(name + ".pdf");
}

使用 Handlebars.NET 進行高級模板化

將 C# 數據與 HTML 合併以生成 PDF 的一種複雜方法是使用 Handlebars 模板語言。

Handlebars 使得從 C# 對象和類實例(包括數據庫記錄)創建動態 HTML 成為可能。Handlebars 特別有效,當查詢可能返回未知數量的行時,例如在生成發票時。

我們必須首先將一個額外的 NuGet 套件添加到我們的專案中:https://www.nuget.org/packages/Handlebars.NET/

using HandlebarsDotNet;

// A Handlebars template with two placeholders
var source =
    @"<div class=""entry"">
        <h1>{{title}}</h1>
        <div class=""body"">
            {{body}}
        </div>
    </div>";

// Compile it once, then fill it with any object that has matching properties
var template = Handlebars.Compile(source);

var data = new { title = "My new post", body = "This is my first post!" };

string html = template(data);

// html now contains:
//
// <div class="entry">
//   <h1>My new post</h1>
//   <div class="body">
//     This is my first post!
//   </div>
// </div>

要渲染此 HTML,我們可以簡單地使用 RenderHtmlAsPdf 方法。

using HandlebarsDotNet;
using IronPdf;

// Fill the Handlebars template, then render the resulting HTML
var template = Handlebars.Compile("<h1>{{title}}</h1><p>{{body}}</p>");
string html = template(new { title = "My new post", body = "This is my first post!" });

var renderer = new ChromePdfRenderer();

var pdf = renderer.RenderHtmlAsPdf(html);

pdf.SaveAs("Handlebars.pdf");

您可以從 GitHub 瞭解有關 Handlebars 模板語言及其 C# 實現的更多信息。

使用 HTML5 添加分頁符

在 PDF 文件中,分頁是一個常見的需求。開發者需要控制 PDF 頁面的開始和結束位置,以獲得整潔、可讀的佈局。

最簡單的方法是使用一個不太為人所知的 CSS 技巧,這將在任何打印的 HTML 文件中渲染一個分頁符。

<div style='page-break-after: always;'>&nbsp;</div>
HTML

提供的 HTML 可以工作,但並不是最佳實踐。我們建議像以下示例一樣調整媒體屬性。這是一種整潔的方式來佈局多頁 HTML 內容。因為 IronPDF 默認使用 screen 媒體類型渲染,當 RenderingOptions.CssMediaType 設置為 PdfCssMediaType.Print 時,media="print" 樣式表才會被應用(見上面的 轉換設置)。

<!DOCTYPE html>
<html>
  <head>
    <style type="text/css" media="print">
      .page {
        page-break-after: always;
        page-break-inside: avoid;
      }
    </style>
  </head>
  <body>
    <div class="page">
      <h1>This is Page 1</h1>
    </div>
    <div class="page">
      <h1>This is Page 2</h1>
    </div>
    <div class="page">
      <h1>This is Page 3</h1>
    </div>
  </body>
</html>
HTML

該如何指南概述了更多 分頁符的提示和技巧


為 PDF 附加封面頁

IronPDF 使合併 PDF 文件變得簡單。這種技術最常見的用法是為現有渲染的 PDF 文件添加封面頁或背面頁。

為此,我們首先渲染一個封面頁,然後使用 PdfDocument.Merge() 靜態方法將兩個文件合併。

using IronPdf;

var renderer = new ChromePdfRenderer();

// The document body, rendered from a web page
var pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf/");

// Prepend an existing PDF as the cover page. Merge returns a new document.
var cover = PdfDocument.FromFile("CoverPage.pdf");
var pdfMerged = PdfDocument.Merge(cover, pdf);

pdfMerged.SaveAs("Combined.pdf");

完整的代碼示例可以在這裡找到:PDF 封面頁代碼示例


添加水印

IronPDF 支持的最後一個 C# PDF 功能是為文件添加水印。這可以用來在每頁添加一個通知,表明文件是 "機密" 或 "樣本"。

using IronPdf;
using IronPdf.Editing;

var renderer = new ChromePdfRenderer();

var pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf");

// Stamp every page with a red "SAMPLE" in the middle, rotated 30 degrees at 50% opacity.
// The watermark is HTML, so any markup, styling or image can be used.
pdf.ApplyWatermark(
    "<h2 style='color:red; font-size:50px'>SAMPLE</h2>",
    rotation: 30,
    opacity: 50,
    verticalAlignment: VerticalAlignment.Middle,
    horizontalAlignment: HorizontalAlignment.Center);

pdf.SaveAs(@"C:\Path\To\Watermarked.pdf");

完整的代碼示例可以在這裡找到:PDF 水印代碼示例


下載 C# 源代碼

本教程的完整 免費 HTML 轉 PDF 轉換器 C# 源代碼 可作為壓縮的 Visual Studio 2022 專案文件下載。它將使用其渲染引擎在 C# 中生成 PDF 文件對象。

下載本教程作為 Visual Studio 專案

免費下載包含創建 PDF 從 HTML 所需的一切 - 包括工作中的 C# PDF 代碼示例代碼:

  1. 使用 C# 將 HTML 字串轉換為 PDF
  2. 在 C# 中將 HTML 文件轉換為 PDF(支持 CSS、JavaScript 和圖像)
  3. 使用 URL 的 C# HTML 轉 PDF("URL 轉 PDF")
  4. C# PDF 編輯和設置示例
  5. 將 JavaScript 畫布圖表如 d3.js 渲染為 PDF
  6. PDF 庫用於 C#

類參考

開發者可能還對 IronPdf.PdfDocument 類參考感興趣:

https://ironpdf.com/object-reference/api/IronPdf.PdfDocument.html

此對象模型顯示了 PDF 文件如何可以:

  • 加密和密碼保護
  • 編輯或用新 HTML 內容 "蓋章"
  • 使用前景和背景圖像增強
  • 在頁面或文件級別合併、連接、截斷和拼接
  • 解析以提取純文本和圖像,或使用 IronOCR 套件進行 OCR 處理

Blazor HTML 轉 PDF

將 HTML 轉 PDF 功能添加到您的 Blazor 服務器很簡單,只需:

  1. 創建一個新的 Blazor 服務器專案或使用現有的專案
  2. 使用 NuGet 將 IronPDF 庫添加到您的專案中
  3. 添加一個新的 Razor 組件或使用現有的組件
  4. 添加一個 InputTextArea 並將其鏈接到 IronPDF
  5. 讓 IronPDF 處理其餘部分並部署

欲了解更多閱讀,請繼續閱讀 完整的分步指南在 Blazor 應用程式中將 HTML 轉換為 PDF

使用 IronPDF 從 Blazor 服務器頁面生成的 PDF

與其他 PDF 庫比較

IronPDF 是一個強大且功能齊全的 PDF 庫,專為現代 .NET 開發者量身定制。憑藉先進的 Chromium 引擎提供的原生 HTML 轉 PDF 轉換、直觀的 API 和定期更新,它簡化了開發,同時確保高品質的結果。讓我們仔細看看它與其他工具的比較:

PDFSharp

  • 核心功能:PDFsharp 是一個用於在托管代碼中創建和編輯 PDF 文件的開源(MIT)庫。它沒有 HTML 渲染引擎,因此將網頁內容轉換為 PDF 需要單獨的第三方渲染器。
  • 現代標準:IronPDF 利用現代網絡技術,包括 HTML、CSS 和 JavaScript,通過其基於 Chromium 的引擎,確保 PDF 保持現代的外觀和感覺。
  • 支持與更新:PDFsharp 是開源的,每幾個月發布一次版本,其維護者單獨出售商業支持。IronPDF 每月發布版本和安全補丁,每個許可證都包括專業的工程支持,這對於企業應用程式來說很重要。

wkhtmltopdf

  • 集成的便利性:wkhtmltopdf 是一個命令行工具,帶有 C 庫;沒有官方的 .NET 套件,因此從 .NET 使用它意味著啟動本地二進制文件(或通過第三方包裝器如 DinkToPdf 調用它)並為您部署到的每個平台提供該二進制文件。
  • 渲染技術:wkhtmltopdf 使用 QtWebKit 渲染,這是一個 Qt 在 2015 年棄用並在 Qt 5.6 中刪除的 WebKit 分支,因此現代 JavaScript 和 CSS 功能不受支持,特別是在動態、內容豐富的網站上。IronPDF 的 Chromium 引擎渲染當前的網絡標準。
  • 持續開發:wkhtmltopdf 的最後一個版本是 2020 年 6 月的 0.12.6,其 GitHub 存儲庫在 2023 年 1 月被存檔,因此沒有供應商支持。IronPDF 繼續隨著每月更新和專門的客戶服務而發展。

iTextSharp

  • HTML-to-PDF 渲染:iText 通過其獨立的 pdfHTML 附加組件轉換 HTML,這是一個 CSS 佈局引擎而非瀏覽器,且舊版 iTextSharp 5 現在僅接收安全修復。IronPDF 在核心包中嵌入了 Chromium 引擎來渲染 HTML,無需附加組件。
  • 開發者體驗:iText 的 API 在 PDF 對象和佈局元素層面運作,這很強大,但意味著日常任務需要更多代碼。IronPDF 提供了一個乾淨且直觀的 C# API,簡化了編碼並加速了項目交付。
  • 維護與支持:免費使用 iText 需遵循 AGPL,供應商支持僅限於商業許可證,且 iTextSharp 5.x 除了安全修復外已經停止更新。IronPDF 包含專業支持和每月更新,隨每個許可證提供。

Aspose.PDF

  • 轉換質量:Aspose.PDF 使用其自己的佈局引擎而非瀏覽器來轉換 HTML。其文檔通過首先使用 HttpClient 獲取 HTML 到流中,然後通過 HtmlLoadOptions 傳遞給 Document,而不是直接從 URL 渲染。在我們下面的 r/nfl 測試中,輸出幾乎是空的:社區標誌、一個標題和一些空框。IronPDF 的 Chromium 引擎直接渲染 URL,包括 JavaScript。
  • API 可用性:Aspose.PDF 的 API 可能冗長,而 IronPDF 專注於提供開發者友好的體驗,最大限度地減少設置時間並提高生產力。
  • 輸出保真度:由於 IronPDF 使用 Chromium 渲染,PDF 與 Chrome 顯示的相同 HTML 相匹配,這使得設計和調試對於高容量 PDF 生成來說是可預測的。

Syncfusion PDF

  • API 複雜性:Syncfusion PDF 是一個功能強大的庫,具有更大的 API 表面需要學習。相比之下,IronPDF 提供了一個簡單的 API 以便快速集成。
  • 渲染引擎:Syncfusion 的 HTML 轉換器現在使用 Chromium Blink 引擎;其舊的 WebKit 和 Internet Explorer 引擎在 Essential Studio 2022 Volume 3 中被標記為過時。在我們下面的 r/nfl 測試中,Syncfusion 的輸出保留了主提要,但丟失了導航和社區面板,而 IronPDF 的 Chromium 引擎渲染了整個頁面。
  • 超越轉換:IronPDF 的包還涵蓋數字簽名、註釋、表單填寫和條碼蓋章,因此同一個庫處理文檔工作流程的其餘部分。

渲染比較

為了比較這些庫的 HTML-to-PDF 轉換質量,我們使用了一個 Reddit 社區頁面,r/nfl,其中包含動態內容、實時更新、現代 CSS 和基於 JavaScript 的元素:

https://www.reddit.com/r/nfl/

Chrome 中顯示的 r/nfl Reddit 頁面的截圖

以下是每個庫使用默認設置單次運行的結果。Syncfusion 和 Aspose.PDF 作為評估版本運行,這就是為什麼它們的輸出帶有評估水印(點擊每個圖像以查看放大版本):

IronPDF

IronPDF 將 r/nfl Reddit 頁面從 HTML 轉換為 PDF 的輸出格式良好且視覺準確的 PDF,保留了動態內容和現代樣式。

SyncFusion

Syncfusion 將 r/nfl Reddit 頁面從 HTML 轉換為 PDF 的輸出使用試用版本轉換。主提要、帖子內容和樣式以狹窄的單列佈局顯示,但左側導航和右側社區面板被丟棄。

Aspose.PDF

Aspose.PDF 將 r/nfl Reddit 頁面從 HTML 轉換為 PDF 的輸出評估版本;需要先下載 HTML(Aspose.PDF 從流而非 URL 加載 HTML)。輸出幾乎是空的:社區標誌、一個標題和一些空框。

Wkhtmltopdf

wkhtmltopdf 將 r/nfl Reddit 頁面從 HTML 轉換為 PDF 的輸出wkhtmltopdf 完成了轉換,但結果是頁面的文本和圖像,沒有其佈局、樣式、動態元素或交互性。這使得 wkhtmltopdf 不適合現代動態網頁。
請注意: PDFsharp 沒有 HTML 渲染引擎,而 iText 僅通過其獨立的 pdfHTML 附加組件轉換 HTML,因此兩者均未包含在此瀏覽器渲染測試中。

結論

對於尋求現代且可靠的 PDF 解決方案的 .NET 開發者來說,IronPDF 是一個強有力的選擇。其基於 Chromium 的 HTML-to-PDF 轉換、易用性、定期更新和廣泛的功能集使其成為首選。無論您是在處理小型項目還是大型企業應用,IronPDF 都能提高生產力,同時避免使用過時或不受支持的庫所帶來的風險。IronPDF 專為商業應用設計,確保您的項目使用的是一個維護良好且受支持的庫。

在我們的實際動態網頁測試中,IronPDF 產生了最完整和準確的渲染。Syncfusion 丟失了導航和社區面板。Aspose.PDF 需要先下載 HTML,卻幾乎沒有渲染頁面。wkhtmltopdf 生成了文本和圖像,但沒有頁面的樣式,對於現代網站來說不合適。

對於現代 HTML-to-PDF 工作流程,渲染準確性和小而可讀的 API 的結合使 IronPDF 脫穎而出。

體驗 IronPDF 的全功能套件,輕鬆將動態、重 CSS 的 HTML 轉換為 PDF。立即使用我們的免費試用進行測試。


觀看 C# 中的 HTML to PDF 教學視頻

使用 PDF 文檔,您可以訪問以下鏈接以了解如何設置 Chrome 在瀏覽器中打開 PDF 而不是下載它們

第一步:
arrow pointer

常見問題

如何在 C# 中使用 IronPDF 將 HTML 轉換為 PDF?

要使用 IronPDF 將 HTML 轉換為 PDF,您需要初始化 ChromePdfRenderer,使用 RenderHtmlAsPdf 方法將 HTML 內容渲染為 PDF,然後將 PDF 保存到文件。

IronPDF 的系統要求是什麼?

IronPDF 支持 .NET 10、.NET 9、.NET 8、.NET 7、.NET 6、.NET 5、.NET Core、.NET Standard 和 .NET Framework,適用於 Windows、macOS、Linux、Docker、Azure 和 AWS。

我可以將 IronPDF 與其他編程語言一起使用嗎?

是的,IronPDF 可以與 .NET 生態系統內外的多種語言一起使用,包括 F#、VB.NET、Python、Java 和 Node.js。

如何使用 IronPDF 向 PDF 添加自定義頁眉和頁腳?

使用 IronPDF,您可以使用 TextHeaderFooter 類添加基於文本的內容頁眉和頁腳,或使用 HtmlHeaderFooter 類添加豐富的 HTML 內容。

使用 IronPDF 是否可以從現有 URL 渲染 PDF?

是的,您可以使用 IronPDF 中的 RenderUrlAsPdf 方法從現有 URL 渲染 PDF。

IronPDF 是否支持高級 CSS 和 JavaScript 渲染?

是的,IronPDF 支持高級 CSS3 和 JavaScript,包括 jQuery 和 AJAX,提供現代網頁設計的準確渲染。

我可以在 IronPDF 中應用 HTML 模板進行批量 PDF 創建嗎?

是的,您可以使用 C# 模板技術,包括 String.Format 和 Handlebars.NET,動態生成 PDF。

IronPDF 與其他 PDF 庫相比如何?

IronPDF 使用嵌入式 Chromium 引擎渲染 HTML,每月更新,並具有緊湊的 C# API。教程將其與 PdfSharp、wkhtmltopdf、iTextSharp、Aspose.PDF 和 Syncfusion PDF 進行比較,包括動態網頁的並排渲染測試。

我可以使用 IronPDF 向 PDF 添加水印嗎?

是的,IronPDF 允許您向 PDF 文檔添加文本或圖像水印。

IronPDF 是否提供試用版?

是的,您可以註冊免費的 30 天試用密鑰,以在購買許可證之前測試 IronPDF 的功能。

Jacob Mellor,首席技術官 @ Team Iron
首席技術官

Jacob Mellor是Iron Software的首席技術官,一位在C# PDF技術上開創先河的遠見工程師。作為Iron Software核心程式碼庫的原開發者,他從創立以來就一直在塑造公司的產品架構,與首席執行官Cameron Rimington一起將公司轉變為服務於NASA、特斯拉和全球政府公司的50多名人員的公司。

...
閱讀更多

準備開始了嗎?

Nuget Downloads 21,105,021版本:2026.9剛剛發布

立即獲取免費

立即獲取 30天試用金鑰

bullet_checked無需信用卡或註冊帳號
bullet_test在生產
環境中進行測試,且不顯示浮水印
bullet_calendar30 天全
功能產品
bullet_support試用期間提供 24/5 技術
支援
立即獲取您的免費30天試用密鑰
不需要信用卡或建立賬戶
C# 用於PDF的NuGet程式庫
使用NuGet安裝

版本: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. 在解決方案資源管理器,右鍵點選參考,管理NuGet包
  2. 選擇瀏覽並搜尋"IronPdf"
  3. 選擇套件並安裝
C# PDF DLL
下載DLL

版本: 2026.9

或者點擊此處下載Windows安裝程式。

  1. 下載並解壓IronPDF到類似~/Libs的位置,位於您的解決方案目錄中
  2. 在Visual Studio解決方案資源管理器,右鍵點選參考。選擇瀏覽,"IronPdf.dll"

授權從$999

有問題嗎?聯絡我們的開發團隊。

Key in blue circle

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

Your trial license will be sent to your email address

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

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

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

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

版本: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. 在解決方案資源管理器,右鍵點選參考,管理NuGet包
  2. 選擇瀏覽並搜尋"IronPdf"
  3. 選擇套件並安裝
C# PDF DLL
下載DLL

版本: 2026.9

或者點擊此處下載Windows安裝程式。

  1. 下載並解壓IronPDF到類似~/Libs的位置,位於您的解決方案目錄中
  2. 在Visual Studio解決方案資源管理器,右鍵點選參考。選擇瀏覽,"IronPdf.dll"

授權從$999