HTML 到 PDF: C# .NET 的快速教程

用 C# 将 HTML 转换为 PDF - 完全 .NET 开发人员指南

This article was translated from English: Does it need improvement?
Translated
View the article in English

欢迎阅读我们的教程,了解如何将 HTML 转换为 PDF,用于动态网页内容、发票、报告或网络存档。 请跟随我们,使用最可靠的 C# HTML 到 PDF 转换器生成与您的实际网页设计相匹配的 PDF 文档。

TL;DR:将 HTML 转换为 PDF 的快速入门指南

您可以使用 IronPDF 库在 C# 中轻松地将 HTML 转换为 PDF,该库提供了 ChromePdfRenderer.RenderHtmlAsPdf 方法,用于从 HTML、CSS 和 JavaScript 创建高质量的 PDF 文件。

Nuget Icon立即开始使用 NuGet 创建 PDF 文件:

  1. 使用 NuGet 包管理器安装 IronPDF

    PM > Install-Package IronPdf

  2. 复制并运行这段代码。

    IronPdf.ChromePdfRenderer
           .StaticRenderHtmlAsPdf("<p>Hello World</p>")
           .SaveAs("pixelperfect.pdf");
  3. 部署到您的生产环境中进行测试

    立即开始在您的项目中使用 IronPDF,免费试用!
    arrow pointer

购买或注册 IronPDF 30 天试用版后,请查找发送到您电子邮件中的许可证密钥。 在应用程序开始时添加您的许可密钥。

IronPdf.License.LicenseKey = "KEY";
IronPdf.License.LicenseKey = "KEY";
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

为什么 .NET 开发人员需要 C# 的 HTML 到 PDF 转换器;

.NET Framework 缺乏将 HTML 转换为 PDF 的内置功能。 IronPdf 利用嵌入式 Google Chromium 渲染引擎确保高保真转换,准确保留网页内容的布局和样式。

稳健的 Chrome 浏览器渲染引擎: Chrome 浏览器的 Blink 引擎可将 HTML 准确转换为 PDF,现在又对内存、表单和渲染准确性进行了增强修复(v2025.9.4)

精确到像素:生成的 PDF 与网页精确匹配,而不是打印机友好版本。 最近的修复包括自定义页眉/页脚剪切、灰度文本保存和元数据中的特殊字符/表情符号(截至 v2025.9.4)

全面的现代网络支持:为所有 HTML 元素提供完整的 CSS3、HTML5 和 JavaScript 支持。 最近的增强功能对长文本区域和复选框的表单字段处理进行了隐蔽。

性能提升 5-20 倍:速度明显快于浏览器自动化或网络驱动程序,现在还修复了内存泄漏问题,并减少了批量操作中重复元素(如图章/页眉)的文件大小。

PDF/UA 合规性: 生成符合第 508 条标准的无障碍 PDF,并增强跨平台(如 Linux)表单呈现。

无外部依赖性:无需在服务器上安装可执行文件

专为在 .NET 10、9、8、7、6、Core、Standard 或 Framework 上运行的 C#、F# 和 VB.NET 设计

IronPDF 为 .NET 开发人员简化了这一过程,为从您的网络应用程序的 HTML 生成专业外观的 PDF 文档提供了一个直接高效的解决方案。 从发票和报告到证书和档案,开发人员可以使用他们熟悉的网络堆栈工作,而 IronPDF 只需几行代码就能处理复杂的问题。

RELATED: IronPDF Changelog: Updates, milestones, roadmap

您将学到什么

1. 如何将 HTML 转换为 PDF C#

1.如何将 HTML 转换为 PDF C#。

无论您是处理 HTML 字符串、URL 还是 HTML 文件,IronPDF 都能提供灵活的选项,生成符合您特定要求的高质量 PDF 文档。

在本教程中,我们将引导您了解最常见的情况,包括 HTML 字符串到 PDF、URL 到 PDF 以及 HTML 文件到 PDF。 此外,IronPDF 还提供各种操作 PDF 文档的操作:

多功能 PDF 转换 动态网页到 PDF 的转换

如何将 HTML 字符串转换为 PDF 文件

最基本的操作是将 HTML 字符串转换为 PDF。 这种方法非常适合动态生成的 HTML 内容。 当您直接将 HTML 转换为 PDF 时,RenderHtmlAsPdf 方法完全支持 HTML5、CSS3、JavaScript 和图像。

using IronPdf;

// Create the Chrome renderer
var renderer = new ChromePdfRenderer();

// Convert HTML string to PDF
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello IronPdf</h1>");

// Save the PDF
pdf.SaveAs("output.pdf");
using IronPdf;

// Create the Chrome renderer
var renderer = new ChromePdfRenderer();

// Convert HTML string to PDF
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello IronPdf</h1>");

// Save the PDF
pdf.SaveAs("output.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

提示(更新至 v2025.9.4)最近的更新修复了 HTML 元数据中的特殊字符/表情符号问题,并确保更好地处理 html 表单字段,包括 Linux 上的中文字符。 使用 EnableJavaScript = true 测试动态内容,以获得最佳效果。

当您的 HTML 字符串引用图片或样式表等本地资产时,请使用 BaseUrlPath 参数正确转换包含所有资源的 HTML 内容:

using IronPdf;

var renderer = new ChromePdfRenderer();

// Convert HTML content with local image and CSS references
string html = @"
    <link rel='stylesheet' href='styles.css'>
    <img src='logo.png' alt='Company Logo'>
    <h1>Company Report</h1>
    <p>Annual report content...</p>";

// Set base path for resolving relative URLs in HTML to PDF conversion
var pdf = renderer.RenderHtmlAsPdf(html, @"C:\MyProject\Assets\");
pdf.SaveAs("report.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();

// Convert HTML content with local image and CSS references
string html = @"
    <link rel='stylesheet' href='styles.css'>
    <img src='logo.png' alt='Company Logo'>
    <h1>Company Report</h1>
    <p>Annual report content...</p>";

// Set base path for resolving relative URLs in HTML to PDF conversion
var pdf = renderer.RenderHtmlAsPdf(html, @"C:\MyProject\Assets\");
pdf.SaveAs("report.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

[{t:(BaseUrlPath 告诉 IronPdf 在哪里可以找到 CSS、JavaScript 和图像文件。 HTML 字符串中的所有相对路径都将从该目录解析。

RELATED HOW-TO ARTICLE: How to Convert HTML String to PDF in C#

如何将现有 URL 导出到 PDF.

使用 C# 将整个网页渲染为 PDF,使团队能够将 PDF 设计和后端渲染工作分开。 通过这种方法,您可以将任何指定的 URL 直接转换为 PDF 格式。

打印与屏幕 CSS 对比

您可以将 IronPDF 配置为使用任一种 CSS 媒体类型呈现。

using IronPdf;
using IronPdf.Rendering;

// Initialize HTML to PDF converter
var renderer = new ChromePdfRenderer();

// Configure CSS media type for rendering specified URLs
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;

// Screen media type shows the entire web page as displayed on screen
using IronPdf;
using IronPdf.Rendering;

// Initialize HTML to PDF converter
var renderer = new ChromePdfRenderer();

// Configure CSS media type for rendering specified URLs
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;

// Screen media type shows the entire web page as displayed on screen
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

JavaScript 支持

在将 HTML 转换为 PDF 时,IronPDF 完全支持 JavaScript、jQuery 甚至 AJAX。 对于动态 HTML 内容,您可以配置 IronPDF 等待 JavaScript 完成后再将网页渲染为 PDF。 这非常适合单页应用程序和动态网站。

using IronPdf;

// Configure JavaScript rendering for dynamic HTML content to PDF
var renderer = new ChromePdfRenderer();

// Enable JavaScript execution during PDF generation
renderer.RenderingOptions.EnableJavaScript = true;

// WaitFor.RenderDelay pauses before capturing the HTML
renderer.RenderingOptions.WaitFor.RenderDelay = 500; // milliseconds
using IronPdf;

// Configure JavaScript rendering for dynamic HTML content to PDF
var renderer = new ChromePdfRenderer();

// Enable JavaScript execution during PDF generation
renderer.RenderingOptions.EnableJavaScript = true;

// WaitFor.RenderDelay pauses before capturing the HTML
renderer.RenderingOptions.WaitFor.RenderDelay = 500; // milliseconds
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

在将高级 d3.js 和弦图从网页渲染为 PDF 格式时,还可以显示 JavaScript 的执行情况:

using IronPdf;

// Create renderer for JavaScript-heavy HTML
var renderer = new ChromePdfRenderer();

// Convert d3.js visualization web page to PDF
var pdf = renderer.RenderUrlAsPdf("https://bl.ocks.org/mbostock/4062006");

// Save the interactive chart as static PDF
pdf.SaveAs("chart.pdf");
using IronPdf;

// Create renderer for JavaScript-heavy HTML
var renderer = new ChromePdfRenderer();

// Convert d3.js visualization web page to PDF
var pdf = renderer.RenderUrlAsPdf("https://bl.ocks.org/mbostock/4062006");

// Save the interactive chart as static PDF
pdf.SaveAs("chart.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

响应式 CSS

由于响应式网页是为在浏览器中查看而设计的,而 IronPDF 不会在服务器的操作系统中打开真正的浏览器窗口,因此响应式 HTML 元素可能会以最小尺寸呈现。建议在呈现整个网页时使用 PdfCssMediaType.Print 来解决这一问题。

// Configure for optimal responsive design handling in HTML to PDF

renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
// Configure for optimal responsive design handling in HTML to PDF

renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

RELATED HOW-TO ARTICLE: How to Render URL to PDF

如何将 HTML 文件转换为 PDF 文件

将本地 HTML 文件转换为 PDF 时会保留所有相关资产,包括 CSS、图像和 JavaScript,就像使用 file:// 协议打开一样。 这种 HTML 转 PDF 的方法最适合将模板或预先设计好的 HTML 页面转换为 PDF 文档。

using IronPdf;

// Initialize ChromePdfRenderer for HTML file conversion
var renderer = new ChromePdfRenderer();

// Convert HTML file to PDF documents
// Preserves all relative paths and linked resources in HTML
var pdf = renderer.RenderHtmlFileAsPdf("Assets/TestInvoice1.html");

// Save the HTML file as PDF 
pdf.SaveAs("Invoice.pdf");

// All CSS, JavaScript, and images load correctly in the generated PDF
using IronPdf;

// Initialize ChromePdfRenderer for HTML file conversion
var renderer = new ChromePdfRenderer();

// Convert HTML file to PDF documents
// Preserves all relative paths and linked resources in HTML
var pdf = renderer.RenderHtmlFileAsPdf("Assets/TestInvoice1.html");

// Save the HTML file as PDF 
pdf.SaveAs("Invoice.pdf");

// All CSS, JavaScript, and images load correctly in the generated PDF
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

[{t:(在将 HTML 文件转换为 PDF 之前,将 HTML 文件连同其资产(CSS、图片)保存在一个单独的文件夹中,以便在浏览器中进行编辑和测试。 这将确保您的 HTML 可以完美地渲染成高质量的 PDF 文档。