在 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 for .NET 软件组件将任何 ASP.NET 网页表单转换为 PDF。(ASP.NET 转 PDF). HTML通常作为网页呈现,将用于呈现为PDF供下载或在Web浏览器中查看。 附加的源项目将向您展示如何在ASP.NET中使用C#将网页转换为PDF。
我们实现了这种HTML到PDF的转换(将 ASPX 转换为 PDF)在使用 IronPDF 及其AspxToPdf 类.
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 DLL 并手动安装到项目或 GAC 中下载 IronPDF 软件包.
请记住,在任何使用 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 参考资料.
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样式和样式表。 See our附带对比图片的全面深入教程. - 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 设置每个 PDF 页面的标题内容,可以使用内容字符串甚至是 HTML。
- HtmlFooter 设置每个 PDF 页面底部的内容,可以使用内容字符串或 HTML。
- MarginBottom PDF纸张下边距,单位为毫米。 设置为零以创建无边框的pdf。
- MarginLeft 左侧PDF纸张边距,单位为毫米。 设置为零以创建无边框的pdf。
- MarginRight PDF纸张右边距,单位为毫米。 设置为零以创建无边框的pdf。
- MarginTop PDF纸张上边距,单位为毫米。 设置为零以创建无边框的pdf。
- UseMarginsOnHeaderAndFooter 指定在渲染页眉和页脚时是否使用主文档的边距值。
- PaperFit:用于设置虚拟纸张布局的管理工具,控制内容在PDF“纸张”页面上的布局方式。 包括默认 Chrome 行为、缩放、响应式 CSS3 布局、按页面缩放和连续供稿样式 PDF 页面设置的选项。
- 纸张方向 PDF的纸张方向。 横向 或 纵向。
- 页面旋转 从现有文档中进行页面旋转。 完整解释和附带代码示例.
- PaperSize 使用 System.Drawing.Printing.PaperKind 设置 PDF 页面的输出纸张大小。
- SetCustomPaperSizeinCentimeters 设置纸张尺寸(厘米)。
- SetCustomPaperSizeInInches 以英寸设置纸张大小。
- SetCustomPaperSizeinMilimeters 设置纸张大小为毫米。
- SetCustomPaperSizeinPixelsOrPoints 设置屏幕像素或打印点的纸张尺寸。
- ForcePaperSize 指定是否通过在从 HTML 生成 PDF 后调整页面大小,强制页面尺寸与通过 PaperSize 指定的尺寸完全一致。
- PrintHtmlBackgrounds 打印HTML图像背景。
- GrayScale 输出灰度PDF,使用灰色阴影而非全彩。
WaitFor 一个包含等待机制配置的封装对象。 在考虑渲染 JavaScript、Ajax 或动画时,这将非常有用。
PageLoad:默认渲染,无需等待。
渲染延迟:设置任意等待时间。
字体:等待所有字体加载完毕。
JavaScript:使用 JavaScript 函数触发渲染。
- HTML元素:等待特定的HTML元素,例如元素ID、名称、标签名称和查询选择器来定位元素。
- NetworkIdle:等待网络空闲(0、2 或自定义数量).
- 标题 PDF 文档 "标题 "元数据。
- InputEncoding 输入字符编码作为字符串。 ASP.NET 默认使用 UTF-8.
- 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 "合并 "到页眉/页脚中:
- {页码}:用于PDF的当前页码。
- {总页数}:作为PDF中的总页数。
- {网址}渲染PDF文档的网页URL。
- {日期}: 以服务器系统环境适当的格式表示今天的日期。
- {时间}时间:使用 24 小时时钟,单位为小时:秒。
- {html-title}将 title 从 ASPX 网页表单的 head 标签中插入。
- {pdf标题}文件名称。
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 功能可用于在处理多个文档时提高性能。
将 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 视频教程
教程快速访问
下载本教程的源代码
本教程的完整 ASPX 文件到 PDF 转换器源代码以压缩的 Visual Studio Web 应用程序项目形式提供。 The free download contains working code examples for a C# ASP.NET Web Forms project, showing a web page rendered as a PDF with settings applied.
下载在 GitHub 上探索此教程
此 C# ASPX-To-PDF 项目的代码以 C# 和 VB.NET 作为 ASP.NET 网站项目在 GitHub 上提供。请继续在 GitHub 上 fork 我们,以获得更多使用 IronPDF 的帮助。如果有人问 "如何将 ASPX 转换为 PDF?
C# ASPX 转 PDF 网站项目 用 C# 创建 PDF 的高级 ASP.NET Page to PDF 示例 用 VB.NET 创建 PDF 的 ASP.NET PDF 示例下载 C# PDF 快速入门指南
为了让您在 .NET 应用程序中开发 PDF 更容易,我们将快速入门指南编译成 PDF 文档。这份 "Cheat-Sheet "提供了在 C# 和 VB.NET 中生成和编辑 PDF 的常用函数和示例,有助于节省在您的 .NET 项目中开始使用 IronPDF 的时间。
下载