跳至页脚内容
使用IRONPDF
如何在 C# 中从模板生成 PDF | IronPDF

如何在C#中使用模板生成PDF

PDF 文档在当今文化中很普遍,被各种企业用于创建发票和其他文档。 选择 .NET 库用于项目时,应考虑创建、读取和写入 PDF 文件的便捷性。

class="hsg-featured-snippet">

如何在 C# 中从模板生成 PDF

  1. 安装用于从模板生成 PDF 的 C# 库
  2. 使用 StringBuilder 类构建 HTML 字符串
  3. 用存储的列表数据填充 HTML 模板
  4. 使用 RenderHtmlAsPdf 方法从模板生成 PDF
  5. 将生成的 PDF 另存为新文档

IronPDF特性

IronPDF 是市场上最好的 HTML 转 PDF 转换器之一。 IronPDF 可以处理几乎所有浏览器能够处理的操作。 它可以从 HTML5、JavaScript、CSS 和图像创建 PDF 文件。 .NET PDF 库让生成/创建 PDF 文件、读取现有 PDF 和编辑 PDF 文件变得简单。 可能的修改包括更改字体大小、分页、文本内容等。IronPDF 的用户可以在渲染的 PDF 文档中创建表单字段。

IronPDF 兼容所有 .NET Framework 项目类型,包括 ASP.NET、Windows 窗体和其他传统 Windows 应用程序类型。IronPDF 能够将 ASPX、Razor 和其他 MVC 视图组件直接渲染为 PDF。

IronPDF 的完整功能包括:

在 Visual Studio 中创建新项目

本文将演示 IronPDF 的文档生成能力,并使用简单的控制台应用程序。

打开 Visual Studio 软件并进入文件菜单。 选择“新建项目”,然后选择“控制台应用程序”。

如何在 C# 中从模板生成 PDF,图 1:新项目 新项目

指定项目名称及其位置。 单击 下一步 按钮并选择 .NET Framework。

如何在 C# 中从模板生成 PDF,图 2:.NET Framework 选择 .NET Framework 选择

最后,单击 创建 生成新的 Visual Studio 项目。

如何在 C# 中从模板生成 PDF,图 3:.NET Program.cs .NET Program.cs

3. 安装IronPDF库

可以通过四种方式下载并安装 IronPDF 库。

这四种方式是:

  • 使用 Visual Studio。
  • 使用 Visual Studio 命令行。
  • 直接从 NuGet 网站下载。
  • 直接从 IronPDF 网站下载。

3.1 使用Visual Studio

NuGet 包管理器可在 Visual Studio 软件中使用,用于从 NuGet 轻松安装包。 下面的截图显示了如何打开 NuGet 包管理器 GUI。

如何在 C# 中从模板生成 PDF,图 4:NuGet 包管理器 NuGet 软件包管理器

在包管理器 GUI 的浏览选项卡中搜索“IronPDF”。

如何在 C# 中从模板生成 PDF,图 5:IronPDF 安装 IronPDF 安装

选择 IronPdf 包(首选项),然后单击 安装 按钮将其添加到解决方案中。

3.2 使用Visual Studio命令行

In Visual Studio, go to Tools > NuGet 软件包管理器 > Package Manager Console

在包管理器控制台选项卡中输入以下命令并按 ENTER。

Install-Package IronPdf

如何在 C# 中从模板生成 PDF,图 6:安装 IronPDF 安装 IronPDF

3.3 直接从 NuGet 网站下载

  • 导航到 IronPDF NuGet 包页面
  • 在右侧菜单中单击下载包。
  • 在 Windows 资源管理器中双击下载的包以自动安装到您的项目中。

3.4 直接从 IronPDF 网站下载

Download the IronPDF ZIP file directly with the latest version of the IronPDF package.

下载后,按照以下步骤将包添加到项目中。

  • 右键单击解决方案资源管理器窗口中的项目。
  • 然后选择引用选项并浏览下载的引用的位置。
  • 然后,单击确定以添加参考。

4. 从模板创建 PDF 文档

下面的代码示例展示了如何用几个代码行从给定的 HTML 模板创建 PDF 文件。

using System;
using System.Collections.Generic;
using System.Text;
using IronPdf;

class Program
{
    static void Main()
    {
        // Create an instance of ChromePdfRenderer
        var renderer = new IronPdf.ChromePdfRenderer();

        // Render the HTML as PDF and save it as Test.pdf
        renderer.RenderHtmlAsPdf(BuildTemplate()).SaveAs("Test.pdf");
    }

    /// <summary>
    /// Builds an HTML template string using StringBuilder
    /// </summary>
    /// <returns>HTML string representation of a table</returns>
    static string BuildTemplate()
    {
        var builder = new StringBuilder();
        builder.Append("<table border='1'>");
        builder.Append("<tr>");
        builder.Append("<th>");
        builder.Append("Cat Family");
        builder.Append("</th>");
        builder.Append("</tr>");

        // Iterate over the data and populate the table rows
        foreach (var item in GetData())
        {
            builder.Append("<tr>");
            builder.Append("<td>");
            builder.Append(item.ToString());
            builder.Append("</td>");
            builder.Append("</tr>");
        }

        builder.Append("</table>");
        return builder.ToString();
    }

    /// <summary>
    /// Provides a list of data representing different members of the cat family
    /// </summary>
    /// <returns>List of strings</returns>
    static List<string> GetData()
    {
        List<string> data = new List<string>
        {
            "Lion",
            "Tiger",
            "Cat",
            "Cheetah",
            "Lynx"
        };

        return data;
    }
}
using System;
using System.Collections.Generic;
using System.Text;
using IronPdf;

class Program
{
    static void Main()
    {
        // Create an instance of ChromePdfRenderer
        var renderer = new IronPdf.ChromePdfRenderer();

        // Render the HTML as PDF and save it as Test.pdf
        renderer.RenderHtmlAsPdf(BuildTemplate()).SaveAs("Test.pdf");
    }

    /// <summary>
    /// Builds an HTML template string using StringBuilder
    /// </summary>
    /// <returns>HTML string representation of a table</returns>
    static string BuildTemplate()
    {
        var builder = new StringBuilder();
        builder.Append("<table border='1'>");
        builder.Append("<tr>");
        builder.Append("<th>");
        builder.Append("Cat Family");
        builder.Append("</th>");
        builder.Append("</tr>");

        // Iterate over the data and populate the table rows
        foreach (var item in GetData())
        {
            builder.Append("<tr>");
            builder.Append("<td>");
            builder.Append(item.ToString());
            builder.Append("</td>");
            builder.Append("</tr>");
        }

        builder.Append("</table>");
        return builder.ToString();
    }

    /// <summary>
    /// Provides a list of data representing different members of the cat family
    /// </summary>
    /// <returns>List of strings</returns>
    static List<string> GetData()
    {
        List<string> data = new List<string>
        {
            "Lion",
            "Tiger",
            "Cat",
            "Cheetah",
            "Lynx"
        };

        return data;
    }
}
Imports System
Imports System.Collections.Generic
Imports System.Text
Imports IronPdf

Friend Class Program
	Shared Sub Main()
		' Create an instance of ChromePdfRenderer
		Dim renderer = New IronPdf.ChromePdfRenderer()

		' Render the HTML as PDF and save it as Test.pdf
		renderer.RenderHtmlAsPdf(BuildTemplate()).SaveAs("Test.pdf")
	End Sub

	''' <summary>
	''' Builds an HTML template string using StringBuilder
	''' </summary>
	''' <returns>HTML string representation of a table</returns>
	Private Shared Function BuildTemplate() As String
		Dim builder = New StringBuilder()
		builder.Append("<table border='1'>")
		builder.Append("<tr>")
		builder.Append("<th>")
		builder.Append("Cat Family")
		builder.Append("</th>")
		builder.Append("</tr>")

		' Iterate over the data and populate the table rows
		For Each item In GetData()
			builder.Append("<tr>")
			builder.Append("<td>")
			builder.Append(item.ToString())
			builder.Append("</td>")
			builder.Append("</tr>")
		Next item

		builder.Append("</table>")
		Return builder.ToString()
	End Function

	''' <summary>
	''' Provides a list of data representing different members of the cat family
	''' </summary>
	''' <returns>List of strings</returns>
	Private Shared Function GetData() As List(Of String)
		Dim data As New List(Of String) From {"Lion", "Tiger", "Cat", "Cheetah", "Lynx"}

		Return data
	End Function
End Class
$vbLabelText   $csharpLabel

在上述代码中

  • 首先我们创建 IronPDFChromePdfRenderer类的实例以访问 PDF 创建功能。
  • 接下来,我们调用RenderHtmlAsPdf并传递由BuildTemplate方法构建的 HTML 字符串。 此方法将 HTML 转换为 PDF。
  • BuildTemplate方法使用StringBuilder构建一个填充了数据的 HTML 表格。
  • GetData返回表示“猫科家族”的字符串列表,这些字符串填充 HTML 表格的行。

下面是使用上述代码和给定模板生成的示例 PDF 文件,仅用了几行代码。

如何在 C# 中从模板生成 PDF,图 7:生成的 PDF 文件 生成的 PDF 文件

任何类型的 HTML 标签都可以用来创建模板,可以帮助用户通过样本模板但不同的数据生成用户表单、收据等。

It is possible to use the method RenderUrlAsPdf or RenderHtmlFileAsPdf to generate PDF files from different sources. 前一种方法接受指向网页的 URL,而后一种方法接受包含计算机上 HTML 文件位置的字符串。

阅读本生成 PDF 的教程,了解更多信息。

结论

在生产中使用 IronPDF,无需水印,下载免费试用密钥。 IronPDF 提供 SaaS 和 OEM 重新分发许可,需额外付费。了解更多,请参考 IronPDF 许可页面

常见问题解答

如何使用 C# 从 HTML 模板生成 PDF?

您可以使用 IronPDF 从 HTML 模板在 C# 中生成 PDF。首先,使用StringBuilder类创建包含数据占位符的HTML字符串。然后,用您的数据填充模板,并使用 IronPDF 的 RenderHtmlAsPdf 方法将 HTML 转换为 PDF 文档。

IronPDF 提供哪些方法将 HTML 转换为 PDF?

IronPDF 提供多种将 HTML 转换为 PDF 的方法,包括用于 HTML 字符串的 RenderHtmlAsPdf,用于本地 HTML 文件的 RenderHtmlFileAsPdf,以及通过 URL 用于网页的 RenderUrlAsPdf。 这些方法允许从不同的HTML源灵活创建PDF。

如何在我的 C# 项目中安装 IronPDF?

要在 C# 项目中安装 IronPDF,您可以使用 Visual Studio 的 NuGet 包管理器。搜索 'IronPDF' 并点击安装,或使用命令 Install-Package IronPdf 在包管理器控制台中安装。

IronPDF 在将 HTML5 和 JavaScript 转换为 PDF 时能处理复杂的情况吗?

是的,IronPDF 可以处理复杂的 HTML5 和 JavaScript,确保复杂网页转换为 PDF 文档时保持预期格式和功能。

在 C# 中从模板生成 PDF 的一些常见用途是什么?

在 C# 中从模板生成 PDF 的常用用途包括创建发票、报告和表单。 IronPDF 允许您通过将填充数据的动态 HTML 模板转换为专业外观的 PDF 文档来自动化这些流程。

IronPDF 是否兼容 ASP.NET 和 Windows Forms?

是的,IronPDF 兼容各种 .NET Framework 项目类型,包括 ASP.NET 和 Windows Forms,使其在不同的应用程序开发环境中具有多功能性。

如何创建新的 Visual Studio 项目以使用 IronPDF 生成 PDF?

要创建一个新的 Visual Studio 项目以使用 IronPDF,打开 Visual Studio,选择'新建项目',选择'控制台应用程序',指定项目名称和位置,选择一个 .NET Framework,然后点击'创建'。 之后,通过 NuGet 安装 IronPDF。

IronPDF 能否从带登录表单的受保护网页生成 PDF?

是的,IronPDF 可以从需要通过 HTML 登录表单进行身份验证的网页生成 PDF,使您能够有效处理安全和受保护的网页内容。

IronPDF 是否完全兼容 .NET 10?如果是,这种兼容具体包含哪些内容?

是的,IronPDF 完全兼容 .NET 10。它无需任何额外配置即可在 .NET 10 项目中开箱即用,支持现代部署目标(Windows、Linux、容器),并充分利用 .NET 10 中的全新性能改进,同时保持相同的 API 和功能集。(来源:IronPDF 关于与 .NET 10 兼容性的文档)

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。