使用IRON SUITE

HTML 转 PDF C# - 使用 IronPDF 的完整指南

2025年四月9日
分享:

介绍

在当今数字时代,将HTML转换为PDF文件的需求比以往任何时候都更加重要。 无论您是生成报告、发票,还是仅仅归档网页内容,将HTML转换为PDF都是一个实用的解决方案。 IronPDF 是一个强大的库,可以简化这个过程,使开发人员能够轻松地从HTML内容创建高质量的PDF文档。

如何将HTML转换为PDF C

  1. 创建一个新的 Visual Studio 项目。

  2. 从 NuGet 包管理器中添加 IronPDF 库。

  3. 将HTML字符串转换为PDF文件。

  4. 添加页眉和页脚。

  5. 包含外部样式表和脚本。

IronPDF 简介

IronPDF 是一个 .NET 库,使开发人员能够轻松地将 HTML 转换为 PDF。 它支持广泛的功能,包括CSS、JavaScript,甚至嵌入图像。 使用 IronPDF,您可以创建与您的 HTML 网页完全相同的 PDF,从而确保格式之间的无缝转换。 此库对于需要即时生成动态PDF文档的Web应用特别有用。

IronPDF 允许开发人员将 PDF 功能无缝集成到 .NET 应用程序中,而无需手动管理 PDF 文件结构。 IronPDF 利用基于Chrome的渲染引擎将HTML页面(包括复杂的CSS、JavaScript和图像)转换为结构良好的PDF文档。 它可以用于生成报告、发票、电子书或任何需要以PDF格式呈现的文档。

IronPDF 功能多样,不仅支持渲染 PDF,还提供多种 PDF 操作选项,如编辑、表单处理、加密等。

IronPDF 的主要功能

  1. HTML 转换为 PDF

    • HTML 渲染IronPDF 可以将 HTML 文档或网页(包括带有 CSS、图像和 JavaScript 的 HTML)直接转换为 PDF 文档。 这非常适合从动态网页内容生成PDF。

    • 支持现代HTML/CSS:IronPDF支持现代HTML5、CSS3和JavaScript,确保您的基于网络的内容可以准确地呈现为PDF,保留布局、字体和交互元素。

    • 高级渲染:它使用Chrome的渲染引擎(通过Chromium)进行精确的高质量PDF生成,使其比许多其他HTML到PDF库更可靠。
    • 将网站网址转换为 PDFIronPDF 可以将网站的字符串网址作为输入并转换为 PDF。
  2. 自定义页眉和页脚

    • IronPDF允许开发人员向PDF文档添加自定义页眉和页脚,其中可以包括动态内容,如页码、文档标题或自定义文本。
    • 页眉和页脚可以添加到单个页面,或者作为整个文档中一致的元素。
  3. 支持PDF中的JavaScript

    • IronPDF 在生成 PDF 之前允许在 HTML 内容中执行 JavaScript。 这允许动态内容渲染,例如在生成的PDF中进行表单计算或交互性。
    • 在从动态网页创建PDF或生成需要客户端逻辑的报告时,JavaScript非常有用。
  4. 编辑现有PDF

    • IronPDF 提供编辑现有PDF的能力。 您可以修改文本、图像,并向现有的PDF文件添加注释。 此功能可用于在PDF文件中加水印、添加签名或更新内容。
    • 文本提取和修改使您能够以编程方式操作PDF文档中的内容。
  5. 合并和拆分PDF

    • IronPDF 允许您将多个 PDF 文件合并为一个文档,或将大型 PDF 拆分为较小文件。 这对于需要将文档合并或拆分为更易管理部分的工作流程非常理想。
  6. 支持交互式表单

    • 您可以使用IronPDF创建、填写和操作PDF表单。 它提供对交互式表单(如文本框、复选框和单选按钮)的全面支持,并允许您用数据预填充表单。
    • IronPDF 还允许从现有 PDF 中提取表单数据,使得以编程方式读取和处理表单数据变得容易。
  7. 页面操作

    • IronPDF 提供多种方法来处理PDF文档中的单个页面,例如旋转页面、删除页面或重新排列页面。 这有助于定制最终文档的结构。
    • 您还可以向现有的PDF添加新页面,或删除不需要的页面。
  8. 安全性和加密

    • IronPDF 允许您对PDF应用密码保护和加密,确保您的文档安全。 您可以设置用户权限,例如防止打印、复制或编辑PDF。
    • 数字签名也可以添加到PDF中以验证真实性,为敏感文件提供一层安全保护。
  9. 水印和品牌化

    • 使用IronPDF为PDF文档添加水印非常简单。 您可以将文本或图像作为水印叠加在页面上,以防止未经授权的复制或分发您的文档。
    • 此功能常用于品牌推广,需要在文档的所有页面上始终显示徽标或文本。
    1. 文本和图像提取

      • IronPDF 允许从 PDF 文档中提取文本和图像,开发人员可以提取数据用于处理或重用。
    • 这对于需要分析PDF内容、从表单中提取信息或检索图像以供进一步使用的场景非常有帮助。
    1. Unicode 和多语言支持

      • IronPDF具有强大的Unicode支持,这意味着它可以处理国际字符和字体,使其非常适合生成多语言的PDF。
    • 它支持中文、阿拉伯语、俄语等语言,可以创建多语言PDF文档。
    1. 优化性能
    • IronPDF 经优化以提高性能,能够处理大型 PDF 文档和大量请求。 该库确保即使在处理大型数据集或图像时,PDF生成仍然快速高效。
    1. API 和开发者友好工具

      • IronPDF 提供了一个全面且易于使用的 API。 开发者可以通过使用简单的方法调用来快速启动以执行复杂任务。
    • API 文档详实,使得将 IronPDF 集成到任何 C# 或 .NET 应用程序中变得简单。
    1. 跨平台支持
    • IronPDF 是跨平台兼容的,这意味着它可以在 Windows 和 Linux 环境中使用,允许您在不同的操作系统上生成和操作 PDF。

步骤 1:创建一个新的 Visual Studio 项目

要开始,请打开 Visual Studio 并按如下所示创建一个新项目。

HTML 转 PDF C# - 使用 IronPDF 的完整指南:图 1

从Pixabay添加上传

或拖放图像到此处

添加图片替代文本

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

HTML 转 PDF C# - 使用 IronPDF 的完整指南:图 2

从Pixabay添加上传

或拖放图像到此处

添加图片替代文本

提供项目名称和地点。

HTML 转 PDF C# - 使用 IronPDF 的完整指南:图 3

从Pixabay添加上传

或拖放图像到此处

添加图片替代文本

选择 .NET 版本

HTML 转 PDF C# - 使用 IronPDF 的完整指南:图 4

从Pixabay添加上传

或拖放图像到此处

添加图片替代文本

单击“创建”按钮以完成项目创建。

步骤 2:从 NuGet 包管理器添加 IronPDF 库

在开始将HTML转换为PDF之前,您需要安装IronPDF库。 您可以使用 Visual Studio 中的 NuGet 包管理器来执行此操作,或者在包管理器控制台中运行以下命令:

Install-Package IronPdf
Install-Package IronPdf
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package IronPdf
$vbLabelText   $csharpLabel

此外,可以使用 Visual Studio 包管理器安装 IronPDF

HTML 转 PDF C# - 使用 IronPDF 的完整指南:图 5

从Pixabay添加上传

或拖放图像到此处

添加图片替代文本

步骤 3:将 HTML 字符串转换为 PDF 文件

以下是HTML到PDF转换器应用程序的代码。 这里,将字符串格式表示的HTML代码或HTML元素用作输入并转换为PDF。 使用相同的步骤将HTML文件转换为PDF,增加一个从HTML文件读取内容的步骤。

class Program
{
    static void Main()
    {
        // Specify license key
        IronPdf.License.LicenseKey = "Your Key";
        // Create a new HtmlToPdf object
        var Renderer = new ChromePdfRenderer();
        // Define the HTML string to be converted, can use html document
        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");
    }
}
class Program
{
    static void Main()
    {
        // Specify license key
        IronPdf.License.LicenseKey = "Your Key";
        // Create a new HtmlToPdf object
        var Renderer = new ChromePdfRenderer();
        // Define the HTML string to be converted, can use html document
        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");
    }
}
Friend Class Program
	Shared Sub Main()
		' Specify license key
		IronPdf.License.LicenseKey = "Your Key"
		' Create a new HtmlToPdf object
		Dim Renderer = New ChromePdfRenderer()
		' Define the HTML string to be converted, can use html document
		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
$vbLabelText   $csharpLabel

代码片段解释

  • 许可证密钥设置

    程序开始时设置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

HTML 转 PDF C# - 使用 IronPDF 的完整指南:图 6

从Pixabay添加上传

或拖放图像到此处

添加图片替代文本

步骤 4:添加页眉和页脚

class Program
{
    static void Main()
    {
        IronPdf.License.LicenseKey = "your code";
        // Create a new HtmlToPdf object
        var Renderer = new ChromePdfRenderer();
        string htmlContent = "<html><body><h1>IronPDF: An Awesome PDF Generation Library</h1><h1>Report</h1><p>This is a sample report.</p></body></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 with headers and footers
        var pdfDocument = Renderer.RenderHtmlAsPdf(htmlContent);
        pdfDocument.AddHtmlHeadersAndFooters(new ChromePdfRenderOptions
        {
            HtmlHeader= new HtmlHeaderFooter() { HtmlFragment=headerHtml },
            HtmlFooter = new HtmlHeaderFooter() { HtmlFragment=footerHtml }
        });
        pdfDocument.SaveAs("report.pdf");
    }
}
class Program
{
    static void Main()
    {
        IronPdf.License.LicenseKey = "your code";
        // Create a new HtmlToPdf object
        var Renderer = new ChromePdfRenderer();
        string htmlContent = "<html><body><h1>IronPDF: An Awesome PDF Generation Library</h1><h1>Report</h1><p>This is a sample report.</p></body></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 with headers and footers
        var pdfDocument = Renderer.RenderHtmlAsPdf(htmlContent);
        pdfDocument.AddHtmlHeadersAndFooters(new ChromePdfRenderOptions
        {
            HtmlHeader= new HtmlHeaderFooter() { HtmlFragment=headerHtml },
            HtmlFooter = new HtmlHeaderFooter() { HtmlFragment=footerHtml }
        });
        pdfDocument.SaveAs("report.pdf");
    }
}
Friend Class Program
	Shared Sub Main()
		IronPdf.License.LicenseKey = "your code"
		' Create a new HtmlToPdf object
		Dim Renderer = New ChromePdfRenderer()
		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>"
		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 with headers and footers
		Dim pdfDocument = Renderer.RenderHtmlAsPdf(htmlContent)
		pdfDocument.AddHtmlHeadersAndFooters(New ChromePdfRenderOptions With {
			.HtmlHeader= New HtmlHeaderFooter() With {.HtmlFragment=headerHtml},
			.HtmlFooter = New HtmlHeaderFooter() With {.HtmlFragment=footerHtml}
		})
		pdfDocument.SaveAs("report.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

代码片段解释

  1. 许可证密钥设置

    • 通过设置您专属的IronPDF许可证密钥,IronPdf.License.LicenseKey可以启用该库的全部功能。
  2. 创建PDF渲染器

    • 创建了一个ChromePdfRenderer实例,它将用于将HTML内容渲染成PDF格式。 这是IronPDF渲染引擎的一部分。
  3. 定义 HTML 内容

    • 创建了一个简单的HTML字符串,其中包括一个标题(

      IronPDF: 一个很棒的PDF生成库),一个报告标题(

      报告),以及一个示例报告段落。

  4. 定义页眉和页脚的HTML

    • 指定自定义页眉和页脚的HTML字符串:

      • 页眉包括格式为“第 {page} 页,共 {total-pages} 页”的页码,右对齐。
      • 页脚包括居中对齐的“Confidential”文本。
  5. HTML 转 PDF 转换

    • 调用 RenderHtmlAsPdf() 方法将 HTML 内容转换为 PDF 文档。
  6. 添加页眉和页脚

    • 在 pdfDocument 对象上调用 AddHtmlHeadersAndFooters() 方法。 此方法将先前定义的页眉和页脚添加到生成的PDF中。 ChromePdfRenderOptions 用于传递页眉和页脚设置。
  7. 保存PDF

    • 最后,使用 SaveAs() 方法将生成的 PDF 保存到磁盘上的 "report.pdf" 文件中。

输出 PDF

HTML 转 PDF C# - 使用 IronPDF 的完整指南:图 7

从Pixabay添加上传

或拖放图像到此处

添加图片替代文本

步骤 5:包含外部样式表和脚本

class Program
{
    static void Main()
    {
        IronPdf.License.LicenseKey = "your key";        
        // 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>";
        var pdfDocument = Renderer.RenderHtmlAsPdf(htmlContent);
        pdfDocument.SaveAs("awesomeIronPDF_styled_content.pdf");
    }
}
class Program
{
    static void Main()
    {
        IronPdf.License.LicenseKey = "your key";        
        // 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>";
        var pdfDocument = Renderer.RenderHtmlAsPdf(htmlContent);
        pdfDocument.SaveAs("awesomeIronPDF_styled_content.pdf");
    }
}
Friend Class Program
	Shared Sub Main()
		IronPdf.License.LicenseKey = "your key"
		' 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>"
		Dim pdfDocument = Renderer.RenderHtmlAsPdf(htmlContent)
		pdfDocument.SaveAs("awesomeIronPDF_styled_content.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

style.css

/* styles.css */
body {
    font-family: Arial, sans-serif;
    margin: 20px;
}
h1 {
    color: #007BFF;
}
p {
    font-size: 14px;
    line-height: 1.6;
}
/* styles.css */
body {
    font-family: Arial, sans-serif;
    margin: 20px;
}
h1 {
    color: #007BFF;
}
p {
    font-size: 14px;
    line-height: 1.6;
}
' styles.css 
body
If True Then
	font-family: Arial, sans-serif
	margin:
	20px
End If
h1
If True Then
	color:
	#007BFF;
End If
p
If True Then
	font-size: 14px
	line-height: 1.6
End If
$vbLabelText   $csharpLabel

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.";
});
' script.js
document.addEventListener( 'DOMContentLoaded', @function() { var dynamicText = document.getElementById('dynamic-text'); dynamicText.textContent = "This content has been modified by JavaScript."; });
$vbLabelText   $csharpLabel

代码解释

此代码演示了如何在 C# 中使用 IronPDF 从包含外部 CSS 和 JavaScript 文件链接的 HTML 内容生成 PDF。 它展示了如何创建包含样式内容和动态行为(通过JavaScript)的PDF。

  1. 许可证密钥设置

    • 将 IronPdf.License.LicenseKey 设置为您唯一的 IronPDF 许可证密钥,允许访问 IronPDF 库的全部功能。
  2. 定义具有外部资源的HTML内容:

    • HTML 字符串定义为:

      • 一个指向外部 CSS 文件(styles.css)的链接,用于样式化内容。

      • 一个链接到外部JavaScript文件 (script.js),可以为内容添加动态功能。
    • HTML 内容包括一个标题 (

      IronPDF:一个出色的 PDF 生成库)、一个副标题 (

      样式化内容),以及一个带有动态文本 ID 的段落 (

      ),该段落由外部 CSS 样式化,并可能被 JavaScript 修改。

  3. 将HTML渲染为PDF

    • 调用 Renderer.RenderHtmlAsPdf() 方法将 HTML 内容(包括链接的 CSS 和 JavaScript)转换为 PDF 文档。 请注意,IronPDF 可以处理可访问的外部资源,如 CSS 和 JavaScript,例如当文件在本地或远程托管时。
  4. 保存PDF

    • 生成的 PDF 文档使用 SaveAs() 方法保存为名为 "awesomeIronPDF_styled_content.pdf" 的文件。

笔记

  • 外部 CSS 和 JS 文件:为了确保链接正常工作,styles.css 和 script.js 文件应在代码运行的环境中可访问。 如果文件是本地的,请确保它们在正确的目录中,或者提供文件的完整路径。
  • PDF中的JavaScript:IronPDF可以渲染使用JavaScript实现页面行为的内容。 然而,需要注意的是,JavaScript 在静态 PDF 文件中可能无法如预期那样执行,因为 PDF 并不像网页那样具有动态性。 IronPDF 主要使用 JavaScript 在生成 PDF 之前呈现内容,因此在 PDF 创建后,通过 JavaScript 动态操作内容可能不起作用。

输出 PDF

HTML 转 PDF C# - 使用 IronPDF 的完整指南:图 8

从Pixabay添加上传

或拖放图像到此处

添加图片替代文本

IronPDF的使用案例

  1. 发票生成

    • 许多企业使用IronPDF从动态数据生成专业发票。 嵌入CSS样式的HTML模板被渲染成PDF发票,然后发送给客户。
  2. 报告和数据分析

    • IronPDF 非常适合从数据源生成详细报告。 您可以通过将数据与HTML模板结合、添加图表,并将其渲染为PDF,以便共享或打印,来生成自定义报告。
  3. 法律和合同文件

    • 法律公司使用IronPDF来生成合同、法律协议和其他文档类型。其添加数字签名和使用加密技术保护文档的能力,使其特别适合法律工作流程。
  4. 教育材料

    • 教育机构使用IronPDF来创建和分发PDF,例如证书、课堂材料和讲义,确保风格一致且专业。
  5. 表单和调查

    • IronPDF处理表单的能力对于生成调查、问卷或任何其他类型的交互式表单非常有价值。 数据可以预填,表单响应可以提取和处理。

许可信息(可用试用版)

IronPDF。 在使用IronPDF库之前放置它,如下所示

IronPdf.License.LicenseKey = "your key";
IronPdf.License.LicenseKey = "your key";
IronPdf.License.LicenseKey = "your key"
$vbLabelText   $csharpLabel

结论

IronPDF 是一个强大且多功能的库,使HTML到PDF的转换变得轻而易举。 无论您需要生成简单的文档还是带有动态内容的复杂报告,IronPDF都能满足您的需求。 凭借其易于使用的API以及对页眉、页脚和外部资源等高级功能的支持,IronPDF是开发人员希望从HTML内容创建高质量PDF文档的无价工具。 在您的下一个项目中试试它,体验轻松将HTML转换为PDF的便利。

< 前一页
C# 创建 PDF - 使用 IronPDF 的完整指南
下一步 >
面向 .NET 开发人员的 C# HTML 转 PDF(终极指南)