跳至页脚内容
使用IRONPDF

如何在ASP.NET中使用C#将HTML转换为PDF

在现代Web应用程序中,从HTML内容生成文档是一种常见需求。 无论您需要创建发票、报告还是其他类型的文档,都可以通过在ASP.NET中使用C#高效地将HTML转换为PDF,并利用IronPDF库实现这一点。

今天,我们将探索如何设置IronPDF并使用它将HTML内容转换为PDF文档。

如何在ASP.NET中使用IronPDF将HTML转换为PDF

  1. 使用Visual Studio或您选择的IDE创建一个ASP.NET项目。
  2. 安装IronPDF并设置您的许可证密钥。
  3. 创建一个新的控制器或页面,您希望在此处理PDF转换。
  4. 在控制器中编写您的转换逻辑。
  5. 配置路由以允许访问您的PDF生成操作。

IronPDF概述

IronPDF是一个强大的PDF库,允许开发者读取、创建和操作PDF文档。 凭借丰富的功能集和快速、简单的安装过程,您可以快速将您的PDF项目提升到新水平,感谢IronPDF。 其直观的API易于学习,如果您希望直接从Web应用程序生成动态PDF文档,执行PDF安全任务、PDF注释等,则使其成为理想选择。

特点

  • PDF转换:IronPDF可以将HTML文件转换为PDF,完全支持现代Web标准。 您可以放心,IronPDF将始终如一地从您的HTML页面返回像素完美的PDF。 IronPDF还可以将其他格式的文件转换为PDF,如DOCX、图像、RTF等。
  • PDF生成:使用IronPDF,您可以从任何网页、ASPX文件、HTML字符串或更多内容生成PDF。
  • 安全功能: 通过 IronPDF,您始终可以确保任何敏感的PDF文件安全,因为它的安全功能。 使用IronPDF加密您的PDF文件,设置密码,并为PDF文件设置权限。
  • PDF 编辑功能: 使用 IronPDF,您可以处理现有的PDF文档,轻松地编辑它们并阅读PDF文件。 IronPDF提供编辑功能,如添加页眉和页脚,将文本和图像印在PDF页面上,为PDF添加自定义水印,处理PDF表单,以及拆分或合并PDF文件。

前提条件

在开始前,请确保您准备了:

  • Visual Studio或设置了其他C#开发环境。
  • 安装了IronPDF库。 您可以从NuGet或直接从IronPDF网站获取它。

创建新的ASP.NET项目

启动Visual Studio并选择最适合您需求的ASP.NET项目类型。 对于今天的例子,我将创建一个ASP.NET Core Web应用程序(模型视图控制器)。

如何在ASP .NET中使用C#将HTML转换为PDF:图1

然后,为您的项目输入名称并选择位置来存放项目。

如何在ASP .NET中使用C#将HTML转换为PDF:图2

最后,为项目选择您的.NET Framework,并更改任何项目的附加设置,例如身份验证类型或启用容器支持和docker。

如何在ASP .NET中使用C#将HTML转换为PDF:图3

创建一个控制器

要创建一个新的控制器以容纳我们的HTML到PDF代码,首先在解决方案资源管理器中右键点击"Controllers"文件夹并选择"添加 -> 控制器"。

如何在ASP .NET中使用C#将HTML转换为PDF:图4

这将提示一个新窗口打开,您可以选择要向项目添加哪种形式的控制器。 我们选择了一个空的MVC控制器。

如何在ASP .NET中使用C#将HTML转换为PDF:图5

最后,我们给新控制器命名并点击"添加"以将其添加到我们的项目。

如何在ASP .NET中使用C#将HTML转换为PDF:图6

添加HTML到PDF转换代码

现在我们已经创建了我们的ASP.NET项目,我们可以开始编写代码以将HTML文件内容转换为PDF。 我们将从一个简单的HTML字符串到PDF的示例开始,然后再看看带有自定义的HTML内容转换。

using IronPdf;
using Microsoft.AspNetCore.Mvc;

namespace IronPdfTest.Controllers
{
    public class PdfController : Controller
    {
        // Action method to generate a PDF from HTML content
        public IActionResult GeneratePdf()
        {
            // String of HTML code to be converted to PDF
            string htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF generated from HTML.</p>";

            // Creating a renderer to convert the HTML string to PDF
            ChromePdfRenderer renderer = new ChromePdfRenderer();

            // Convert HTML string to PDF
            PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent);

            // Return the generated PDF file
            return File(pdf.BinaryData, "application/pdf", "generatedDocument.pdf");
        }
    }
}
using IronPdf;
using Microsoft.AspNetCore.Mvc;

namespace IronPdfTest.Controllers
{
    public class PdfController : Controller
    {
        // Action method to generate a PDF from HTML content
        public IActionResult GeneratePdf()
        {
            // String of HTML code to be converted to PDF
            string htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF generated from HTML.</p>";

            // Creating a renderer to convert the HTML string to PDF
            ChromePdfRenderer renderer = new ChromePdfRenderer();

            // Convert HTML string to PDF
            PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent);

            // Return the generated PDF file
            return File(pdf.BinaryData, "application/pdf", "generatedDocument.pdf");
        }
    }
}
Imports IronPdf
Imports Microsoft.AspNetCore.Mvc

Namespace IronPdfTest.Controllers
	Public Class PdfController
		Inherits Controller

		' Action method to generate a PDF from HTML content
		Public Function GeneratePdf() As IActionResult
			' String of HTML code to be converted to PDF
			Dim htmlContent As String = "<h1>Hello, IronPDF!</h1><p>This is a PDF generated from HTML.</p>"

			' Creating a renderer to convert the HTML string to PDF
			Dim renderer As New ChromePdfRenderer()

			' Convert HTML string to PDF
			Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(htmlContent)

			' Return the generated PDF file
			Return File(pdf.BinaryData, "application/pdf", "generatedDocument.pdf")
		End Function
	End Class
End Namespace
$vbLabelText   $csharpLabel

如何在ASP .NET中使用C#将HTML转换为PDF:图7

ASP.NET MVC使用控制器来处理用户请求。 当用户导航到一个特定URL时,ASP.NET将调用与该路由关联的控制器中的方法。

  • PdfController是一个从Controller继承的类,这意味着它可以处理Web请求并发送响应。
  • 该控制器内的GeneratePdf方法将处理一个请求以将HTML转换为PDF并返回结果。

当用户访问链接到GeneratePdf操作的URL时,该方法将执行。

  • IActionResult:这是返回类型,代表Web应用程序将发送回用户的响应。 可能是一个视图(HTML页面)、文件下载等。在这种情况下,是一个PDF文件。

    • GeneratePdf() 方法

    • 在方法内部,我们定义了一个包含您要转换为PDF的HTML的字符串htmlContent。 For example, "<h1>Hello, IronPDF!</h1><p>This is a PDF generated from HTML.</p>".
  • 我们创建了一个新的ChromePdfRenderer实例,它处理HTML到PDF的转换。

  • 方法RenderHtmlAsPdf()接收HTML字符串并返回一个PDF对象。

配置路由

在ASP.NET MVC应用程序中,您定义路由,将URL映射到控制器方法(动作)。 例如,如果您在浏览器中导航到/Pdf/GeneratePdf,ASP.NET将查找PdfController并调用其GeneratePdf方法。 确保您的路由配置允许访问GeneratePdf操作。 如果您使用的是ASP.NET Core MVC,这通常会被自动配置。 如果您使用的是Web API,请确保您的路由已正确设置。

自定义PDF输出

现在我们已经掌握了基础知识,让我们来看看如何从HTML内容创建PDF文件,并为输出PDF设置一些自定义设置。 IronPDF提供了强大的PDF自定义工具集,例如边距页眉/页脚自定义PDF大小等。

using IronPdf;
using Microsoft.AspNetCore.Mvc;

namespace IronPdfTest.Controllers
{
    // Controller for our PDF converter
    public class PdfController : Controller
    {
        // Action method to generate a customized PDF from HTML content
        public IActionResult GeneratePdf()
        {
            // String of HTML code to be converted to PDF
            string htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF generated from HTML.</p>";

            // Creating a renderer to convert the URL to PDF
            ChromePdfRenderer renderer = new ChromePdfRenderer();

            // Creating the cover page
            PdfDocument cover = renderer.RenderHtmlAsPdf("<h1>Cover Page</h1>");

            // Adding custom options for our final PDF
            renderer.RenderingOptions.PaperOrientation = IronPdf.Rendering.PdfPaperOrientation.Landscape;
            renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A3;
            renderer.RenderingOptions.TextHeader.CenterText = "IronPDF";
            renderer.RenderingOptions.TextHeader.FontSize = 12;
            renderer.RenderingOptions.MarginTop = 20;
            renderer.RenderingOptions.FirstPageNumber = 2;

            // Creating our main PDF
            PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent);

            // Appending the cover to the main PDF
            pdf.InsertPdf(cover, 0);

            // Return the customized generated PDF file
            return File(pdf.BinaryData, "application/pdf", "generatedDocument.pdf");
        }
    }
}
using IronPdf;
using Microsoft.AspNetCore.Mvc;

namespace IronPdfTest.Controllers
{
    // Controller for our PDF converter
    public class PdfController : Controller
    {
        // Action method to generate a customized PDF from HTML content
        public IActionResult GeneratePdf()
        {
            // String of HTML code to be converted to PDF
            string htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF generated from HTML.</p>";

            // Creating a renderer to convert the URL to PDF
            ChromePdfRenderer renderer = new ChromePdfRenderer();

            // Creating the cover page
            PdfDocument cover = renderer.RenderHtmlAsPdf("<h1>Cover Page</h1>");

            // Adding custom options for our final PDF
            renderer.RenderingOptions.PaperOrientation = IronPdf.Rendering.PdfPaperOrientation.Landscape;
            renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A3;
            renderer.RenderingOptions.TextHeader.CenterText = "IronPDF";
            renderer.RenderingOptions.TextHeader.FontSize = 12;
            renderer.RenderingOptions.MarginTop = 20;
            renderer.RenderingOptions.FirstPageNumber = 2;

            // Creating our main PDF
            PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent);

            // Appending the cover to the main PDF
            pdf.InsertPdf(cover, 0);

            // Return the customized generated PDF file
            return File(pdf.BinaryData, "application/pdf", "generatedDocument.pdf");
        }
    }
}
Imports IronPdf
Imports Microsoft.AspNetCore.Mvc

Namespace IronPdfTest.Controllers
	' Controller for our PDF converter
	Public Class PdfController
		Inherits Controller

		' Action method to generate a customized PDF from HTML content
		Public Function GeneratePdf() As IActionResult
			' String of HTML code to be converted to PDF
			Dim htmlContent As String = "<h1>Hello, IronPDF!</h1><p>This is a PDF generated from HTML.</p>"

			' Creating a renderer to convert the URL to PDF
			Dim renderer As New ChromePdfRenderer()

			' Creating the cover page
			Dim cover As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Cover Page</h1>")

			' Adding custom options for our final PDF
			renderer.RenderingOptions.PaperOrientation = IronPdf.Rendering.PdfPaperOrientation.Landscape
			renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A3
			renderer.RenderingOptions.TextHeader.CenterText = "IronPDF"
			renderer.RenderingOptions.TextHeader.FontSize = 12
			renderer.RenderingOptions.MarginTop = 20
			renderer.RenderingOptions.FirstPageNumber = 2

			' Creating our main PDF
			Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(htmlContent)

			' Appending the cover to the main PDF
			pdf.InsertPdf(cover, 0)

			' Return the customized generated PDF file
			Return File(pdf.BinaryData, "application/pdf", "generatedDocument.pdf")
		End Function
	End Class
End Namespace
$vbLabelText   $csharpLabel

如何在ASP .NET中使用C#将HTML转换为PDF:图8

结论

今天我们更仔细地看了一下如何利用ASP.NET进行HTML到PDF转换,并探索了在ASP.NET项目中从HTML创建PDF文件的过程。 通过遵循上面列出的步骤,您可以轻松地将PDF生成集成到您的Web应用程序中,允许您从HTML内容中创建高质量的可打印文档。

IronPDF具有丰富的功能集,可用于生成高质量的PDF文档。 有关更高级的功能和详细的自定义,请参阅IronPDF文档。 通过快速安装,您可以在不久的时间内将IronPDF设置在您的项目中。

常见问题解答

我如何在ASP.NET中使用C#将HTML内容转换为PDF?

要在ASP.NET中使用C#将HTML内容转换为PDF,您可以使用IronPDF库。首先,在Visual Studio中设置您的ASP.NET项目,通过NuGet安装IronPDF,并配置您的许可证密钥。然后,创建一个使用IronPDF的ChromePdfRenderer类将HTML内容渲染为PDF文档的控制器。

在ASP.NET项目中设置IronPDF涉及哪些步骤?

在ASP.NET项目中设置IronPDF涉及在Visual Studio中创建一个新的ASP.NET项目,通过NuGet包管理器安装IronPDF,并输入您的许可证密钥。设置后,您可以利用IronPDF的功能将HTML转换为PDF。

我如何在ASP.NET控制器中处理PDF转换逻辑?

在ASP.NET控制器中,您可以使用IronPDF的ChromePdfRenderer处理PDF转换逻辑。创建一个动作方法,接收HTML内容并应用RenderHtmlAsPdf方法生成PDF,然后可以返回给客户端。

IronPDF提供了哪些自定义PDF输出的选项?

IronPDF允许您通过设置纸张大小、方向、边距以及添加页眉和页脚等选项来自定义PDF输出。这些可以在配置PDF文档时,通过RenderingOptions属性来调整。

如何确保使用IronPDF从HTML中获得高质量的PDF输出?

IronPDF支持现代网络标准,可确保从HTML中获得高质量的PDF输出。通过使用ChromePdfRenderer,您可以保持一致的格式和样式,从而生成专业外观的PDF文档。

IronPDF可以集成到现有的ASP.NET Web应用程序中吗?

是的,IronPDF可以轻松集成到现有的ASP.NET Web应用程序中。在通过NuGet安装库并配置许可证后,您可以使用它将HTML内容转换为PDF,从而增强应用程序的文档生成功能。

在ASP.NET项目中使用IronPDF的常见故障排除提示有哪些?

如果在ASP.NET项目中遇到IronPDF的问题,请确保库已通过NuGet正确安装,检查许可证密钥是否有效,并检查控制器的转换逻辑,以发现HTML渲染或PDF生成中的任何错误。

在哪里可以找到关于使用IronPDF进行HTML到PDF转换的其他资源?

关于使用IronPDF的额外资源和文档可以在IronPDF官方网站上找到,您可以在那里访问指南、API文档和示例,帮助您在ASP.NET中有效地使用该库进行HTML到PDF转换。

IronPDF 是否兼容新发布的 .NET 10?.NET 10 为 HTML 到 PDF 的转换带来了哪些好处?

是的——IronPDF 完全兼容 .NET 10。它“开箱即用”地支持 .NET 10,包括跨平台部署、新的运行时性能增强(例如减少堆分配、优化内存使用以及更好地兼容现代 C# 特性)。这些改进意味着在 .NET 10 下,使用 IronPDF 进行 HTML 到 PDF 的转换速度更快、效率更高、更易于维护。

Curtis Chau
技术作家

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

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