HTML 到 PDF C# - 使用 IronPDF 的完整指南
简介
在当今的数字时代,将 HTML 转换为 PDF 是开发者常见的需求。 无论是生成报告、发票、法律文件,还是存档网络内容,制作一致且专业的 PDF 都可能具有挑战性。
传统上,这个过程需要手动处理 PDF 结构、复杂的布局计算和大量的编码,这既耗时又容易出错。 现代 .NET 开发者需要一个可靠的解决方案,简化 PDF 生成的同时保持准确性和灵活性。 除此之外,找到一个能提供完整 JavaScript 和 CSS 支持的库,可以显著提升渲染后 PDF 文档的质量。 这就是我们今天要看的库:IronPDF。
在接下来的部分中,我们将探索如何使用IronPDF在 C# 中将 HTML 转换为 PDF,这个库简化了过程并无缝集成了 .NET 应用程序。 在本指南结束时,您将能够在您的 .NET 项目中轻松实现 HTML 到 PDF 的转换。
如何将 HTML 转换为 PDF C
- 创建一个新的Visual Studio项目。
- 从 NuGet 包管理器中添加 IronPDF 库。
- 将 HTML 字符串转换为 PDF 文件。
- 添加页眉和页脚。
- 包含外部样式表和脚本。
IronPDF简介
IronPDF 是一个 .NET 库,允许开发者轻松地将 HTML 转换为 PDF。 它支持各种功能,包括 CSS、JavaScript 和嵌入图像,因此您的 PDF 可以看起来与 HTML 网页完全一样。 这确保了格式的无缝过渡,使 IronPDF 对于实时生成动态 PDF 文档的 Web 应用特别有用。
该库允许开发者将 PDF 功能直接集成到 C# 或 VB.NET 应用程序中,无需手动管理 PDF 结构。 IronPDF 完全兼容 .NET Framework、.NET Core 和现代 .NET 版本,并支持 Windows 和 Linux 环境。 利用基于 Chrome 的渲染引擎,IronPDF 将 HTML 页面(包括复杂的 CSS、JavaScript 和图像)转换为结构良好的高质量 PDF 文档——通常只需几行代码。 它非常适合生成报告、发票、电子书或任何需要以 PDF 格式展示的文档。
不仅具备 PDF 转换能力,IronPDF 还提供广泛的 PDF 文档操作选项,包括编辑、表单处理、加密、页眉/页脚等,是现代 PDF 工作流程的多功能工具。
IronPDF 的关键功能
HTML到PDF转换
- HTML 渲染:IronPDF 可以将 HTML 文件、内容或整个网页(包括 CSS、图片和 JavaScript 的 HTML 文档)直接转换为 PDF 文档。 这对在 PDF 创建中使用动态网页内容特别理想。
- 支持现代 HTML/CSS:IronPDF 处理现代 HTML5、CSS3 和 JavaScript,确保您的基于 Web 的内容以 PDF 精确渲染。 这样保留了布局、字体和交互式 HTML 元素。 它甚至可以直接将 HTML 内容如 HTML 表单转换为易于共享和填写的 PDF 表单。
- 高级渲染:它通过 Chromium 使用 Chrome 的渲染引擎,以准确、高质量的PDF 生成,使得它比许多其他 HTML 到 PDF 库更可靠。
- 从网页 URL 到 PDF:IronPDF 可以接收网站的网址字符串作为输入并将其转换为 PDF。
自定义页眉和页脚
- IronPDF 允许开发者给 PDF 文档添加自定义页眉和页脚,这些内容可以包括动态内容如页码、文档标题或自定义文本。
- 页眉和页脚可以添加到单个页面,或者作为一致元素贯穿整个文档。
支持PDF中的JavaScript
- IronPDF 允许在生成 PDF 之前,在 HTML 内容中执行JavaScript。 这允许动态内容呈现,例如在生成的PDF中进行表单计算或交互。
- JavaScript 在从动态网页生成 PDF 或生成需要客户端逻辑的报告时非常有用。
编辑现有PDFs
- IronPDF 提供编辑现有 PDF 的能力。 您可以修改 PDF 页面尺寸、文本、图像,并对现有 PDF 文件添加注释。 该功能对于为文档添加水印、签名或更新PDF文件内的内容非常有用。
- 文本提取和修改允许程序化地操作 PDF 文档中的内容。
合并和拆分PDFs
- IronPDF 允许您将多个 PDF 文件合并为一个文件,或将大 PDF 切分为较小的文件。 对于需要将文档组合或分解为更易管理的部分的工作流程来说,这是理想的选择。
支持交互式表单
- 您可以使用 IronPDF 创建、填写和操作PDF 表单。 它全面支持交互式表单(如文本字段、复选框和单选按钮),并允许您使用数据预先填写表单。
- IronPDF 还允许从现有 PDF 提取表单数据,使得易于程序化地读取和处理表单数据。
页面操作
- IronPDF 提供多种方法来操作 PDF 文档中的单独页面,如旋转页面、删除页面或重新排序。 这有助于自定义最终文档的结构。
- 您还可以向现有 PDF 添加新页面,或删除不需要的页面。
安全和加密
加水印和品牌化
- 使用 IronPDF 为 PDF 文档添加水印非常简单。 您可以在页面上覆盖文本或图像作为水印,以防止未经授权的复制或分发文档。
- 这种功能通常用于品牌宣传,其中标志或文本需要一致地显示在文档的所有页面上。
提取文本和图像
- IronPDF 允许从 PDF 文档中提取文本和图像,使开发者能够提取数据以进行处理或重用。
- 这对于需要分析 PDF 内容、从表单中提取信息或检索图像以供进一步使用的场景很有帮助。
Unicode和多语言支持
- IronPDF 具有强大的Unicode 支持,意味着它可以处理国际字符和字体,非常适合生成多语言 PDF。
- 它支持多种语言,如中文、阿拉伯语、俄语等,允许创建多语言 PDF 文档。
针对性能优化
- IronPDF 针对性能进行优化,能够处理大型 PDF 文档和大量请求。 该库确保即使在处理大型数据集或图像时,PDF生成仍然快速高效。
API和开发者友好工具
- IronPDF 附带全面且易于使用的 API。 开发人员可以通过简单的方法调用快速开始执行复杂任务。
- 该 API 的文档齐全,便于将 IronPDF 集成到任何 C# 或 .NET 应用程序中。
- 跨平台支持
IronPDF 的应用场景
发票生成
- 许多企业使用 IronPDF 从动态数据生成专业发票。 嵌入了 CSS 样式的 HTML 模板被渲染成 PDF 发票,然后发送给客户。
报告和数据分析
- IronPDF 非常适合从数据源创建详细报告。 您可以通过将数据和 HTML 模板相结合生成定制的报告,并加上图表,渲染为 PDF 以便分享或打印。
法律和合同文件
- 法律公司用 IronPDF 生成合同、法律协议和其他文档类型。能够添加数字签名并用加密保护文档使其特别适合法律工作流程。
教育材料
- 教育机构使用 IronPDF 制作和分发如证书、课堂材料和讲义等 PDF,与一致性和专业性相对应的样式。
- 表单和调查
- IronPDF 在处理表单方面的能力对生成调查、问卷或任何其他类型的互动表单非常有价值。 数据可以预填,表单响应可以被提取和处理。
步骤 1:创建一个新的 Visual Studio 项目
要开始,请打开 Visual Studio 并按如下所示创建一个新项目:

选择创建控制台应用程序:

提供项目名称和位置:

选择 .NET 版本:

点击"创建"按钮以完成项目创建:
步骤 2:从 NuGet 包管理器中添加 IronPDF 库
在您可以开始转换 HTML 到 PDF之前,您需要安装 IronPDF 库。 您可以使用 Visual Studio 中的 NuGet 包管理器或者在包管理器控制台中运行以下命令来实现:
此外,可以使用 Visual Studio 包管理器安装 IronPDF。

步骤 3:将 HTML 字符串转换为 PDF 文件
以下是 HTML 到 PDF 转换器应用程序的代码。 在这里,使用 HTML 字符串作为输入并转换为 PDF。 您可以使用相同的步骤将 HTML 文件转换为 PDF,并增加一步以读取 HTML 文件的内容。
using IronPdf;
class Program
{
static void Main()
{
// Specify license key
IronPdf.License.LicenseKey = "Your Key";
// Create a new ChromePdfRenderer object
var Renderer = new ChromePdfRenderer();
// Define the HTML string to be converted
string htmlContent = "<html><body><h1>IronPDF: An Awesome PDF Generation Library</h1></body></html>";
// Convert HTML string to a PDF document
var document = Renderer.RenderHtmlAsPdf(htmlContent);
// Save the PDF document to a file
document.SaveAs("html2Pdf.pdf");
}
}using IronPdf;
class Program
{
static void Main()
{
// Specify license key
IronPdf.License.LicenseKey = "Your Key";
// Create a new ChromePdfRenderer object
var Renderer = new ChromePdfRenderer();
// Define the HTML string to be converted
string htmlContent = "<html><body><h1>IronPDF: An Awesome PDF Generation Library</h1></body></html>";
// Convert HTML string to a PDF document
var document = Renderer.RenderHtmlAsPdf(htmlContent);
// Save the PDF document to a file
document.SaveAs("html2Pdf.pdf");
}
}Imports IronPdf
Friend Class Program
Shared Sub Main()
' Specify license key
IronPdf.License.LicenseKey = "Your Key"
' Create a new ChromePdfRenderer object
Dim Renderer = New ChromePdfRenderer()
' Define the HTML string to be converted
Dim htmlContent As String = "<html><body><h1>IronPDF: An Awesome PDF Generation Library</h1></body></html>"
' Convert HTML string to a PDF document
Dim document = Renderer.RenderHtmlAsPdf(htmlContent)
' Save the PDF document to a file
document.SaveAs("html2Pdf.pdf")
End Sub
End Class代码片段说明
- 许可密钥设置:
- 程序首先通过设置 IronPDF 许可证密钥来启用库的全部功能。
- 创建渲染器:
- 创建一个 ChromePdfRenderer 实例。 这是将 HTML 渲染成 PDF 文档的组件。 它基本上充当 HTML 内容和生成 PDF 之间的桥梁。
- HTML 内容:
- 定义了一个字符串变量 htmlContent,其中包含您要转换为 PDF 的 HTML 代码。 在这个案例中,它是一个简单的包含标题的 HTML 结构。
- HTML 到 PDF 转换:
- 调用 Renderer.RenderHtmlAsPdf() 方法,使用 HTML 字符串来生成 PDF 文档。 该方法处理 HTML 内容并将其转换为 PDF 格式。
- 保存 PDF:
- 生成的 PDF 文档使用 SaveAs() 方法保存为名为 "html2Pdf.pdf" 的文件。 这将在磁盘上存储新创建的 PDF。
输出PDF

步骤 4:添加页眉和页脚
using IronPdf;
class Program
{
static void Main()
{
IronPdf.License.LicenseKey = "your key";
// Create a new ChromePdfRenderer object
var Renderer = new ChromePdfRenderer();
// Define HTML content
string htmlContent = "<html><body><h1>IronPDF: An Awesome PDF Generation Library</h1><h1>Report</h1><p>This is a sample report.</p></body></html>";
// Define header and footer HTML
string headerHtml = "<div style='text-align: right;'>Page {page} of {total-pages}</div>";
string footerHtml = "<div style='text-align: center;'>Confidential</div>";
// Convert the HTML content to a PDF document
var pdfDocument = Renderer.RenderHtmlAsPdf(htmlContent);
// Add headers and footers to the PDF document
pdfDocument.AddHtmlHeadersAndFooters(new ChromePdfRenderOptions
{
HtmlHeader= new HtmlHeaderFooter() { HtmlFragment=headerHtml },
HtmlFooter = new HtmlHeaderFooter() { HtmlFragment=footerHtml }
});
// Save the PDF document to a file
pdfDocument.SaveAs("report.pdf");
}
}using IronPdf;
class Program
{
static void Main()
{
IronPdf.License.LicenseKey = "your key";
// Create a new ChromePdfRenderer object
var Renderer = new ChromePdfRenderer();
// Define HTML content
string htmlContent = "<html><body><h1>IronPDF: An Awesome PDF Generation Library</h1><h1>Report</h1><p>This is a sample report.</p></body></html>";
// Define header and footer HTML
string headerHtml = "<div style='text-align: right;'>Page {page} of {total-pages}</div>";
string footerHtml = "<div style='text-align: center;'>Confidential</div>";
// Convert the HTML content to a PDF document
var pdfDocument = Renderer.RenderHtmlAsPdf(htmlContent);
// Add headers and footers to the PDF document
pdfDocument.AddHtmlHeadersAndFooters(new ChromePdfRenderOptions
{
HtmlHeader= new HtmlHeaderFooter() { HtmlFragment=headerHtml },
HtmlFooter = new HtmlHeaderFooter() { HtmlFragment=footerHtml }
});
// Save the PDF document to a file
pdfDocument.SaveAs("report.pdf");
}
}Imports IronPdf
Friend Class Program
Shared Sub Main()
IronPdf.License.LicenseKey = "your key"
' Create a new ChromePdfRenderer object
Dim Renderer = New ChromePdfRenderer()
' Define HTML content
Dim htmlContent As String = "<html><body><h1>IronPDF: An Awesome PDF Generation Library</h1><h1>Report</h1><p>This is a sample report.</p></body></html>"
' Define header and footer HTML
Dim headerHtml As String = "<div style='text-align: right;'>Page {page} of {total-pages}</div>"
Dim footerHtml As String = "<div style='text-align: center;'>Confidential</div>"
' Convert the HTML content to a PDF document
Dim pdfDocument = Renderer.RenderHtmlAsPdf(htmlContent)
' Add headers and footers to the PDF document
pdfDocument.AddHtmlHeadersAndFooters(New ChromePdfRenderOptions With {
.HtmlHeader= New HtmlHeaderFooter() With {.HtmlFragment=headerHtml},
.HtmlFooter = New HtmlHeaderFooter() With {.HtmlFragment=footerHtml}
})
' Save the PDF document to a file
pdfDocument.SaveAs("report.pdf")
End Sub
End Class代码片段说明
- 许可密钥设置:
- 将
IronPdf.License.LicenseKey设置为您唯一的 IronPDF 许可证密钥,以启用库的完整功能。
- 将
- 创建 PDF 渲染器:
- 创建
ChromePdfRenderer实例,用于将 HTML 内容渲染为 PDF 格式。 这是 IronPDF 渲染引擎的一部分。
- 创建
- 定义 HTML 内容:
- 创建包含标题、报告页眉和示例报告段落的简单 HTML 字符串。
- 定义页眉和页脚 HTML:
- 在上述代码中,我们指定了自定义页眉和页脚 HTML 字符串:
- 页眉包括格式为"第{page}页,共{total-pages}页"的页码,并右对齐。
- 页脚在每页中心包括文本"保密"。
- HTML 到 PDF 转换:
- 调用
RenderHtmlAsPdf()方法将 HTML 内容转换成 PDF 文档。
- 调用
- 添加页眉和页脚:
- 调用 pdfDocument 对象的 AddHtmlHeadersAndFooters() 方法。 该方法将之前定义的页眉和页脚添加到生成的 PDF 中。 ChromePdfRenderOptions 用于传递页眉和页脚设置。
- 保存 PDF:
- 最后,使用
SaveAs()方法将生成的 PDF 保存为磁盘上的"report.pdf"文件。
- 最后,使用
输出PDF

步骤 5:包含外部样式表和脚本
using IronPdf;
class Program
{
static void Main()
{
IronPdf.License.LicenseKey = "your key";
// Create a new ChromePdfRenderer object
var Renderer = new ChromePdfRenderer();
// Define the HTML content with links to external CSS and JS files
string htmlContent = @"
<html>
<head>
<link rel='stylesheet' type='text/css' href='styles.css'>
<script src='script.js'></script>
</head>
<body>
<h1>IronPDF: An Awesome PDF Generation Library</h1>
<h1>Styled Content</h1>
<p id='dynamic-text'>This content is styled using an external CSS file and JavaScript.</p>
</body>
</html>";
// Convert HTML content to a PDF document
var pdfDocument = Renderer.RenderHtmlAsPdf(htmlContent);
// Save the PDF document to a file
pdfDocument.SaveAs("awesomeIronPDF_styled_content.pdf");
}
}using IronPdf;
class Program
{
static void Main()
{
IronPdf.License.LicenseKey = "your key";
// Create a new ChromePdfRenderer object
var Renderer = new ChromePdfRenderer();
// Define the HTML content with links to external CSS and JS files
string htmlContent = @"
<html>
<head>
<link rel='stylesheet' type='text/css' href='styles.css'>
<script src='script.js'></script>
</head>
<body>
<h1>IronPDF: An Awesome PDF Generation Library</h1>
<h1>Styled Content</h1>
<p id='dynamic-text'>This content is styled using an external CSS file and JavaScript.</p>
</body>
</html>";
// Convert HTML content to a PDF document
var pdfDocument = Renderer.RenderHtmlAsPdf(htmlContent);
// Save the PDF document to a file
pdfDocument.SaveAs("awesomeIronPDF_styled_content.pdf");
}
}Imports IronPdf
Friend Class Program
Shared Sub Main()
IronPdf.License.LicenseKey = "your key"
' Create a new ChromePdfRenderer object
Dim Renderer = New ChromePdfRenderer()
' Define the HTML content with links to external CSS and JS files
Dim htmlContent As String = "
<html>
<head>
<link rel='stylesheet' type='text/css' href='styles.css'>
<script src='script.js'></script>
</head>
<body>
<h1>IronPDF: An Awesome PDF Generation Library</h1>
<h1>Styled Content</h1>
<p id='dynamic-text'>This content is styled using an external CSS file and JavaScript.</p>
</body>
</html>"
' Convert HTML content to a PDF document
Dim pdfDocument = Renderer.RenderHtmlAsPdf(htmlContent)
' Save the PDF document to a file
pdfDocument.SaveAs("awesomeIronPDF_styled_content.pdf")
End Sub
End Classstyle.css
/* styles.css */
body {
font-family: Arial, sans-serif;
margin: 20px;
}
h1 {
color: #007BFF;
}
p {
font-size: 14px;
line-height: 1.6;
}script.js
// script.js
document.addEventListener('DOMContentLoaded', function() {
var dynamicText = document.getElementById('dynamic-text');
dynamicText.textContent = "This content has been modified by JavaScript.";
});// script.js
document.addEventListener('DOMContentLoaded', function() {
var dynamicText = document.getElementById('dynamic-text');
dynamicText.textContent = "This content has been modified by JavaScript.";
});代码解释
这个代码演示了如何在 C# 中使用 IronPDF 从包含外部 CSS和JavaScript文件的 HTML 内容生成 PDF。 它展示了如何创建具有样式化内容和动态行为(通过 JavaScript)的 PDF。
许可密钥设置:
- 将
IronPdf.License.LicenseKey设置为您的唯一 IronPDF 许可证密钥,允许访问 IronPDF 库的全部功能。
- 将
定义具有外部资源的 HTML 内容:
- 定义 HTML 字符串,内容包括:
- 一个外部 CSS 文件的链接(styles.css),用于对内容进行样式设定。
- 一个外部 JavaScript 文件的链接(script.js),可以为内容添加动态功能。
- HTML 内容包含一个标题(
<h1>)、一个子标题以及一个带有 IDdynamic-text的段落(<p>),由外部 CSS 样式化,并可能通过 JavaScript 修改。
- 定义 HTML 字符串,内容包括:
将 HTML 渲染为 PDF:
- 调用
Renderer.RenderHtmlAsPdf()方法,将 HTML 内容(包括链接的 CSS 和 JavaScript)转化为 PDF 文档。 请注意,如果资源可访问,例如当文件托管在本地或远程时,IronPDF 可以处理像 CSS 和 JavaScript 这样的外部资源。
- 调用
- 保存 PDF:
- 使用
SaveAs()方法将生成的 PDF 文档保存为名为"awesomeIronPDF_styled_content.pdf"的文件。
- 使用
笔记
- 外部 CSS 和 JS 文件:为了确保链接正常工作,
styles.css和script.js文件应该在代码运行的环境中可访问。 如果这些文件是本地的,请确保它们在正确的目录中,或者提供文件的完整路径。 - PDF 中的 JavaScript:IronPDF 可以渲染使用 JavaScript 控制页面行为的内容。 然而,重要的是要注意 JavaScript 在静态 PDF 文件中可能无法如预期那样执行,因为 PDF 本身不像网页那样具有动态交互性。 IronPDF 主要使用 JavaScript 在生成 PDF 之前渲染内容,因此在 PDF 创建后,JavaScript 进行动态内容操作可能不奏效。
输出PDF

许可证信息(可试用)
要开始使用 IronPDF,您可以获取试用许可证。 如下面所示,将其包含在代码开头:
IronPdf.License.LicenseKey = "your key";IronPdf.License.LicenseKey = "your key";IronPdf.License.LicenseKey = "your key"结论
IronPDF 是一个强大而灵活的库,可以轻松进行 HTML 转换为 PDF。 无论您需要生成简单文档还是具有动态内容的复杂报告,IronPDF 都能满足您的需求。 凭借其易于使用的 API 和对页眉、页脚、外部资源等高级功能的支持,IronPDF 是开发人员从 HTML 内容创建高质量 PDF 文档的宝贵工具。 在下一个项目中试试它,体验简便的 HTML 到 PDF 转换。