跳至页脚内容
使用IRONPDF

如何使用 C# 和 IronPDF 在 ASP.NET 中将网页转换为 PDF

在 ASP.NET 应用程序中,将网页和 HTML 页面转换为 PDF 文档是生成报告、发票和可下载内容的常见需求。 IronPDF是一个 .NET 库,它提供了一个简单而强大的解决方案,可以使用 C# 在 ASP.NET 中将网页转换为 PDF,只需几行代码即可将输入的 HTML、网页和 HTML 文件转换为专业的 PDF 文件。

这对于任何现代 .NET 项目来说都至关重要。 所以,请继续关注,我们将探讨将 HTML 和网页内容转换为高质量 PDF 文档的不同方法!

开始使用 IronPDF

要在 ASP.NET 应用程序中开始将网页转换为 PDF,请通过 NuGet 程序包管理器控制台安装 IronPDF:

Install-Package IronPdf

安装完成后,将 using 语句添加到您的 C# 文件中:

using IronPdf;
using IronPdf;
Imports IronPdf
$vbLabelText   $csharpLabel

IronPDF 可与 ASP.NET Web Forms 和 ASP.NET Core 应用程序无缝协作,在所有 .NET 框架中提供一致的 HTML 到 PDF 转换。 部署时,可以考虑将其与 Azure 函数结合使用,以实现无服务器扩展。

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

ChromePdfRenderer类是 IronPDF 的主要 PDF 转换器,用于将 HTML 内容转换为 PDF 文档。 这种方法非常适合从动态创建的 HTML 字符串生成 PDF 文件:

using IronPdf;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        // Create the PDF converter
        var renderer = new ChromePdfRenderer();
        // Convert HTML string to PDF
        string htmlContent = "<h1>Sales Report</h1><p>Quarterly sales data...</p>";
        var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);
        // Save the PDF file
        pdfDocument.SaveAs("report.pdf");
    }
}
using IronPdf;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        // Create the PDF converter
        var renderer = new ChromePdfRenderer();
        // Convert HTML string to PDF
        string htmlContent = "<h1>Sales Report</h1><p>Quarterly sales data...</p>";
        var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);
        // Save the PDF file
        pdfDocument.SaveAs("report.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

HTML 转 PDF 文件输出

如何使用 C# 和 IronPDF 在 ASP.NET 中将网页转换为 PDF:图 1 - 简单的 HTML 转 PDF 输出

RenderHtmlAsPdf方法会保留 PDF 文档中的所有 CSS 样式、图像和 HTML 元素。 当使用引用外部资源(例如 CSS 或图像)的 HTML 代码时,请指定基本路径:

var renderer = new ChromePdfRenderer();
string html = @"
    <link rel='stylesheet' href='styles.css'>
    <h1>Company Report</h1>
    <div style='text-align: center'>Annual Summary</div>";
// Set base path for external resources
var pdf = renderer.RenderHtmlAsPdf(html, @"C:\Assets\");
pdf.SaveAs("annual-report.pdf");
var renderer = new ChromePdfRenderer();
string html = @"
    <link rel='stylesheet' href='styles.css'>
    <h1>Company Report</h1>
    <div style='text-align: center'>Annual Summary</div>";
// Set base path for external resources
var pdf = renderer.RenderHtmlAsPdf(html, @"C:\Assets\");
pdf.SaveAs("annual-report.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

如何在 ASP.NET 中将当前网页转换为 PDF?

对于 ASP.NET Web Forms 应用程序,IronPDF 提供了一个极其简单的单行解决方案,可将网页直接转换为 PDF:

protected void Page_Load(object sender, EventArgs e)
{
    // Convert current ASPX page to PDF
    IronPdf.AspxToPdf.RenderThisPageAsPdf();
}
protected void Page_Load(object sender, EventArgs e)
{
    // Convert current ASPX page to PDF
    IronPdf.AspxToPdf.RenderThisPageAsPdf();
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

ASPX 转 PDF 输出

如何使用 C# 和 IronPDF 在 ASP.NET 中将网页转换为 PDF:图 2 - ASPX 转 PDF 示例输出

这一行代码可以将整个当前网页及其所有 HTML 结构、样式和动态内容转换为 PDF 文件,可在 Adobe Reader 或其他 PDF 查看器中查看。 您可以自定义输出行为:

// Display PDF directly in browser
IronPdf.AspxToPdf.RenderThisPageAsPdf(
    IronPdf.AspxToPdf.FileBehavior.InBrowser,
    "invoice.pdf"
);
// Display PDF directly in browser
IronPdf.AspxToPdf.RenderThisPageAsPdf(
    IronPdf.AspxToPdf.FileBehavior.InBrowser,
    "invoice.pdf"
);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

对于ASP.NET Core MVC应用程序,请使用ChromePdfRenderer转换 HTML 视图。 通常情况下,你会在 Visual Studio 中完成这个 .NET 项目:

public IActionResult GeneratePdf()
{
    try
    {
        // 1. Initialize the PDF Renderer
        var renderer = new IronPdf.ChromePdfRenderer();
        // 2. Construct the URL that IronPDF will convert.
        // This URL calls the 'Report' action above.
        string url = $"{Request.Scheme}://{Request.Host}/Home/Report";
        // Optional: Customize Rendering Options (e.g., margins)
        renderer.RenderingOptions.MarginTop = 15;
        renderer.RenderingOptions.MarginBottom = 15;
        renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
        {
            CenterText = "{page} of {total-pages}",
            FontSize = 10
        };
        // 3. Render the URL as a PDF
        var pdf = renderer.RenderUrlAsPdf(url);
        // 4. Send the PDF file to the browser
        // The user will be prompted to download 'report.pdf'
        return File(pdf.BinaryData, "application/pdf", "report.pdf");
    }
    catch (Exception ex)
    {
        // Log the error and return a generic error page or message
        // Console.WriteLine(ex.Message);
        return Content($"Error generating PDF: {ex.Message}");
    }
}
public IActionResult GeneratePdf()
{
    try
    {
        // 1. Initialize the PDF Renderer
        var renderer = new IronPdf.ChromePdfRenderer();
        // 2. Construct the URL that IronPDF will convert.
        // This URL calls the 'Report' action above.
        string url = $"{Request.Scheme}://{Request.Host}/Home/Report";
        // Optional: Customize Rendering Options (e.g., margins)
        renderer.RenderingOptions.MarginTop = 15;
        renderer.RenderingOptions.MarginBottom = 15;
        renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
        {
            CenterText = "{page} of {total-pages}",
            FontSize = 10
        };
        // 3. Render the URL as a PDF
        var pdf = renderer.RenderUrlAsPdf(url);
        // 4. Send the PDF file to the browser
        // The user will be prompted to download 'report.pdf'
        return File(pdf.BinaryData, "application/pdf", "report.pdf");
    }
    catch (Exception ex)
    {
        // Log the error and return a generic error page or message
        // Console.WriteLine(ex.Message);
        return Content($"Error generating PDF: {ex.Message}");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

ASP.NET MVC 输出

如何使用 C# 和 IronPDF 在 ASP.NET 中将网页转换为 PDF:图 3 - ASP.NET MVC PDF 输出

如何将URL转换为PDF?

IronPDF 可以轻松地将任何 URL 中的 HTML 代码转换为 PDF 文档。 这项强大的功能既适用于外部网站,也适用于内部应用程序页面:

var renderer = new ChromePdfRenderer();
// Convert external webpage to PDF
var pdf = renderer.RenderUrlAsPdf("https://example.com");
pdf.SaveAs("website.pdf");
var renderer = new ChromePdfRenderer();
// Convert external webpage to PDF
var pdf = renderer.RenderUrlAsPdf("https://example.com");
pdf.SaveAs("website.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

输出

如何在 ASP.NET 中使用 C# 和 IronPDF 将网页转换为 PDF:图 4 - URL 到 PDF 输出

对于包含 JavaScript 或动态内容的页面,您可以使用无头模式或启用 JavaScript 执行:

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.RenderDelay(1000); // Wait for JS to load
var pdf = renderer.RenderUrlAsPdf("https://app.example.com/dashboard");
pdf.SaveAs("dashboard.pdf");
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.RenderDelay(1000); // Wait for JS to load
var pdf = renderer.RenderUrlAsPdf("https://app.example.com/dashboard");
pdf.SaveAs("dashboard.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

如何配置PDF生成设置?

IronPDF 提供丰富的 PDF 转换自定义选项,以满足您的特定需求:

var renderer = new ChromePdfRenderer();
// Configure page layout
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = IronPdf.Rendering.PdfPaperOrientation.Landscape;
// Set margins in millimeters
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;
renderer.RenderingOptions.MarginLeft = 15;
renderer.RenderingOptions.MarginRight = 15;
// Enable background colors and images
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
// Generate PDF with custom settings
var pdf = renderer.RenderHtmlAsPdf("<h1>Custom Layout</h1>");
pdf.SaveAs("custom.pdf");
var renderer = new ChromePdfRenderer();
// Configure page layout
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = IronPdf.Rendering.PdfPaperOrientation.Landscape;
// Set margins in millimeters
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;
renderer.RenderingOptions.MarginLeft = 15;
renderer.RenderingOptions.MarginRight = 15;
// Enable background colors and images
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
// Generate PDF with custom settings
var pdf = renderer.RenderHtmlAsPdf("<h1>Custom Layout</h1>");
pdf.SaveAs("custom.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

输出

如何在 ASP.NET 中使用 C# 和 IronPDF 将网页转换为 PDF:图 5 - 自定义 PDF

如何向PDF文件添加页眉和页脚?

专业PDF文档通常需要包含页眉和页脚,其中包含页码和其他信息:

var renderer = new ChromePdfRenderer();
// Add text header and footer
renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
{
    CenterText = "Monthly Report",
    DrawDividerLine = true,
    FontSize = 16
};
renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
{
    LeftText = "{date} {time}",
    RightText = "Page {page} of {total-pages}",
    FontSize = 10
};
var pdf = renderer.RenderHtmlAsPdf("<h1>Report Content</h1>");
pdf.SaveAs("report-with-header.pdf");
var renderer = new ChromePdfRenderer();
// Add text header and footer
renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
{
    CenterText = "Monthly Report",
    DrawDividerLine = true,
    FontSize = 16
};
renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
{
    LeftText = "{date} {time}",
    RightText = "Page {page} of {total-pages}",
    FontSize = 10
};
var pdf = renderer.RenderHtmlAsPdf("<h1>Report Content</h1>");
pdf.SaveAs("report-with-header.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

输出

如何在 ASP.NET 中使用 C# 和 IronPDF 将网页转换为 PDF:图 6 - 输出带有页眉和页脚的 PDF

对于更复杂的标题,请使用 HTML 格式:

renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    HtmlFragment = "<div style='text-align:center; border-bottom: 1px solid #ccc;'>" +
                   "<h2>Company Name</h2></div>",
    MaxHeight = 30
};
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    HtmlFragment = "<div style='text-align:center; border-bottom: 1px solid #ccc;'>" +
                   "<h2>Company Name</h2></div>",
    MaxHeight = 30
};
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

使用不同的HTML源

IronPDF 提供了多种从各种 HTML 源生成 PDF 的方法:

转换 HTML 文件

var renderer = new ChromePdfRenderer();
// Convert HTML file to PDF
var pdf = renderer.RenderHtmlFileAsPdf(@"C:\Templates\invoice.html");
var renderer = new ChromePdfRenderer();
// Convert HTML file to PDF
var pdf = renderer.RenderHtmlFileAsPdf(@"C:\Templates\invoice.html");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

使用 Base64 图像进行转换

string htmlWithImage = @"
    <h1>Product Catalog</h1>
    <img src='data:image/png;base64,iVBORw0KGgoAAAANS...' />";
var pdf = renderer.RenderHtmlAsPdf(htmlWithImage);
string htmlWithImage = @"
    <h1>Product Catalog</h1>
    <img src='data:image/png;base64,iVBORw0KGgoAAAANS...' />";
var pdf = renderer.RenderHtmlAsPdf(htmlWithImage);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

结论

IronPDF 使在 ASP.NET 应用程序中将 HTML 转换为 PDF 变得异常简单。 无论您需要从 HTML 字符串生成 PDF 文档、转换 HTML 文件,还是将整个网页转换为 PDF,IronPDF 都提供了一个强大的 HTML 转 PDF 转换器,可以保留所有 HTML 内容、CSS 样式和 JavaScript 功能。 它既适用于大型应用程序,也适用于轻量级工具,例如移动应用程序或简单的命令行实用程序。

PDF 库可以处理从简单的 HTML 文档到复杂的 Web 内容的一切,使其成为 .NET 应用程序中进行 PDF 转换的理想选择。 通过支持页眉、页脚、安全设置和各种 HTML 源,您可以用最少的代码创建符合专业标准的 PDF 文档。

立即通过免费试用版开始使用 IronPDF,体验在 ASP.NET 项目中无缝进行 HTML 到 PDF 的转换。 对于生产用途,请了解我们灵活的许可选项,这些选项可根据您的需求进行扩展。

常见问题解答

如何在 ASP.NET 中将网页转换为 PDF?

您可以使用 IronPDF(一个 .NET 库)在 ASP.NET 应用程序中将网页转换为 PDF。它允许您仅使用几行 C# 代码即可从 HTML 内容生成专业的 PDF 文件。

在 ASP.NET 中,将 HTML 转换为 PDF 的典型用例有哪些?

常见用例包括生成报告、创建发票以及从 ASP.NET 应用程序的网页提供 PDF 格式的可下载内容。

IronPDF 适合生成专业级 PDF 文件吗?

是的,IronPDF 旨在将 HTML 和网页转换为高质量的专业 PDF 文档,使其适用于商业和企业应用。

在 ASP.NET 应用程序中使用 IronPDF 有多容易?

IronPDF 非常易于使用。它允许开发人员使用最少的代码将 HTML 转换为 PDF,从而可以轻松集成到现有的 ASP.NET 应用程序中。

IronPDF 能否处理包含 CSS 和 JavaScript 的复杂网页?

是的,IronPDF 可以处理包含 CSS 和 JavaScript 的复杂网页,确保生成的 PDF 文件保持与原始网页相同的外观和风格。

是否可以使用 IronPDF 自动从网页生成 PDF 文件?

当然可以。IronPDF 可以集成到自动化工作流程中,在 ASP.NET 应用程序中以编程方式从网页生成 PDF 文件。

IronPDF是否支持直接将HTML文件转换为PDF?

是的,IronPDF不仅可以将网页转换为PDF文档,还可以将本地HTML文件直接转换为PDF文档。

IronPDF 使用哪种编程语言进行 PDF 转换?

IronPDF 使用 C# 在 ASP.NET 应用程序中将 HTML 和网页转换为 PDF。

IronPDF 是否能够从动态网页内容生成 PDF 文件?

是的,IronPDF可以处理动态网页内容,确保生成的PDF反映转换时网页的最新版本。

使用 IronPDF 进行 HTML 到 PDF 转换的好处是什么?

IronPDF 提供了一种强大而直接的方式将 HTML 转换为 PDF,具有易于使用、高质量输出、支持复杂布局和自动化功能等优点。

Curtis Chau
技术作家

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

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