跳至页脚内容
使用IRONPDF

ASP 将 HTML 转换为 PDF:使用 IronPDF 的完整指南

开发人员如何在 ASP.NET Core 中将 HTML 转换为 PDF?

IronPDF 利用 Chrome 的渲染引擎,让您在 ASP.NET Core 中轻松将 HTML 转换为 PDF。只需几行代码,即可将动态网页内容、报表和发票转换为精确的 PDF 文件,同时保留所有 CSS 样式和 JavaScript 功能。

在您的 ASP.NET Core 应用程序中挣扎着获取清晰、精确的报告和发票?您并不孤单。

每个开发人员最终都需要将动态网页内容(例如报告或确认)转换为可靠、可下载的 PDF 版本。 这是生成从发票、详细报告到安全文档格式的一项基本要求。 当您需要生成 PDF 报告创建专业发票时,此过程尤为重要。

挑战是什么? 将复杂的 HTML 以及所有的 CSS 和 JavaScript 完美地呈现为 PDF。 这就是 IronPDF 的作用。 我们有一个高效的.NET PDF 库,它使用Chrome 的 HTML 内容渲染引擎来简化 HTML 到 PDF 的转换过程,确保您获得与屏幕上所见完全一致的结果。 即使是最复杂的 HTML,只需几行代码即可轻松转换为 PDF 文件格式,无论您使用的是ASPX 页面还是现代Razor 视图

准备好看看了吗? 让我们开始看看如何使用 IronPDF 处理 ASP.NET Core HTML 到 PDF 的转换任务,包括URL 到 PDF 的转换HTML 字符串渲染HTML 文件处理

立即开始免费试用,开始将 HTML 文档转换为 PDF 文档。

开始使用 IronPDF 的步骤是什么?

在 ASP.NET Core 项目中安装 IronPDF 只需要在NuGet 包管理器控制台中执行一个命令:

Install-Package IronPdf
Install-Package IronPdf
SHELL

这个 .NET Framework 库提供了完整的 HTML 渲染功能,支持现代 HTML 元素、CSS 样式和 JavaScript 执行。 PDF转换器能够流畅地处理复杂的HTML结构和CSS属性,包括Bootstrap和Flex布局。 它对于管理各种文档格式至关重要,并支持在 WindowsLinuxmacOSAzure上部署。

对于高级安装场景,您可以探索Docker 部署或配置 IronPDF作为远程容器运行。 该库还支持在AWS Lambda 上部署无服务器应用程序。

如何将 HTML 字符串转换为 PDF 文档?

将 HTML 字符串直接转换为 PDF 文件并不复杂。 以下代码创建了一个完整的 ASP.NET Core 控制器,该控制器使用IronPDF 的 HTML 字符串转 PDF 功能将 HTML 内容转换为 PDF 文档:

using Microsoft.AspNetCore.Mvc;
using IronPdf;

namespace HtmlToPdf.Controllers
{
    public class PdfController : Controller
    {
        public IActionResult Index()
        {
            return View();
        }

        [HttpGet]
        public IActionResult ConvertHtmlStringToPdf()
        {
            string htmlContent = @"
<html>
  <head>
    <title>IronPDF Test</title>
    <style>
      body { font-family: Arial; margin: 40px; }
      h1 { color: #2b5797; }
      table { border-collapse: collapse; width: 100%; margin-top: 20px; }
      th, td { border: 1px solid #ccc; padding: 8px; }
      th { background: #f0f0f0; }
    </style>
  </head>
  <body>
    <h1>IronPDF HTML to PDF Test</h1>
    <p>This is a simple test of converting an HTML string to PDF using IronPDF.</p>
    <table>
      <tr><th>Item</th><th>Price</th></tr>
      <tr><td>Apples</td><td>$1.50</td></tr>
      <tr><td>Bananas</td><td>$0.90</td></tr>
    </table>
    <p><em>End of test document.</em></p>
  </body>
</html>";
            // Initialize the PDF converter
            var renderer = new ChromePdfRenderer();
            // Configure default page size and other settings
            renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
            renderer.RenderingOptions.MarginTop = 20;
            renderer.RenderingOptions.MarginBottom = 20;
            // Convert HTML string to PDF document
            var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);
            // Return PDF file to user, allowing them to download PDF version
            return File(pdfDocument.BinaryData, "application/pdf", "output.pdf");
        }
    }
}
using Microsoft.AspNetCore.Mvc;
using IronPdf;

namespace HtmlToPdf.Controllers
{
    public class PdfController : Controller
    {
        public IActionResult Index()
        {
            return View();
        }

        [HttpGet]
        public IActionResult ConvertHtmlStringToPdf()
        {
            string htmlContent = @"
<html>
  <head>
    <title>IronPDF Test</title>
    <style>
      body { font-family: Arial; margin: 40px; }
      h1 { color: #2b5797; }
      table { border-collapse: collapse; width: 100%; margin-top: 20px; }
      th, td { border: 1px solid #ccc; padding: 8px; }
      th { background: #f0f0f0; }
    </style>
  </head>
  <body>
    <h1>IronPDF HTML to PDF Test</h1>
    <p>This is a simple test of converting an HTML string to PDF using IronPDF.</p>
    <table>
      <tr><th>Item</th><th>Price</th></tr>
      <tr><td>Apples</td><td>$1.50</td></tr>
      <tr><td>Bananas</td><td>$0.90</td></tr>
    </table>
    <p><em>End of test document.</em></p>
  </body>
</html>";
            // Initialize the PDF converter
            var renderer = new ChromePdfRenderer();
            // Configure default page size and other settings
            renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
            renderer.RenderingOptions.MarginTop = 20;
            renderer.RenderingOptions.MarginBottom = 20;
            // Convert HTML string to PDF document
            var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);
            // Return PDF file to user, allowing them to download PDF version
            return File(pdfDocument.BinaryData, "application/pdf", "output.pdf");
        }
    }
}
Imports Microsoft.AspNetCore.Mvc
Imports IronPdf

Namespace HtmlToPdf.Controllers
    Public Class PdfController
        Inherits Controller

        Public Function Index() As IActionResult
            Return View()
        End Function

        <HttpGet>
        Public Function ConvertHtmlStringToPdf() As IActionResult
            Dim htmlContent As String = "
<html>
  <head>
    <title>IronPDF Test</title>
    <style>
      body { font-family: Arial; margin: 40px; }
      h1 { color: #2b5797; }
      table { border-collapse: collapse; width: 100%; margin-top: 20px; }
      th, td { border: 1px solid #ccc; padding: 8px; }
      th { background: #f0f0f0; }
    </style>
  </head>
  <body>
    <h1>IronPDF HTML to PDF Test</h1>
    <p>This is a simple test of converting an HTML string to PDF using IronPDF.</p>
    <table>
      <tr><th>Item</th><th>Price</th></tr>
      <tr><td>Apples</td><td>$1.50</td></tr>
      <tr><td>Bananas</td><td>$0.90</td></tr>
    </table>
    <p><em>End of test document.</em></p>
  </body>
</html>"
            ' Initialize the PDF converter
            Dim renderer = New ChromePdfRenderer()
            ' Configure default page size and other settings
            renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4
            renderer.RenderingOptions.MarginTop = 20
            renderer.RenderingOptions.MarginBottom = 20
            ' Convert HTML string to PDF document
            Dim pdfDocument = renderer.RenderHtmlAsPdf(htmlContent)
            ' Return PDF file to user, allowing them to download PDF version
            Return File(pdfDocument.BinaryData, "application/pdf", "output.pdf")
        End Function
    End Class
End Namespace
$vbLabelText   $csharpLabel

生成的 PDF 看起来像什么?

! PDF 查看器正在显示一个使用 IronPDF 创建的测试文档,其中包含一个简单的表格,表格中包含一些项目(苹果 1.50 美元,香蕉 0.90 美元),演示 HTML 到 PDF 的转换。

这段代码在处理网页时会在内部调用ImportFromUrl函数。 ChromePdfRenderer类负责处理转换过程,将 HTML 代码转换为格式正确的 PDF 文件。生成的 PDF 文档会保留所有 HTML 标签、CSS 文件,甚至包括 HTML 字符串中的内联样式。 此过程对于准确转换具有自定义边距特定纸张尺寸的PDF 页面至关重要。

您可以通过添加页眉和页脚应用水印设置页码来进一步改进您的 PDF 文件。 IronPDF 还支持PDF 压缩,可在不牺牲质量的前提下减小文件大小。

如何将 HTML 文件转换为 PDF 文件?

在处理服务器上现有的 HTML 文件时,IronPDF 可以转换 HTML 文件内容,同时保留所有链接资源。 这种方法非常适合基于模板的文档生成,并且支持基本 URL 配置以正确加载资源:

using IronPdf;
using Microsoft.AspNetCore.Mvc;
using System.IO;

namespace YourApp.Controllers
{
    public class DocumentController : Controller
    {
        private readonly IWebHostEnvironment _environment;

        public DocumentController(IWebHostEnvironment environment)
        {
            _environment = environment;
        }

        [HttpGet]
        public IActionResult GeneratePdfFromTemplate(string templateName)
        {
            // Get path to HTML file
            string htmlFilePath = Path.Combine(_environment.WebRootPath, "templates", $"{templateName}.html");
            var renderer = new ChromePdfRenderer();
            // Configure rendering options
            renderer.RenderingOptions.EnableJavaScript = true;
            renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
            // Convert HTML file to PDF
            var pdf = renderer.RenderHtmlFileAsPdf(htmlFilePath);
            // Add headers and footers if needed
            renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
            {
                Height = 25,
                HtmlFragment = "<div style='text-align:center'>Company Report</div>"
            };
            return File(pdf.BinaryData, "application/pdf", $"{templateName}_generated.pdf");
        }
    }
}
using IronPdf;
using Microsoft.AspNetCore.Mvc;
using System.IO;

namespace YourApp.Controllers
{
    public class DocumentController : Controller
    {
        private readonly IWebHostEnvironment _environment;

        public DocumentController(IWebHostEnvironment environment)
        {
            _environment = environment;
        }

        [HttpGet]
        public IActionResult GeneratePdfFromTemplate(string templateName)
        {
            // Get path to HTML file
            string htmlFilePath = Path.Combine(_environment.WebRootPath, "templates", $"{templateName}.html");
            var renderer = new ChromePdfRenderer();
            // Configure rendering options
            renderer.RenderingOptions.EnableJavaScript = true;
            renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
            // Convert HTML file to PDF
            var pdf = renderer.RenderHtmlFileAsPdf(htmlFilePath);
            // Add headers and footers if needed
            renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
            {
                Height = 25,
                HtmlFragment = "<div style='text-align:center'>Company Report</div>"
            };
            return File(pdf.BinaryData, "application/pdf", $"{templateName}_generated.pdf");
        }
    }
}
Imports IronPdf
Imports Microsoft.AspNetCore.Mvc
Imports System.IO

Namespace YourApp.Controllers
    Public Class DocumentController
        Inherits Controller

        Private ReadOnly _environment As IWebHostEnvironment

        Public Sub New(environment As IWebHostEnvironment)
            _environment = environment
        End Sub

        <HttpGet>
        Public Function GeneratePdfFromTemplate(templateName As String) As IActionResult
            ' Get path to HTML file
            Dim htmlFilePath As String = Path.Combine(_environment.WebRootPath, "templates", $"{templateName}.html")
            Dim renderer = New ChromePdfRenderer()
            ' Configure rendering options
            renderer.RenderingOptions.EnableJavaScript = True
            renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
            ' Convert HTML file to PDF
            Dim pdf = renderer.RenderHtmlFileAsPdf(htmlFilePath)
            ' Add headers and footers if needed
            renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter With {
                .Height = 25,
                .HtmlFragment = "<div style='text-align:center'>Company Report</div>"
            }
            Return File(pdf.BinaryData, "application/pdf", $"{templateName}_generated.pdf")
        End Function
    End Class
End Namespace
$vbLabelText   $csharpLabel

模板转换结果如何显示?

PDF 查看器显示由 HTML 生成的月度销售报告,其中包含 IronPDF、IronOCR 和 IronXL 许可证的产品销售数据表格。

这种方法从磁盘读取 HTML 文档并在保持 HTML 结构的同时将其转换为 PDF 文件。 PDF 转换过程保留所有的 CSS 属性、图像 URL,甚至复杂的 HTML 元素。 您可能还会遇到一些高级场景,例如使用自定义纸张尺寸视口配置来设置特定的页面宽度。

IronPDF 擅长渲染 CSS 媒体类型,允许您使用特定于打印的样式。 该库还支持 Google Fonts 和FontAwesome网页字体和图标字体,确保您的 PDF 文件看起来与设计完全一致。

IronPDF 如何处理具有表单身份验证的网页?

ASP.NET Core 应用程序通常使用表单身份验证来保护内容。 在转换需要身份验证的 HTML 文档时,IronPDF 可以处理登录凭据并传递身份验证 cookie:

[Authorize]
public IActionResult ConvertAuthenticatedPage()
{
    var renderer = new ChromePdfRenderer();
    // Get current URL with authentication
    string currentUrl = $"{Request.Scheme}://{Request.Host}/SecureContent";
    // Pass authentication cookie
    var authCookie = Request.Cookies[".AspNetCore.Cookies"];
    if (!string.IsNullOrEmpty(authCookie))
    {
        renderer.RenderingOptions.CustomCssUrl = currentUrl;
    }
    // Convert authenticated page
    var pdf = renderer.RenderUrlAsPdf(currentUrl);
    return File(pdf.BinaryData, "application/pdf", "secure_document.pdf");
}
[Authorize]
public IActionResult ConvertAuthenticatedPage()
{
    var renderer = new ChromePdfRenderer();
    // Get current URL with authentication
    string currentUrl = $"{Request.Scheme}://{Request.Host}/SecureContent";
    // Pass authentication cookie
    var authCookie = Request.Cookies[".AspNetCore.Cookies"];
    if (!string.IsNullOrEmpty(authCookie))
    {
        renderer.RenderingOptions.CustomCssUrl = currentUrl;
    }
    // Convert authenticated page
    var pdf = renderer.RenderUrlAsPdf(currentUrl);
    return File(pdf.BinaryData, "application/pdf", "secure_document.pdf");
}
Imports Microsoft.AspNetCore.Mvc

<Authorize>
Public Function ConvertAuthenticatedPage() As IActionResult
    Dim renderer As New ChromePdfRenderer()
    ' Get current URL with authentication
    Dim currentUrl As String = $"{Request.Scheme}://{Request.Host}/SecureContent"
    ' Pass authentication cookie
    Dim authCookie As String = Request.Cookies(".AspNetCore.Cookies")
    If Not String.IsNullOrEmpty(authCookie) Then
        renderer.RenderingOptions.CustomCssUrl = currentUrl
    End If
    ' Convert authenticated page
    Dim pdf = renderer.RenderUrlAsPdf(currentUrl)
    Return File(pdf.BinaryData, "application/pdf", "secure_document.pdf")
End Function
$vbLabelText   $csharpLabel

这种方法可以识别经过身份验证后呈现的表格、表单和其他 HTML 内容。 HTTP 状态代码验证确保在 PDF 转换前成功检索页面。 如果 URL 无效或无法访问,则该过程将失败并显示相应的错误信息。 当 URL 指向同一个虚拟目录时,资源将被正确解析。 您还可以配置自定义 HTTP 请求标头以满足额外的安全要求。

为了提高安全性,请考虑对 PDF 文件应用密码和权限设置,或者对 PDF 文件进行数字签名,以确保文档完整性。 IronPDF 还支持PDF/A 合规性,用于长期存档;以及PDF/UA 格式,用于满足无障碍访问要求。

转换 ASPX 文件和动态内容怎么办?

对于旧版ASPX 文件转换或动态生成的文档,IronPDF 可以流畅地处理渲染过程。 这段简单的代码可以根据任何 HTTP 或 HTTPS 地址创建 PDF 页面,并支持JavaScript 执行

public IActionResult ConvertDynamicContent()
{
    var renderer = new ChromePdfRenderer();
    // Enable JavaScript for dynamic content
    renderer.RenderingOptions.EnableJavaScript = true;
    renderer.RenderingOptions.WaitFor.RenderDelay(1000); // Wait for content to load
    // Handle various HTML tags and dynamic elements
    string dynamicHtml = GenerateDynamicHtml(); // Your method
    var pdf = renderer.RenderHtmlAsPdf(dynamicHtml);
    return File(pdf.BinaryData, "application/pdf", "dynamic.pdf");
}
public IActionResult ConvertDynamicContent()
{
    var renderer = new ChromePdfRenderer();
    // Enable JavaScript for dynamic content
    renderer.RenderingOptions.EnableJavaScript = true;
    renderer.RenderingOptions.WaitFor.RenderDelay(1000); // Wait for content to load
    // Handle various HTML tags and dynamic elements
    string dynamicHtml = GenerateDynamicHtml(); // Your method
    var pdf = renderer.RenderHtmlAsPdf(dynamicHtml);
    return File(pdf.BinaryData, "application/pdf", "dynamic.pdf");
}
Imports IronPdf

Public Function ConvertDynamicContent() As IActionResult
    Dim renderer As New ChromePdfRenderer()
    ' Enable JavaScript for dynamic content
    renderer.RenderingOptions.EnableJavaScript = True
    renderer.RenderingOptions.WaitFor.RenderDelay(1000) ' Wait for content to load
    ' Handle various HTML tags and dynamic elements
    Dim dynamicHtml As String = GenerateDynamicHtml() ' Your method
    Dim pdf = renderer.RenderHtmlAsPdf(dynamicHtml)
    Return File(pdf.BinaryData, "application/pdf", "dynamic.pdf")
End Function
$vbLabelText   $csharpLabel

动态内容转换后是什么样子?

! PDF 查看器正在显示由 IronPDF 生成的测试文档,其中包含动态内容,并带有 JavaScript 设置的下午 4:14:10 时间戳。

HTML 转 PDF 时常见的问题是确保内容不会产生不必要的分页符。 IronPDF 通过适当的分页控制渲染延迟配置来最大限度地减少这种情况。 该库还支持异步 PDF 生成,以提高高流量应用程序的性能。

对于复杂的 JavaScript 应用程序,您可以在渲染之前执行自定义 JavaScript ,或者使用JavaScript 消息监听器进行高级交互。 IronPDF 甚至支持渲染 WebGL 网站JavaScript 图表

如何处理 CSS 样式和高级 HTML 渲染?

IronPDF 的 HTML 渲染引擎通过其完整的渲染选项支持高级 CSS 样式和 HTML5 功能。 在将 HTML 转换为 PDF 时,库处理 CSS 属性的解释,包括复杂的布局和响应式设计。 PDF 程序化地保持您的网页的视觉保真度,包括 CSS 文件、HTML 标签和 JavaScript 渲染的内容。

转换过程自动处理空白页面、多页和页面大小调整。 它还可以处理特殊场景,例如在特定页面上添加页眉/页脚,或者优雅地处理不存在的页面。 它旨在轻松转换复杂的网络内容,支持UTF-8 和国际语言SVG 图形嵌入式图像

高级功能包括生成目录创建 PDF 表单支持注释编辑 PDF 元数据。 您还可以合并或拆分 PDF 文件提取文本和图像,并添加书签以改善导航。

为什么选择 IronPDF 用于您的 .NET 项目?

IronPDF 是一款功能齐全的 .NET HTML 转 PDF 库,与AsposeiTextSyncfusion等竞争对手相比,它具有卓越的性能。 与基本的 PDF 转换器不同,它完全支持现代网络标准,处理从简单的 HTML 字符串到包含表单身份验证的复杂网络应用程序的所有内容。

该库在转换 HTML 文档时表现出色,同时保留了所有格式,使其成为在您的 .NET Core 应用程序中生成专业 PDF 文档的理想选择。 无论您需要转换 HTML 文件、处理 HTML 内容,还是从现有的 PDF 文档模板生成 PDF,IronPDF 都能提供顺利进行 PDF 转换所需的工具。 它支持Blazor 应用程序MAUI 项目,除了 C# 之外,还可以使用F#VB.NET进行编程。

对于企业环境,IronPDF 提供灵活的部署方式,支持IIS 托管Azure FunctionsDocker 容器。 该库为生产环境提供了卓越的性能完整的日志记录功能

立即下载 IronPDF ,只需几行代码即可将您的 HTML 内容转换为专业的 PDF 文档。 如需更多支持,请查阅完整的文档教程API 参考,以充分发挥 ASP.NET Core 应用程序中 HTML 到 PDF 转换的潜力。 查看我们的在线演示,了解 IronPDF 的实际应用,并查看功能概述,全面了解其功能。

常见问题解答

开发者如何在 ASP.NET Core 中将 HTML 转换为 PDF?

在 ASP.NET Core 中,开发者可以使用 IronPDF 将 HTML 转换为 PDF。IronPDF 提供了一个简单易用的 API,用于将 HTML 内容渲染成 PDF 文档。这包括将 HTML 字符串、文件,甚至经过身份验证的网页转换为 PDF。

IronPDF进行HTML到PDF转换的关键功能是什么?

IronPDF 提供诸多关键功能,例如支持 HTML5、CSS、JavaScript 和复杂的页面布局。它还允许开发人员轻松地将 HTML 字符串、URL 和本地 HTML 文件转换为 PDF 文档。

IronPDF在转换过程中能否处理已认证的网页?

是的,IronPDF可以处理需要身份验证的网页。它支持转换需要身份验证的页面,确保从受保护的网页内容安全准确地生成PDF文件。

IronPDF 如何保证转换后的 PDF 文件质量?

IronPDF 利用先进的渲染引擎,精确渲染 HTML 内容(包括样式、字体和图像),从而确保高质量的 PDF 输出。这保证了最终生成的 PDF 文件与原始 HTML 布局高度一致。

是否可以使用 IronPDF 将 HTML 字符串转换为 PDF?

是的,IronPDF可以直接将HTML字符串转换为PDF文档。此功能对于在Web应用程序中根据HTML内容动态生成PDF非常有用。

IronPDF是否支持将本地HTML文件转换为PDF?

IronPDF 支持将本地 HTML 文件转换为 PDF,开发者可以指定文件路径。此功能使得从服务器上存储的静态 HTML 文件生成 PDF 变得非常容易。

IronPDF 支持哪些编程语言?

IronPDF 专为与 C# 和 VB.NET 配合使用而设计,因此非常适合在 .NET 生态系统中工作的开发人员,以便为其应用程序添加 PDF 生成功能。

IronPDF 能否处理复杂的 HTML 布局和样式?

是的,IronPDF 能够处理复杂的 HTML 布局和样式,包括 CSS 和 JavaScript,确保生成的 PDF 保持原始网页的设计和功能。

在 ASP.NET 应用程序中,将 HTML 转换为 PDF 有哪些应用场景?

一些应用场景包括从网页生成发票、报告和文档,存档网页内容,以及创建可供离线使用的网页 PDF 版本。

IronPDF 与其他 HTML 转 PDF 工具相比如何?

IronPDF 以其易用性、强大的功能集以及对各种 HTML 元素和身份验证的出色支持而脱颖而出,为寻求高质量 PDF 生成的开发人员提供了一个可靠的解决方案。

Curtis Chau
技术作家

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

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