跳至页脚内容
产品比较

PDFsharp 在PDF添加页码与IronPDF(示例)

许多组织仍然在银行门户、会计系统和内部仪表板上运行ASP.NET Web Forms。 这些应用程序是稳定的,但很少提供一种干净的方式为用户提供可下载的文档。 添加PDF导出功能被视为重新迁移到MVC或Blazor的平台上的理由,这对其他正常运行的软件来说是一个昂贵的举动。IronPDF选择了更便宜的方法:它通过一行代码将用户已经在查看的ASPX页面转换为PDF。

缺口出现的地方

一个Web Forms页面通常已经将其发票、账单或报告呈现为带样式的HTML。 员工和客户希望将相同的视图作为可保存、发送邮件或打印的便携文件。 若使用单独的PDF模板,意味着第二个布局将与第一个布局不一致。浏览器打印对话框在每台机器上都产生不同的结果。团队需要的是在服务器端生成一个与屏幕上页面一致的PDF。

就地渲染页面

IronPDF从Page_Load事件内部转换实时ASPX页面。 AspxToPdf.RenderThisPageAsPdf方法重用已为网页视图构建的页面,因此样式、链接和表单字段可被保留。

using IronPdf;

public partial class Invoice : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        AspxToPdf.RenderThisPageAsPdf(AspxToPdf.FileBehavior.Attachment, "Invoice.pdf");
    }
}
using IronPdf;

public partial class Invoice : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        AspxToPdf.RenderThisPageAsPdf(AspxToPdf.FileBehavior.Attachment, "Invoice.pdf");
    }
}
Imports IronPdf

Public Partial Class Invoice
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(sender As Object, e As EventArgs)
        AspxToPdf.RenderThisPageAsPdf(AspxToPdf.FileBehavior.Attachment, "Invoice.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

FileBehavior.Attachment触发具有指定文件名的下载。 FileBehavior.InBrowser改为嵌入式显示文档。

控制输出

渲染选项包括详情,使输出适合用于分发:页眉、页脚、页码,以及去除仅限屏幕导航的打印样式表。

var options = new ChromePdfRenderOptions
{
    CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print,
    TextFooter = new TextHeaderFooter
    {
        LeftText = "{date} - {time}",
        RightText = "Page {page} of {total-pages}"
    }
};
AspxToPdf.RenderThisPageAsPdf(AspxToPdf.FileBehavior.Attachment, "Invoice.pdf", options);
var options = new ChromePdfRenderOptions
{
    CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print,
    TextFooter = new TextHeaderFooter
    {
        LeftText = "{date} - {time}",
        RightText = "Page {page} of {total-pages}"
    }
};
AspxToPdf.RenderThisPageAsPdf(AspxToPdf.FileBehavior.Attachment, "Invoice.pdf", options);
Imports IronPdf.Rendering

Dim options As New ChromePdfRenderOptions With {
    .CssMediaType = PdfCssMediaType.Print,
    .TextFooter = New TextHeaderFooter With {
        .LeftText = "{date} - {time}",
        .RightText = "Page {page} of {total-pages}"
    }
}
AspxToPdf.RenderThisPageAsPdf(AspxToPdf.FileBehavior.Attachment, "Invoice.pdf", options)
$vbLabelText   $csharpLabel

决定干净转换的设置

一些选择决定了转换在负荷下是否稳定:

  • 动态内容: 使用Ajax或客户端图表的页面需要WaitFor规则以确保渲染捕获完整的页面。 参见WaitFor指南
  • 打印样式:CssMediaType设置为Print应用专用样式表,并将按钮和菜单排除在文档之外。
  • 吞吐量: Chromium渲染资源密集,因此异步处理可保持高流量端点的响应。

一行,无重写

在现有页面中执行这一个调用即可使Web Forms应用程序实现发票下载、打印账单和报告导出,无需迁移。 完整的方法参考和配置选项在ASPX到PDF指南中。

常见问题解答

可以在不迁移到MVC或Blazor的情况下向ASP.NET Web Forms添加PDF导出吗?

可以。IronPDF的AspxToPdf.RenderThisPageAsPdf方法从Page_Load事件内部将实时ASPX页面转换为PDF,重用现有的页面布局,无需任何框架迁移。

IronPDF如何处理Web Forms中的动态内容,如Ajax图表?

在渲染选项中启用EnableJavaScript,并添加WaitFor规则,使IronPDF在JavaScript执行完毕后再捕获页面。

FileBehavior.Attachment和FileBehavior.InBrowser之间有什么区别?

FileBehavior.Attachment以选择的文件名作为文件下载PDF。FileBehavior.InBrowser则在浏览器标签页内联显示PDF。

如何将页眉、页脚和页码添加到ASPX PDF导出中?

使用ChromePdfRenderOptions以及引用{page}{total-pages}占位符的TextFooter(或TextHeader)。将CssMediaType设置为Print以应用您的打印样式表。

IronPDF能否在.NET Framework上的ASP.NET Web Forms中工作?

可以。IronPDF支持.NET Framework 4.6.2及更高版本,以及.NET Core、.NET 5和所有现代.NET版本。它可在目标为任何这些运行时的Web Forms应用程序中工作。

Curtis Chau
技术作家

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

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

钢铁支援团队

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