使用 IRON SUITE

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

简介

在今天的数字时代,将HTML转换为PDF是开发人员的常见需求。 无论是生成报告、发票、法律文件,还是存档网络内容,制作一致且专业的 PDF 都可能具有挑战性。

传统上,这个过程需要手动处理 PDF 结构、复杂的布局计算和大量的编码,这既耗时又容易出错。 现代 .NET 开发者需要一个可靠的解决方案,简化 PDF 生成的同时保持准确性和灵活性。 除此之外,找到一个能提供完整 JavaScript 和 CSS 支持的库,可以显著提升渲染后 PDF 文档的质量。 这就是我们今天要看的库:IronPDF。

在接下来的部分中,我们将探索如何使用IronPDF在 C# 中将 HTML 转换为 PDF,这个库简化了过程并无缝集成了 .NET 应用程序。 在本指南结束时,您将能够在您的.NET项目中无缝地进行HTML到PDF的转换。

How to convert HTML to 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 环境。 IronPDF利用基于Chrome的渲染引擎,将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库更可靠。
    • 网址转换为PDF:IronPDF可以将网站的字符串URL作为输入,并转换为PDF
  2. 自定义页眉和页脚

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

    • IronPDF支持在HTML内容中执行JavaScript,然后再生成PDF。 这允许动态内容呈现,例如在生成的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许可证密钥设置IronPdf.License.LicenseKey以启用库的全部功能。
  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根据HTML内容生成PDF,该HTML内容包含指向外部CSSJavaScript文件的链接。 它展示了如何创建具有样式化内容和动态行为(通过 JavaScript)的 PDF。

  1. 许可密钥设置

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

    • 定义 HTML 字符串,内容包括:
      • 一个外部 CSS 文件的链接(styles.css),用于对内容进行样式设定。
      • 一个外部 JavaScript 文件的链接(script.js),可以为内容添加动态功能。
    • HTML内容包括标题(<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文件:为了确保链接正常,script.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 转换。