在 ASP.NET 中将 ASPX 页转换为 PDF
此 ASPX 转 PDF 教程将逐步指导您如何将 ASPX 转换为 PDF。 在ASP.NET网站应用程序中将ASPX页面保存为PDF。
用户永远不应在Google Chrome中打开带有.aspx文件扩展名的ASPX文件。 我们要求工程团队使用.NET代码自动将ASPX转换为PDF! 我们从来不需要按 CTRL P!有一种基于服务器的方法可以将 ASPX 互联网媒体转换并保存为 PDF。
应用设置包括设置文件行为和名称、添加页眉和页脚、更改打印选项、添加分页符、结合异步和多线程等。
将 ASPX 文件转换为 PDF 的简单步骤

- 下载 ASPX 到 PDF 的 C# 库
- 选择 ASPX 页面
- 将 ASPX 文件转换为 PDF
- 应用 ASPX 到 PDF 转换器设置并添加页眉、页脚
- 在 PDF 文件中创建分页符
如何将 ASPX 文件转换为 PDF
ASP.NET常用于开发复杂的网站、在线银行、内网和会计系统的Microsoft Web表单应用程序。 ASP.NET (ASPX) 网站的一个常见功能是生成动态 PDF 文件,如发票、票据或管理报告,以供用户以 PDF 格式下载。
本教程演示如何使用IronPDF软件组件将任何ASP.NET Web表单转换为PDF (ASP.NET to PDF)。 HTML通常作为网页呈现,将用于呈现为PDF供下载或在Web浏览器中查看。 附加的源项目将向您展示如何在ASP.NET中使用C#将网页转换为PDF。
我们通过使用IronPDF及其AspxToPdf Class在渲染网页时实现HTML到PDF(将ASPX转换为PDF)的转换。
1. 从IronPDF安装ASPX文件转换器免费版。
立即在您的项目中开始使用IronPDF,并享受免费试用。
通过 NuGet 安装
在 Visual Studio 中,右键单击项目解决方案资源管理器,选择 "管理 NuGet 包..."。 从那里开始,搜索IronPDF并安装最新版本... 在出现的对话框中单击 "确定"。
这将适用于任何C# .NET Framework项目,从Framework 4.6.2及以上版本,或.NET Core 2及以上版本。 它在VB.NET项目中同样有效。
Install-Package IronPdf
通过 DLL 安装
或者,可以从下载 IronPDF 包,将 IronPDF DLL 下载并手动安装到项目或 GAC。
请记得在任何使用 IronPDF 的cs类文件的顶部添加这句话:
使用 IronPdf;
2. 将ASP.NET网页转换为PDF
我们从一个普通的ASPX“Web Form”开始,它渲染为HTML。 我们稍后将 ASPX 页面转换为 PDF 文件格式。
在附带的示例源代码中,我们渲染了一个商业发票"Invoice.aspx",这是一个作为ASP.NET页面渲染的简单HTML商业发票。
HTML页面包含CSS3样式表,可能还包括图像和JavaScript。
要将此 ASP.NET 网页渲染为 PDF 而不是 HTML,我们需要打开 C#(或 VB.NET)代码并将其添加到Page_Load事件中:
:path=/static-assets/pdf/content-code-examples/how-to/aspx-to-pdf-1.cs
IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.InBrowser);
IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.InBrowser)
这就是所需的全部内容; HTML现在渲染为PDF。 超链接、样式表、图像乃至 HTML 表单都得到了保留。 这与用户在浏览器中将 HTML 打印为 PDF 的输出非常相似。 IronPDF 基于支持 Google Chrome 的 Chromium 网络浏览器技术构建。
整个C#代码如下:在Active Server Pages中将ASPX页面转换为PDF。
:path=/static-assets/pdf/content-code-examples/how-to/aspx-to-pdf-2.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using IronPdf;
namespace AspxToPdfTutorial
{
public partial class Invoice : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.InBrowser);
}
}
}
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports IronPdf
Namespace AspxToPdfTutorial
Partial Public Class Invoice
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.InBrowser)
End Sub
End Class
End Namespace
3. 应用 ASPX 文件到 PDF 转换器设置
在使用 .NET Web Forms 生成的时候,将 ASPX 文件转换为 PDF 有许多可以调整和完善的选项。
这些选项在IronPDF API Reference中有完整记录。
3.1 设置PDF文件行为
“InBrowser” 文件行为尝试直接在用户的浏览器中显示 PDF。 这并不总是在每个网络浏览器中都能实现的,但通常是现代、符合标准的浏览器的常见功能。
IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.InBrowser);
附件 文件行为会导致 PDF 被下载。
IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.Attachment);
3.2.设置 PDF 文件名
我们还可以通过添加一个额外的参数来设置PDF文档的文件名。 这意味着当用户决定下载或保留文件时,我们可以控制文件的名称。 当我们将 ASPX 页面保存为 PDF 时,将使用此名称命名 PDF 文档。
IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.Attachment, "Invoice.pdf");
3.3.更改 PDF 打印选项
我们可以通过添加一个IronPdf.ChromePdfRenderer类的实例来控制PDF的输出。 ChromePdfRenderer API 参考
:path=/static-assets/pdf/content-code-examples/how-to/aspx-to-pdf-3.cs
var AspxToPdfOptions = new IronPdf.ChromePdfRenderOptions()
{
EnableJavaScript = false,
//.. many more options available
};
IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.Attachment, "Invoice.pdf", AspxToPdfOptions);
Dim AspxToPdfOptions = New IronPdf.ChromePdfRenderOptions() With {.EnableJavaScript = False}
IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.Attachment, "Invoice.pdf", AspxToPdfOptions)
可用的PDF渲染选项包括:
- CreatePdfFormsFromHtml 将 ASPX 表单元素转换为可编辑的 PDF 表单。
- CssMediaType
Screen
或Print
CSS 样式和样式表。 请查看我们的详细教程及对比图像。 - CustomCssUrl 允许在渲染之前将自定义 CSS 样式表应用于 HTML。 可能是本地文件路径,或者是远程URL。
- EnableMathematicalLaTex 启用或禁用数学 LaTeX 元素的渲染。
- EnableJavaScript 启用 JavaScript 和 JSON 在页面呈现之前执行。 适用于从 Ajax / Angular 应用程序打印。 还可以查看WaitFor 指南。
- Javascript 指定在所有HTML加载完毕但在PDF渲染之前执行的自定义JavaScript字符串。
- JavascriptMessageListener 是一个方法回调,当浏览器的 JavaScript 控制台消息可用时调用。
- FirstPageNumber 页眉和页脚的首页页码。 默认值为1。
- TableOfContents 在 HTML 文档中具有 id "ironpdf-toc" 的元素所在位置生成目录。
- TextHeader 将每个PDF页的页脚内容设置为文本。 支持 "邮件合并 "并自动将 URL 转换为超链接。
- TextFooter 将每个 PDF 页面的页脚内容设置为文本。 支持 "邮件合并 "并自动将 URL 转换为超链接。
- HtmlHeader 使用内容字符串甚至HTML设置每个PDF页面的页眉内容。
- HtmlFooter 使用内容字符串或HTML为每个PDF页面设置页脚内容。
- MarginBottom 底部 PDF 纸张边距(以毫米为单位)。 设置为零以创建无边框的pdf。
- MarginLeft 左侧PDF纸张边距(以毫米为单位)。 设置为零以创建无边框的pdf。
- MarginRight 右侧 PDF 页边距(毫米)。 设置为零以创建无边框的pdf。
- MarginTop PDF顶部纸张边距(毫米)。 设置为零以创建无边框的pdf。
- UseMarginsOnHeaderAndFooter 指定在呈现页眉和页脚时是否使用主文档中的边距值。
- PaperFit:用于设置虚拟纸张布局的管理器,控制内容在PDF“纸张”页面上的布局方式。 包括默认 Chrome 行为、缩放、响应式 CSS3 布局、按页面缩放和连续供稿样式 PDF 页面设置的选项。
- PaperOrientation PDF纸张方向。 横向 或 纵向。
- PageRotation 从现有文档中旋转页面。 完整说明和附带的代码示例。
- PaperSize 使用 System.Drawing.Printing.PaperKind 设置 PDF 页面的输出纸张大小。
- SetCustomPaperSizeinCentimeters 设置纸张尺寸(以厘米为单位)。
- SetCustomPaperSizeInInches 设置纸张大小(单位为英寸)。
- SetCustomPaperSizeinMilimeters 设置纸张大小(单位:毫米)。
- SetCustomPaperSizeinPixelsOrPoints 设置纸张尺寸为屏幕像素或打印机点。
- ForcePaperSize 指定是否通过在从HTML生成PDF后调整页面大小,以强制页面尺寸完全符合通过PaperSize指定的尺寸。
- PrintHtmlBackgrounds 打印HTML图像背景。
- GrayScale 输出以灰色而非全彩显示的灰度 PDF。
-
WaitFor 是一个包装对象,用于保存等待机构的配置。 在考虑渲染 JavaScript、Ajax 或动画时,这将非常有用。
-
PageLoad:默认渲染无需等待。
-
RenderDelay:设置任意等待时间。
-
字体:等待所有字体加载完毕。
-
JavaScript:使用 JavaScript 函数触发渲染。
- HTML 元素:等待特定的 HTML 元素,例如元素 ID、名称、标签名称和查询选择器以定位元素。
-
- NetworkIdle:等待网络闲置(0、2或自定义数量)。
- 标题 PDF 文档的“标题”元数据。
- InputEncoding 输入字符编码为字符串。 UTF-8 是 ASP.NET 的默认编码。
- RequestContext 指定渲染的请求上下文。
- 超时。 渲染超时(秒)。
4. 为 ASPX PDFs 添加页眉和页脚
使用IronPDF,可以在PDF输出中添加页眉和页脚。
最简单的方法是使用TextHeaderFooter类,该类支持基本布局,可以轻松添加动态数据,例如当前时间和页码。
4.1.ASPX 转换为 PDF 的页眉和页脚示例
:path=/static-assets/pdf/content-code-examples/how-to/aspx-to-pdf-4.cs
using IronSoftware.Drawing;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace AspxToPdfTutorial
{
public partial class Invoice : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
var AspxToPdfOptions = new IronPdf.ChromePdfRenderOptions()
{
TextHeader = new IronPdf.TextHeaderFooter()
{
CenterText = "Invoice",
DrawDividerLine = false,
Font = FontTypes.Arial,
FontSize = 12
},
TextFooter = new IronPdf.TextHeaderFooter()
{
LeftText = "{date} - {time}",
RightText = "Page {page} of {total-pages}",
Font = IronSoftware.Drawing.FontTypes.Arial,
FontSize = 12,
},
};
IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.Attachment, "Invoice.pdf", AspxToPdfOptions);
}
}
}
Imports IronSoftware.Drawing
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Namespace AspxToPdfTutorial
Partial Public Class Invoice
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
Dim AspxToPdfOptions = New IronPdf.ChromePdfRenderOptions() With {
.TextHeader = New IronPdf.TextHeaderFooter() With {
.CenterText = "Invoice",
.DrawDividerLine = False,
.Font = FontTypes.Arial,
.FontSize = 12
},
.TextFooter = New IronPdf.TextHeaderFooter() With {
.LeftText = "{date} - {time}",
.RightText = "Page {page} of {total-pages}",
.Font = IronSoftware.Drawing.FontTypes.Arial,
.FontSize = 12
}
}
IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.Attachment, "Invoice.pdf", AspxToPdfOptions)
End Sub
End Class
End Namespace
此外,我们还可以使用 HtmlHeaderFooter 类生成 HTML 页眉和页脚,该类还支持 CSS、图像和超链接。
:path=/static-assets/pdf/content-code-examples/how-to/aspx-to-pdf-5.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace AspxToPdfTutorial
{
public partial class Invoice : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
var AspxToPdfOptions = new IronPdf.ChromePdfRenderOptions()
{
MarginTop = 50, // make sufficiant space for an HTML header
HtmlHeader = new IronPdf.HtmlHeaderFooter()
{
HtmlFragment = "<div style='text-align:right'><em style='color:pink'>page {page} of {total-pages}</em></div>"
}
};
IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.Attachment, "MyDocument.pdf", AspxToPdfOptions);
}
}
}
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Namespace AspxToPdfTutorial
Partial Public Class Invoice
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
Dim AspxToPdfOptions = New IronPdf.ChromePdfRenderOptions() With {
.MarginTop = 50,
.HtmlHeader = New IronPdf.HtmlHeaderFooter() With {.HtmlFragment = "<div style='text-align:right'><em style='color:pink'>page {page} of {total-pages}</em></div>"}
}
IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.Attachment, "MyDocument.pdf", AspxToPdfOptions)
End Sub
End Class
End Namespace
正如我们在示例中看到的,我们可以使用占位符将动态文本或 HTML "合并 "到页眉/页脚中:
- {page}: 表示PDF的当前页码。
- {total-pages}:PDF中的总页数。
- {url}:生成PDF文档的Web URL。
- {date}:以适合服务器系统环境的格式表示今天的日期。
- {time}: 以24小时制表示的小时:秒。
- {html-title}:从ASPX Web表单的头标签中插入标题。
- {pdf-title}:用于文档文件名。
5. 将 ASPX 文件应用至 PDF 技巧:分页符
HTML 通常 "流淌 "成一个长页面,而 PDF 则是模拟数字纸张,分成连贯的页面。 将以下代码添加到您的ASPX页面中,将在.NET生成的PDF中自动创建一个分页符。
:path=/static-assets/pdf/content-code-examples/how-to/aspx-to-pdf-6.cs
<div style='page-break-after: always;'> </div>
6.结合异步和多线程以提高性能
IronPDF 是为 .NET Framework 4.6.2 或 .NET Core 2 及以上版本构建的。 在Framework 4.6.2或以上版本的项目中,可以利用异步功能来提高处理多个文档时的性能。
将 Async 与多线程 CPU 和 Parallel.ForEach 命令相结合,将显著改善批量 PDF 格式的处理。
7. 下载为ASP.NET源代码
本教程的完整ASPX文件到PDF转换器源代码可以作为压缩的Visual Studio Web应用程序项目下载。
下载此教程为 ASP.NET Visual Studio 项目
免费下载包含了一个C# ASP.NET Web Forms项目的工作代码示例,展示了一个网页如何在应用设置后被渲染为PDF。 我们希望本教程帮助您学会了如何将 ASPX 文件保存为 PDF。
向前迈进
通常,学习任何编程技术的最佳方式是在您自己的ASP.NET项目中进行实验。 这包括尝试使用IronPDF的ASPX到PDF转换器。
开发人员可能也对IronPdf.AspxToPdf 类参考感兴趣。
8.观看 ASPX 转 PDF 视频教程
教程快速访问
Download this Tutorial as Source Code
The full ASPX File to PDF Converter Source Code for this tutorial is available as a zipped Visual Studio Web Application project. 免费下载包含适用于 C# ASP.NET Web Forms 项目的工作代码示例,展示了应用设置后,将网页呈现为 PDF 的过程。 下载
在 GitHub 上探索此教程
此 C# ASPX-To-PDF 项目的代码在 GitHub 上作为 ASP.NET 网站项目,可以使用 C# 和 VB.NET 获得。请继续在 GitHub 上 fork 我们,以获得更多有关使用 IronPDF 的帮助。请随意与任何可能在问“如何将 ASPX 转换为 PDF?”的人分享此信息。
C# ASPX 转 PDF 网站项目 高级 ASP.NET 页面到 PDF 的 C# 示例,用于创建 PDF ASP.NET PDF 示例:使用 VB.NET 创建 PDF下载 C# PDF 快速入门指南
为了让您在 .NET 应用程序中开发 PDF 更容易,我们将快速入门指南编译成 PDF 文档。这份 "Cheat-Sheet "提供了在 C# 和 VB.NET 中生成和编辑 PDF 的常用函数和示例,有助于节省在您的 .NET 项目中开始使用 IronPDF 的时间。
下载