使用IRONPDF

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

Kannaopat Udonpant
坎那帕·乌东攀
2023年一月27日
更新 2024年二月25日
分享:

PDF 文档在当今文化中非常普遍,被各种企业用于创建发票和其他文档。 在为项目选择 .NET 库时,应考虑创建、阅读和编写 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 软件,进入文件菜单。 选择 "新项目",然后选择 "控制台应用程序"。

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

新项目

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

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

.NET 框架选择

最后,点击 _Create 生成新的 Visual Studio 项目。

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

.NET Program.cs

3.安装 IronPDF 库

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

这四种方式是

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

3.1 使用 Visual Studio

Visual Studio 软件中提供了 NuGet 软件包管理器,可轻松安装来自 NuGet 的软件包。 下面的截图显示了如何打开 NuGet 包管理器图形用户界面。

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

NuGet 包管理器

在软件包管理器图形用户界面的 "浏览 "选项卡中搜索 "IronPdf"。

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

IronPDF 安装

选择IronPdf包(第一个选项)并点击_安装_按钮将其添加到解决方案中。

3.2 使用 Visual Studio 命令行

在 Visual Studio 中,依次转到 工具 > NuGet 包管理器 > 包管理器控制台

在 "软件包管理器控制台 "选项卡中输入以下命令,然后按 ENTER 键。

Install-Package IronPdf

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

安装 IronPDF

3.3 直接从 NuGet 网站下载

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

3.4 直接从 IronPDF 网站下载

直接下载包含最新版本IronPDF包的IronPDF ZIP文件

下载完成后,请按照以下步骤将软件包添加到项目中。

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

4.从模板创建 PDF 文档

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

var renderer = new IronPdf.ChromePdfRenderer();
renderer.RenderHtmlAsPdf(BuildTemplate()).SaveAs("Test.pdf");

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

static List<string> GetData()
{
    List<string> _data = new List<string>();
    _data.Add("Lion");
    _data.Add("Tiger");
    _data.Add("Cat");
    _data.Add("cheetah");
    _data.Add("lynx");
    return _data;
}
var renderer = new IronPdf.ChromePdfRenderer();
renderer.RenderHtmlAsPdf(BuildTemplate()).SaveAs("Test.pdf");

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

static List<string> GetData()
{
    List<string> _data = new List<string>();
    _data.Add("Lion");
    _data.Add("Tiger");
    _data.Add("Cat");
    _data.Add("cheetah");
    _data.Add("lynx");
    return _data;
}
Dim renderer = New IronPdf.ChromePdfRenderer()
renderer.RenderHtmlAsPdf(BuildTemplate()).SaveAs("Test.pdf")

'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'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>");
'	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();
'}

'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'static List(Of string) GetData()
'{
'	List<string> _data = New List<string>();
'	_data.Add("Lion");
'	_data.Add("Tiger");
'	_data.Add("Cat");
'	_data.Add("cheetah");
'	_data.Add("lynx");
'	Return _data;
'}
$vbLabelText   $csharpLabel

在上述代码中,首先为 IronPDF 类创建一个对象,该对象允许访问 IronPDF 的所有功能。 然后使用 RenderHtmlAsPdf 方法从 HTML 字符串创建 PDF 文档。 通过使用RenderHtmlAsPdf方法。 此方法还接受字符串可能包含的内部和外部 CSS 文件的引用。

上述代码使用List<string>对象从列表中构建一个HTML字符串,并使用HTML标签table、table row和table definition构建一个HTML模板。 for 循环用于将数据逐一与给定的 HTML 模板绑定。 这意味着可以传递任何字符串类型或数据模型对象列表,并将其保存到 PDF 文件中。

下面是 PDF 文件示例,它是根据上述代码使用给定模板生成的,只需几行。

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

生成的PDF文件

可以使用任何类型的 HTML 标签来创建模板,帮助用户生成用户表单、收据等,模板可以是示例模板,但数据不同。

可以使用方法RenderUrlAsPdfRenderHtmlFileAsPdf从不同的来源生成PDF文件。 前一种方法接受的是网页的 URL,而后一种方法接受的是包含计算机上 HTML 文件位置的字符串。

有关详细信息,请阅读此从HTML生成PDF的教程

结论

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

Kannaopat Udonpant
坎那帕·乌东攀
软件工程师
在成为软件工程师之前,Kannapat 从日本北海道大学完成了环境资源博士学位。在攻读学位期间,Kannapat 还成为了生物生产工程系车辆机器人实验室的成员。2022年,他利用自己的 C# 技能加入了 Iron Software 的工程团队,专注于 IronPDF。Kannapat 珍视他的工作,因为他能直接向编写 IronPDF 大部分代码的开发者学习。除了同伴学习,Kannapat 还享受在 Iron Software 工作的社交方面。不写代码或文档时,Kannapat 通常在 PS5 上玩游戏或重看《最后生还者》。
< 前一页
使用IronPDF在C#中的PDFium替代品
下一步 >
如何从URL下载PDF(C#逐步教程)