
如何在C#中生成PDF
PDF 文档在当今文化中很普遍,被各种企业用于创建发票和其他文档。 选择 .NET 库用于项目时,应考虑创建、读取和写入 PDF 文件的便捷性。
如何用 C# 从模板生成 PDF
- 安装 C# 库从模板生成 PDF
- 使用 StringBuilder 类构建 HTML 字符串
- 用列表的存储数据填充 HTML 模板
- 使用 RenderHtmlAsPdf 方法从模板生成 PDF
- 将生成的 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 的完整功能包括:
- 将 图像转换为 PDF (以及将 PDF 页面转换为图像)
- 合并和拆分 PDF
- 程序化完成 PDF 表单
- 从 PDF 中提取文本和图像
- IronPDF 可以将图片文件以及 HTML 文件转换成 PDF
- 从网页、HTML 标记和离线 HTML 文档创建 PDF
- 从隐藏在 HTML 登录表单后的网页生成 PDF。
- 注释 PDF。
- 添加页眉、页脚、文本、图像、书签、水印等
在 Visual Studio 中创建新项目
本文将演示 IronPDF 的文档生成能力,并使用简单的控制台应用程序。
打开 Visual Studio 软件并进入文件菜单。 选择"新建项目",然后选择"控制台应用程序"。
新项目
指定项目名称及其位置。 单击 下一步 按钮并选择 .NET Framework。
.NET Framework 选择
最后,单击 创建 生成新的 Visual Studio 项目。
.NET Program.cs
3. 安装IronPDF库
可以通过四种方式下载并安装 IronPDF 库。
这四种方式是:
- 使用 Visual Studio。
- 使用 Visual Studio 命令行。
- 直接从 NuGet 网站下载。
- 直接从 IronPDF 网站下载。
3.1 使用Visual Studio
NuGet 包管理器可在 Visual Studio 软件中使用,用于从 NuGet 轻松安装包。 下面的截图显示了如何打开 NuGet 包管理器 GUI。
NuGet 软件包管理器
在包管理器 GUI 的浏览选项卡中搜索"IronPDF"。
IronPDF 安装
选择IronPdf包(第一个选项)并点击_安装_按钮将其添加到解决方案中。
3.2 使用Visual Studio命令行
在 Visual Studio 中,进入工具 > NuGet 包管理器 > 包管理器控制台
在包管理器控制台选项卡中输入以下命令并按 ENTER。
安装IronPDF
3.3 直接从 NuGet 网站下载
- 导航到 IronPDF NuGet 包页面。
- 在右侧菜单中单击下载包。
- 在 Windows 资源管理器中双击下载的包以自动安装到您的项目中。
3.4 直接从 IronPDF 网站下载
直接下载包含 最新版本的 IronPDF ZIP 文件。
下载后,按照以下步骤将包添加到项目中。
- 右键单击解决方案资源管理器窗口中的项目。
- 然后选择引用选项并浏览下载的引用的位置。
- 然后,单击确定以添加参考。
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;
}
}Imports System
Imports System.Collections.Generic
Imports System.Text
Imports IronPdf
Module Program
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 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
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 Function GetData() As List(Of String)
Dim data As New List(Of String) From {
"Lion",
"Tiger",
"Cat",
"Cheetah",
"Lynx"
}
Return data
End Function
End Module在上述代码中
- 首先,我们创建一个IronPDF
ChromePdfRenderer类的实例,以访问PDF创建功能。 - 接下来,我们调用
BuildTemplate方法构建的HTML字符串。 此方法将 HTML 转换为 PDF。 StringBuilder构建了一个以数据填充的HTML表格。GetData返回一个表示'猫科'的字符串列表,这些字符串填充HTML表格的行。
下面是使用上述代码和给定模板生成的示例 PDF 文件,仅用了几行代码。
生成的 PDF 文件
任何类型的 HTML 标签都可以用来创建模板,可以帮助用户通过样本模板但不同的数据生成用户表单、收据等。
可以使用方法RenderUrlAsPdf或RenderHtmlFileAsPdf从不同来源生成PDF文件。 前一种方法接受指向网页的 URL,而后一种方法接受包含计算机上 HTML 文件位置的字符串。
阅读本生成 PDF 的教程,了解更多信息。
结论
在生产中使用 IronPDF,无需水印,下载免费试用密钥。 IronPDF 提供 SaaS 和 OEM 重新分发许可,需额外付费。了解更多,请参考 IronPDF 许可页面。

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


