在 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);
这就是所需的全部内容; 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);
}
}
}
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);
可用的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);
}
}
}
此外,我们还可以使用 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);
}
}
}
正如我们在示例中看到的,我们可以使用占位符将动态文本或 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 的时间。
下载