使用 IRON SUITE

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

  1. 创建一个新的Visual Studio项目。
  2. 从 NuGet 包管理器中添加 IronPDF 库。
  3. 将 HTML 字符串转换为 PDF 文件。
  4. 添加页眉和页脚。
  5. 包含外部样式表和脚本。

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 的关键功能

  1. HTML到PDF转换

    • HTML 渲染IronPDF 可以将 HTML 文件、内容或整个网页(包括 CSS、图片和 JavaScript 的 HTML 文档)直接转换为 PDF 文档。 这对在 PDF 创建中使用动态网页内容特别理想。
    • 支持现代 HTML/CSS:IronPDF 处理现代 HTML5CSS3JavaScript,确保您的基于 Web 的内容以 PDF 精确渲染。 这样保留了布局、字体和交互式 HTML 元素。 它甚至可以直接将 HTML 内容如 HTML 表单转换为易于共享和填写的 PDF 表单。
    • 高级渲染:它通过 Chromium 使用 Chrome 的渲染引擎,以准确、高质量的PDF 生成,使得它比许多其他 HTML 到 PDF 库更可靠。
    • 从网页 URL 到 PDF:IronPDF 可以接收网站的网址字符串作为输入并将其转换为 PDF
  2. 自定义页眉和页脚

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

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

    • IronPDF 提供编辑现有 PDF 的能力。 您可以修改 PDF 页面尺寸、文本、图像,并对现有 PDF 文件添加注释。 该功能对于为文档添加水印、签名或更新PDF文件内的内容非常有用。
    • 文本提取和修改允许程序化地操作 PDF 文档中的内容。
  5. 合并和拆分PDFs

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

    • 您可以使用 IronPDF 创建、填写和操作PDF 表单。 它全面支持交互式表单(如文本字段、复选框和单选按钮),并允许您使用数据预先填写表单。
    • IronPDF 还允许从现有 PDF 提取表单数据,使得易于程序化地读取和处理表单数据。
  7. 页面操作

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

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

    • 使用 IronPDF 为 PDF 文档添加水印非常简单。 您可以在页面上覆盖文本或图像作为水印,以防止未经授权的复制或分发文档。
    • 这种功能通常用于品牌宣传,其中标志或文本需要一致地显示在文档的所有页面上。
  10. 提取文本和图像

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

    • IronPDF 具有强大的Unicode 支持,意味着它可以处理国际字符和字体,非常适合生成多语言 PDF。
    • 它支持多种语言,如中文、阿拉伯语、俄语等,允许创建多语言 PDF 文档。
  12. 针对性能优化

    • IronPDF 针对性能进行优化,能够处理大型 PDF 文档和大量请求。 该库确保即使在处理大型数据集或图像时,PDF生成仍然快速高效。
  13. API和开发者友好工具

    • IronPDF 附带全面且易于使用的 API。 开发人员可以通过简单的方法调用快速开始执行复杂任务。
    • 该 API 的文档齐全,便于将 IronPDF 集成到任何 C# 或 .NET 应用程序中。
  14. 跨平台支持
    • IronPDF 是跨平台兼容的,这意味着它可以在WindowsMacLinux 和其他开发环境中使用,允许您在不同操作系统上生成和操纵 PDF。

IronPDF 的应用场景

  1. 发票生成

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

    • IronPDF 非常适合从数据源创建详细报告。 您可以通过将数据和 HTML 模板相结合生成定制的报告,并加上图表,渲染为 PDF 以便分享或打印。
  3. 法律和合同文件

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

    • 教育机构使用 IronPDF 制作和分发如证书、课堂材料和讲义等 PDF,与一致性和专业性相对应的样式。
  5. 表单和调查
    • IronPDF 在处理表单方面的能力对生成调查、问卷或任何其他类型的互动表单非常有价值。 数据可以预填,表单响应可以被提取和处理。

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

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

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

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

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

提供项目名称和位置:

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

选择 .NET 版本:

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

点击"创建"按钮以完成项目创建:

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

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

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

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

步骤 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
$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

步骤 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
$vbLabelText   $csharpLabel

代码片段说明

  1. 许可密钥设置
    • IronPdf.License.LicenseKey 设置为您唯一的 IronPDF 许可证密钥,以启用库的完整功能。
  2. 创建 PDF 渲染器
    • 创建 ChromePdfRenderer 实例,用于将 HTML 内容渲染为 PDF 格式。 这是 IronPDF 渲染引擎的一部分。
  3. 定义 HTML 内容
    • 创建包含标题、报告页眉和示例报告段落的简单 HTML 字符串。
  4. 定义页眉和页脚 HTML
    • 在上述代码中,我们指定了自定义页眉和页脚 HTML 字符串
    • 页眉包括格式为"第{page}页,共{total-pages}页"的页码,并右对齐。
    • 页脚在每页中心包括文本"保密"。
  5. HTML 到 PDF 转换
    • 调用 RenderHtmlAsPdf() 方法将 HTML 内容转换成 PDF 文档。
  6. 添加页眉和页脚
    • 调用 pdfDocument 对象的 AddHtmlHeadersAndFooters() 方法。 该方法将之前定义的页眉和页脚添加到生成的 PDF 中。 ChromePdfRenderOptions 用于传递页眉和页脚设置。
  7. 保存 PDF
    • 最后,使用 SaveAs() 方法将生成的 PDF 保存为磁盘上的"report.pdf"文件。

输出PDF

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

步骤 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 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;
}

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.";
});
JAVASCRIPT

代码解释

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

  1. 许可密钥设置

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

    • 定义 HTML 字符串,内容包括:
      • 一个外部 CSS 文件的链接(styles.css),用于对内容进行样式设定。
      • 一个外部 JavaScript 文件的链接(script.js),可以为内容添加动态功能。
    • HTML 内容包含一个标题(<h1>)、一个子标题以及一个带有 ID dynamic-text 的段落(<p>),由外部 CSS 样式化,并可能通过 JavaScript 修改。
  3. 将 HTML 渲染为 PDF

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

笔记

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

输出PDF

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

许可证信息(可试用)

要开始使用 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 转换。