跳至页脚内容
使用IRONPDF

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

使用 IronPDF 的 ChromePdfRenderer 类,在 ASP.NET 中将网页转换为 PDF 非常简单,只需几行 C# 代码即可将 HTML 字符串、URL 和 ASPX 页面转换为高质量的 PDF 文档。

在 ASP.NET 应用程序中,当需要生成可下载的报告、发票或存档文档时,将 Web 内容转换为 PDF 是最常见的需求之一。 IronPDF 为您提供了一条在 ASP.NET 中将网页转换为 PDF 的直接途径,它可以处理从简单的 HTML 字符串到完全渲染的动态网页的一切内容——无需安装任何第三方浏览器或进行复杂的配置。

本指南将介绍 IronPDF 中可用的主要转换方法,从基本的 HTML 字符串渲染到基于 URL 的页面捕获和 ASP.NET Web Forms 集成。 最后,你将拥有每种场景的可运行 C# 代码,并清楚地了解何时使用每种方法。

如何安装和设置 IronPDF?

在转换任何内容之前,请将 IronPDF 安装到您的 ASP.NET 项目中。 该库通过NuGet分发,并可与 .NET 6、.NET 8、.NET 10 和 .NET Framework 配合使用:

Install-Package IronPdf
dotnet add package IronPdf
Install-Package IronPdf
dotnet add package IronPdf
SHELL

安装完成后,在 C# 文件顶部添加命名空间:

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

IronPDF 可与 ASP.NET Web Forms 和 ASP.NET Core 应用程序配合使用。 它支持Windows Server 和 IIS 部署Docker 容器化Azure FunctionsAWS Lambda ,适用于云原生架构。 请查看安装概述,了解特定平台的设置详情和 Linux 部署说明。

立即开始使用 IronPDF。
green arrow pointer

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

ChromePdfRenderer 类是 IronPDF 中生成 PDF 的主要入口点。 当您拥有字符串形式的 HTML 内容时(无论是动态生成的还是从模板加载的),RenderHtmlAsPdf 方法会将其直接转换为 PDF 文档。

这种方法非常适合生成报告、发票和收据,您可以通过编程方式从数据库记录或应用程序数据构建 HTML。 渲染器使用与现代浏览器相同的基于 Chromium 的引擎来处理 HTML,因此 CSS 布局、Web 字体和标准 HTML5 元素都能正确渲染。

using IronPdf;

var renderer = new ChromePdfRenderer();

string htmlContent = @"
    <h1>Quarterly Sales Report</h1>
    <p>Q3 2025 -- Summary of key revenue metrics and product performance.</p>
    <table>
        <thead><tr><th>Product</th><th>Units</th><th>Revenue</th></tr></thead>
        <tbody>
            <tr><td>Widget A</td><td>320</td><td>$8,960</td></tr>
            <tr><td>Widget B</td><td>150</td><td>$6,750</td></tr>
            <tr><td>Widget C</td><td>210</td><td>$3,055.30</td></tr>
        </tbody>
    </table>";

var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("quarterly-report.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();

string htmlContent = @"
    <h1>Quarterly Sales Report</h1>
    <p>Q3 2025 -- Summary of key revenue metrics and product performance.</p>
    <table>
        <thead><tr><th>Product</th><th>Units</th><th>Revenue</th></tr></thead>
        <tbody>
            <tr><td>Widget A</td><td>320</td><td>$8,960</td></tr>
            <tr><td>Widget B</td><td>150</td><td>$6,750</td></tr>
            <tr><td>Widget C</td><td>210</td><td>$3,055.30</td></tr>
        </tbody>
    </table>";

var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("quarterly-report.pdf");
Imports IronPdf

Dim renderer As New ChromePdfRenderer()

Dim htmlContent As String = "
    <h1>Quarterly Sales Report</h1>
    <p>Q3 2025 -- Summary of key revenue metrics and product performance.</p>
    <table>
        <thead><tr><th>Product</th><th>Units</th><th>Revenue</th></tr></thead>
        <tbody>
            <tr><td>Widget A</td><td>320</td><td>$8,960</td></tr>
            <tr><td>Widget B</td><td>150</td><td>$6,750</td></tr>
            <tr><td>Widget C</td><td>210</td><td>$3,055.30</td></tr>
        </tbody>
    </table>"

Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
pdf.SaveAs("quarterly-report.pdf")
$vbLabelText   $csharpLabel

如果您的 HTML 使用相对路径引用外部样式表或图像,请将基本目录作为第二个参数提供。 这告诉 IronPDF 在哪里解析这些引用:

using IronPdf;

var renderer = new ChromePdfRenderer();

string html = @"
    <link rel='stylesheet' href='styles.css'>
    <h1>Company Report</h1>
    <div>Annual Summary</div>";

// Provide the base path so the renderer can locate relative resources
var pdf = renderer.RenderHtmlAsPdf(html, @"C:\Reports\Assets\");
pdf.SaveAs("annual-report.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();

string html = @"
    <link rel='stylesheet' href='styles.css'>
    <h1>Company Report</h1>
    <div>Annual Summary</div>";

// Provide the base path so the renderer can locate relative resources
var pdf = renderer.RenderHtmlAsPdf(html, @"C:\Reports\Assets\");
pdf.SaveAs("annual-report.pdf");
Imports IronPdf

Dim renderer As New ChromePdfRenderer()

Dim html As String = "
    <link rel='stylesheet' href='styles.css'>
    <h1>Company Report</h1>
    <div>Annual Summary</div>"

' Provide the base path so the renderer can locate relative resources
Dim pdf = renderer.RenderHtmlAsPdf(html, "C:\Reports\Assets\")
pdf.SaveAs("annual-report.pdf")
$vbLabelText   $csharpLabel

! PDF 查看器正在显示 2025 年第三季度销售报告,其中包含一个汇总表,显示了产品销售数据,包括数量和单价,总计 18,765.30 美元已突出显示以供查看。

有关资源处理的更多信息,请参阅基本 URL 和资源编码指南以及HTML 转 PDF 教程,了解包括 DataURI 图像嵌入在内的高级渲染技术。

如何将URL转换为PDF?

当您需要捕获现有网页(无论是内部应用程序路由还是公共 URL)时,IronPDF 的 RenderUrlAsPdf 方法会获取整个页面内容并将其转换为 PDF。 输出结果将完全保留浏览器中渲染的样式、图像和布局。

渲染静态网页

对于主要提供静态内容的页面,只需调用 RenderUrlAsPdf 即可。 该方法可自动处理 SSL 证书、重定向和内容编码:

using IronPdf;

var renderer = new ChromePdfRenderer();

// 选项al: wait a short time for the page to finish loading
renderer.Rendering选项s.WaitFor.RenderDelay(500);

var pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/PDF");
pdf.SaveAs("wikipedia-pdf-article.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();

// 选项al: wait a short time for the page to finish loading
renderer.Rendering选项s.WaitFor.RenderDelay(500);

var pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/PDF");
pdf.SaveAs("wikipedia-pdf-article.pdf");
Imports IronPdf

Dim renderer As New ChromePdfRenderer()

' Optional: wait a short time for the page to finish loading
renderer.RenderingOptions.WaitFor.RenderDelay = 500

Dim pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/PDF")
pdf.SaveAs("wikipedia-pdf-article.pdf")
$vbLabelText   $csharpLabel

使用 JavaScript 或身份验证渲染页面

对于需要身份验证或使用JavaScript动态加载数据的页面,请使用适当的凭据和等待策略配置渲染器:

using IronPdf;

var renderer = new ChromePdfRenderer();

// Enable JavaScript for pages that load content after the initial HTML response
renderer.Rendering选项s.EnableJavaScript = true;
renderer.Rendering选项s.WaitFor.NetworkIdle(500);

// Provide credentials for authenticated internal pages
renderer.LoginCredentials = new ChromeHttpLoginCredentials()
{
    NetworkUsername = "service-account",
    NetworkPassword = "secure-password"
};

var pdf = renderer.RenderUrlAsPdf("https://app.internal/reports/monthly");
pdf.SaveAs("monthly-report.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();

// Enable JavaScript for pages that load content after the initial HTML response
renderer.Rendering选项s.EnableJavaScript = true;
renderer.Rendering选项s.WaitFor.NetworkIdle(500);

// Provide credentials for authenticated internal pages
renderer.LoginCredentials = new ChromeHttpLoginCredentials()
{
    NetworkUsername = "service-account",
    NetworkPassword = "secure-password"
};

var pdf = renderer.RenderUrlAsPdf("https://app.internal/reports/monthly");
pdf.SaveAs("monthly-report.pdf");
Imports IronPdf

Dim renderer As New ChromePdfRenderer()

' Enable JavaScript for pages that load content after the initial HTML response
renderer.RenderingOptions.EnableJavaScript = True
renderer.RenderingOptions.WaitFor.NetworkIdle(500)

' Provide credentials for authenticated internal pages
renderer.LoginCredentials = New ChromeHttpLoginCredentials() With {
    .NetworkUsername = "service-account",
    .NetworkPassword = "secure-password"
}

Dim pdf = renderer.RenderUrlAsPdf("https://app.internal/reports/monthly")
pdf.SaveAs("monthly-report.pdf")
$vbLabelText   $csharpLabel

维基百科首页展示了多个内容版块,包括关于2019年冠军赛斯诺克锦标赛的专题文章、最新新闻和科普知识,说明了复杂的网页布局在转换为PDF格式时是如何保留的

对于使用会话 cookie 或 Windows 身份验证的网站,请查看TLS 和系统登录指南。 请参阅PDF 文档的完整 URL,以获取完整的配置选项列表,包括 cookie 处理和自定义 HTTP 标头。

如何在 ASP.NET Web Forms 中将 ASPX 页面转换为 PDF?

对于 ASP.NET Web Forms 应用程序,IronPDF 提供了 AspxToPdf 类,该类可将当前呈现的 ASPX 页面直接转换为 PDF,而无需单独的 HTTP 请求或重新呈现页面内容。

基本单行 ASPX 转换

在页面事件处理程序中调用 RenderThisPageAsPdf(),IronPDF 会拦截响应并将其替换为 PDF 下载:

using IronPdf;

protected void Page_Load(object sender, EventArgs e)
{
    // Configure paper settings before rendering
    IronPdf.AspxToPdf.Rendering选项s.PaperSize = IronPdf.Rendering.PdfPaperSize.Letter;
    IronPdf.AspxToPdf.Rendering选项s.MarginTop = 20;
    IronPdf.AspxToPdf.Rendering选项s.MarginBottom = 20;

    // Convert the current ASPX page to PDF and send it to the browser
    IronPdf.AspxToPdf.RenderThisPageAsPdf(
        IronPdf.AspxToPdf.FileBehavior.InBrowser,
        "invoice-" + DateTime.UtcNow.ToString("yyyy-MM-dd") + ".pdf"
    );
}
using IronPdf;

protected void Page_Load(object sender, EventArgs e)
{
    // Configure paper settings before rendering
    IronPdf.AspxToPdf.Rendering选项s.PaperSize = IronPdf.Rendering.PdfPaperSize.Letter;
    IronPdf.AspxToPdf.Rendering选项s.MarginTop = 20;
    IronPdf.AspxToPdf.Rendering选项s.MarginBottom = 20;

    // Convert the current ASPX page to PDF and send it to the browser
    IronPdf.AspxToPdf.RenderThisPageAsPdf(
        IronPdf.AspxToPdf.FileBehavior.InBrowser,
        "invoice-" + DateTime.UtcNow.ToString("yyyy-MM-dd") + ".pdf"
    );
}
Imports IronPdf

Protected Sub Page_Load(sender As Object, e As EventArgs)
    ' Configure paper settings before rendering
    IronPdf.AspxToPdf.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.Letter
    IronPdf.AspxToPdf.RenderingOptions.MarginTop = 20
    IronPdf.AspxToPdf.RenderingOptions.MarginBottom = 20

    ' Convert the current ASPX page to PDF and send it to the browser
    IronPdf.AspxToPdf.RenderThisPageAsPdf(
        IronPdf.AspxToPdf.FileBehavior.InBrowser,
        "invoice-" & DateTime.UtcNow.ToString("yyyy-MM-dd") & ".pdf"
    )
End Sub
$vbLabelText   $csharpLabel

PDF 查看器显示了一个已转换的 ASP.NET Web Forms 页面,页面上有一个蓝色的"将此页面转换为 PDF"按钮,并保留了应用程序的样式和标题,这表明在测试环境中 Web 到 PDF 的转换已成功完成。

该方法可以捕获页面生命周期中生成的所有 HTML 结构、样式和动态内容。 有关 ASPX 转换选项的完整列表,请参阅ASPX 转 PDF 指南高级设置示例

如何在PDF文档中添加页眉和页脚?

专业报告和发票都标配页眉和页脚。 IronPDF 支持基于文本和基于 HTML 的页眉和页脚,并内置了用于动态值(如页码和当前日期)的占位符。

文本和 HTML 标头

TextHeaderFooter 类允许您在每页的左侧、中间和右侧定义简单的文本。 类似 {page}{total-pages}{date} 的占位符会在渲染过程中自动填充。 当您需要带有徽标和自定义布局的品牌标题时,请改用 HtmlHeaderFooter -- 其 HTML 片段由与文档主体相同的渲染引擎处理:

using IronPdf;

var renderer = new ChromePdfRenderer();

// Simple text header with divider line
renderer.Rendering选项s.TextHeader = new TextHeaderFooter()
{
    CenterText = "Quarterly Financial Report",
    LeftText = "Document ID: {document-id}",
    RightText = "{date:yyyy-MM-dd}",
    DrawDividerLine = true,
    FontSize = 10,
    FontFamily = "Arial"
};

// HTML footer with branded layout
renderer.Rendering选项s.HtmlFooter = new HtmlHeaderFooter()
{
    HtmlFragment = @"
        <div style='border-top: 1px solid #ccc; padding: 8px; font-size: 10px;
                    display: flex; justify-content: space-between;'>
            <span>© 2026 Enterprise Corp</span>
            <span>Page {page} of {total-pages}</span>
            <span>Classification: Internal</span>
        </div>",
    MaxHeight = 40
};

renderer.Rendering选项s.MarginTop = 40;
renderer.Rendering选项s.MarginBottom = 40;

var pdf = renderer.RenderHtmlAsPdf("<h1>Report Content</h1><p>Financial data goes here.</p>");
pdf.SaveAs("report-with-headers.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();

// Simple text header with divider line
renderer.Rendering选项s.TextHeader = new TextHeaderFooter()
{
    CenterText = "Quarterly Financial Report",
    LeftText = "Document ID: {document-id}",
    RightText = "{date:yyyy-MM-dd}",
    DrawDividerLine = true,
    FontSize = 10,
    FontFamily = "Arial"
};

// HTML footer with branded layout
renderer.Rendering选项s.HtmlFooter = new HtmlHeaderFooter()
{
    HtmlFragment = @"
        <div style='border-top: 1px solid #ccc; padding: 8px; font-size: 10px;
                    display: flex; justify-content: space-between;'>
            <span>© 2026 Enterprise Corp</span>
            <span>Page {page} of {total-pages}</span>
            <span>Classification: Internal</span>
        </div>",
    MaxHeight = 40
};

renderer.Rendering选项s.MarginTop = 40;
renderer.Rendering选项s.MarginBottom = 40;

var pdf = renderer.RenderHtmlAsPdf("<h1>Report Content</h1><p>Financial data goes here.</p>");
pdf.SaveAs("report-with-headers.pdf");
Imports IronPdf

Dim renderer As New ChromePdfRenderer()

' Simple text header with divider line
renderer.RenderingOptions.TextHeader = New TextHeaderFooter() With {
    .CenterText = "Quarterly Financial Report",
    .LeftText = "Document ID: {document-id}",
    .RightText = "{date:yyyy-MM-dd}",
    .DrawDividerLine = True,
    .FontSize = 10,
    .FontFamily = "Arial"
}

' HTML footer with branded layout
renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter() With {
    .HtmlFragment = "
        <div style='border-top: 1px solid #ccc; padding: 8px; font-size: 10px;
                    display: flex; justify-content: space-between;'>
            <span>© 2026 Enterprise Corp</span>
            <span>Page {page} of {total-pages}</span>
            <span>Classification: Internal</span>
        </div>",
    .MaxHeight = 40
}

renderer.RenderingOptions.MarginTop = 40
renderer.RenderingOptions.MarginBottom = 40

Dim pdf = renderer.RenderHtmlAsPdf("<h1>Report Content</h1><p>Financial data goes here.</p>")
pdf.SaveAs("report-with-headers.pdf")
$vbLabelText   $csharpLabel

PDF 查看器显示一份月度报告,报告包含格式正确的页眉(包括文档标题和合规信息)、页脚(包含页码和分类标记),体现了专业的企业文档标准。

有关可用占位符和高级品牌模式的完整列表,请参阅页眉和页脚文档

如何配置 PDF 页面布局和渲染选项?

IronPDF 通过 Rendering选项s 属性,让您可以完全控制页面布局、边距、DPI 和 CSS 渲染行为。 在这里可以配置纸张尺寸、打印与屏幕 CSS 以及交互式表单生成。

关键渲染选项

using IronPdf;

var renderer = new ChromePdfRenderer();

// Set paper dimensions and orientation
renderer.Rendering选项s.PaperSize = IronPdf.Rendering.PdfPaperSize.Letter;
renderer.Rendering选项s.PaperOrientation = IronPdf.Rendering.PdfPaperOrientation.Portrait;

// Define margins (values in millimeters)
renderer.Rendering选项s.MarginTop = 25;
renderer.Rendering选项s.MarginBottom = 25;
renderer.Rendering选项s.MarginLeft = 19;
renderer.Rendering选项s.MarginRight = 19;

// Use print-specific CSS rules and set output DPI
renderer.Rendering选项s.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
renderer.Rendering选项s.DPI = 300;

// Preserve HTML form elements as interactive PDF form fields
renderer.Rendering选项s.CreatePdfFormsFromHtml = true;

var pdf = renderer.RenderHtmlAsPdf("<h1>Custom Layout Document</h1><p>Content with configured layout.</p>");
pdf.SaveAs("configured-output.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();

// Set paper dimensions and orientation
renderer.Rendering选项s.PaperSize = IronPdf.Rendering.PdfPaperSize.Letter;
renderer.Rendering选项s.PaperOrientation = IronPdf.Rendering.PdfPaperOrientation.Portrait;

// Define margins (values in millimeters)
renderer.Rendering选项s.MarginTop = 25;
renderer.Rendering选项s.MarginBottom = 25;
renderer.Rendering选项s.MarginLeft = 19;
renderer.Rendering选项s.MarginRight = 19;

// Use print-specific CSS rules and set output DPI
renderer.Rendering选项s.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
renderer.Rendering选项s.DPI = 300;

// Preserve HTML form elements as interactive PDF form fields
renderer.Rendering选项s.CreatePdfFormsFromHtml = true;

var pdf = renderer.RenderHtmlAsPdf("<h1>Custom Layout Document</h1><p>Content with configured layout.</p>");
pdf.SaveAs("configured-output.pdf");
Imports IronPdf

Dim renderer As New ChromePdfRenderer()

' Set paper dimensions and orientation
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.Letter
renderer.RenderingOptions.PaperOrientation = IronPdf.Rendering.PdfPaperOrientation.Portrait

' Define margins (values in millimeters)
renderer.RenderingOptions.MarginTop = 25
renderer.RenderingOptions.MarginBottom = 25
renderer.RenderingOptions.MarginLeft = 19
renderer.RenderingOptions.MarginRight = 19

' Use print-specific CSS rules and set output DPI
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
renderer.RenderingOptions.DPI = 300

' Preserve HTML form elements as interactive PDF form fields
renderer.RenderingOptions.CreatePdfFormsFromHtml = True

Dim pdf = renderer.RenderHtmlAsPdf("<h1>Custom Layout Document</h1><p>Content with configured layout.</p>")
pdf.SaveAs("configured-output.pdf")
$vbLabelText   $csharpLabel

PDF 查看器正在显示一个自定义布局的文档,该文档具有正确的格式、标题和结构化的内容部分,演示了各种 PDF 自定义选项和专业的文档外观。

下表总结了主要渲染选项及其对输出的影响:

常见的 IronPDF 渲染选项
选项 翻译目的 示例价值
纸张大小 设置纸张尺寸(Letter、A4、Legal 等) PdfPaperSize.A4
MarginTop / MarginBottom 设置页面边距(单位:毫米) 25
DPI 输出分辨率——数值越高,打印质量越好 300
CssMediaType 选择屏幕和打印 CSS 规则 PdfCssMediaType.Print
EnableJavaScript 启用或禁用渲染期间的 JavaScript 执行 true
CreatePdfFormsFromHtml 将 HTML 表单元素转换为交互式 PDF 表单 true
WaitFor.RenderDelay 在捕获之前添加延迟,以允许 JS 执行 500 (毫秒)

有关可用选项的完整参考,请参阅渲染选项指南。 相关指南涵盖了响应式 CSS 处理页面分隔符控制,以应对常见的布局挑战。

如何在 ASP.NET Core MVC 中生成 PDF?

在 ASP.NET Core MVC 中,您可以使用 File() 直接从控制器操作返回 PDF。 该模式是将内部 URL 或 HTML 字符串渲染为 PdfDocument 对象,然后以 application/pdf MIME 类型返回其二进制数据。

从控制器操作返回 PDF

以下示例渲染内部报告 URL 并将结果作为文件下载返回。 Microsoft ASP.NET Core MVC 文档详细介绍了基本类和返回类型:

using IronPdf;
using Microsoft.AspNetCore.Mvc;

public class ReportsController : Controller
{
    public IActionResult GeneratePdf()
    {
        var renderer = new ChromePdfRenderer();

        renderer.Rendering选项s.PaperSize = IronPdf.Rendering.PdfPaperSize.Letter;
        renderer.Rendering选项s.MarginTop = 20;
        renderer.Rendering选项s.MarginBottom = 20;

        // Add a text footer with page numbers
        renderer.Rendering选项s.TextFooter = new TextHeaderFooter()
        {
            CenterText = "Page {page} of {total-pages}",
            FontSize = 9
        };

        // Build the URL to the internal report page and render it
        string reportUrl = $"{Request.Scheme}://{Request.Host}/reports/quarterly";
        var pdf = renderer.RenderUrlAsPdf(reportUrl);

        return File(pdf.BinaryData, "application/pdf", "quarterly-report.pdf");
    }
}
using IronPdf;
using Microsoft.AspNetCore.Mvc;

public class ReportsController : Controller
{
    public IActionResult GeneratePdf()
    {
        var renderer = new ChromePdfRenderer();

        renderer.Rendering选项s.PaperSize = IronPdf.Rendering.PdfPaperSize.Letter;
        renderer.Rendering选项s.MarginTop = 20;
        renderer.Rendering选项s.MarginBottom = 20;

        // Add a text footer with page numbers
        renderer.Rendering选项s.TextFooter = new TextHeaderFooter()
        {
            CenterText = "Page {page} of {total-pages}",
            FontSize = 9
        };

        // Build the URL to the internal report page and render it
        string reportUrl = $"{Request.Scheme}://{Request.Host}/reports/quarterly";
        var pdf = renderer.RenderUrlAsPdf(reportUrl);

        return File(pdf.BinaryData, "application/pdf", "quarterly-report.pdf");
    }
}
Imports IronPdf
Imports Microsoft.AspNetCore.Mvc

Public Class ReportsController
    Inherits Controller

    Public Function GeneratePdf() As IActionResult
        Dim renderer As New ChromePdfRenderer()

        renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.Letter
        renderer.RenderingOptions.MarginTop = 20
        renderer.RenderingOptions.MarginBottom = 20

        ' Add a text footer with page numbers
        renderer.RenderingOptions.TextFooter = New TextHeaderFooter() With {
            .CenterText = "Page {page} of {total-pages}",
            .FontSize = 9
        }

        ' Build the URL to the internal report page and render it
        Dim reportUrl As String = $"{Request.Scheme}://{Request.Host}/reports/quarterly"
        Dim pdf = renderer.RenderUrlAsPdf(reportUrl)

        Return File(pdf.BinaryData, "application/pdf", "quarterly-report.pdf")
    End Function
End Class
$vbLabelText   $csharpLabel

! PDF 查看器显示 2025 年第三季度的季度销售报告,其中包含一个详细的数据表,列出了四种产品的数量和单价,总金额为 18,765.30 美元,展示了专业的报告格式和正确的表头。

有关 Razor 视图渲染,请参阅CSHTML 到 PDF 的转换不使用 HTTP 的 Razor 视图渲染。 如果您的应用程序处理大量 PDF 请求,请检查异步 PDF 生成,以了解非阻塞生成模式,从而在负载下保持应用程序的响应能力。

IronPDF 支持哪些安全和合规功能?

除了基本的 PDF 生成功能外,IronPDF 还包含一系列功能,以满足需要文档安全、长期存档或无障碍合规性的组织的需求。 这些对于金融、医疗保健、法律和政府应用领域尤为重要,因为这些领域的文档必须符合既定的监管标准。

文件安全

密码保护和权限功能让您可以控制谁可以打开、打印、编辑或复制 PDF 中的内容。 有关配置详情,请参阅权限和密码指南

IronPDF 支持使用X.509 证书进行数字签名,包括为具有严格密钥管理要求的组织提供的基于 HSM 的签名。 请查看数字签名指南

存档和无障碍合规性

对于受监管行业的长期文档存档,IronPDF 可以将标准 PDF 转换为PDF/A 格式——这是 ISO 规定的存档级文档标准。

为了满足第 508 节和 WCAG 无障碍要求,IronPDF 支持生成符合PDF/UA 标准的带标签的无障碍 PDF。

内容编辑和元数据

使用编辑功能可以永久删除敏感信息,该功能可以消除内容而不留下可恢复的痕迹。 对于审计跟踪和文档分类,您可以通过元数据指南设置作者、创建日期、关键字和自定义元数据字段。

如何开始免费试用?

IronPDF 提供免费试用许可证,其中包括本指南中介绍的所有功能——PDF 生成、安全控制、页眉和页脚以及合规性功能。 无需信用卡即可开始测试。

要探索更多功能,请查看完整的 API 参考代码示例库,其中包含涵盖最常见 PDF 场景的工作实现。 如果您是第一次使用 IronPDF,快速入门指南将为您提供一个明确的起点。

对于生产部署,可以探索PDF 压缩以减小文件大小, PDF 合并和拆分以进行文档管理,以及通过 IronOCR 的 OCR 功能从扫描文档中提取文本。 Iron Software 的所有产品都采用兼容的许可协议,可以在同一应用程序中一起使用。

常见问题解答

如何在 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 机器人,将他对技术的热爱与创造力相结合。

钢铁支援团队

我们每周 5 天,每天 24 小时在线。
聊天
电子邮件
打电话给我