在 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,并立即获取免费试用。
查看 IronPDF 上 Nuget 用于快速安装和部署。它有超过800万次下载,正在使用C#改变PDF。
Install-Package IronPdf
考虑安装 IronPDF DLL 直接。下载并手动安装到您的项目或GAC表单中: IronPdf.zip
手动安装到你的项目中
下载DLL通过 NuGet 安装
在 Visual Studio 中,右键单击您的项目解决方案资源管理器,然后选择“管理 NuGet 包...”。 从那里开始,搜索IronPDF并安装最新版本... 点击确定以应对任何弹出的对话框。
这将适用于任何C# .NET Framework项目,从Framework 4.6.2及以上版本,或.NET Core 2及以上版本。 它在VB.NET项目中同样有效。
Install-Package IronPdf
https://www.nuget.org/packages/IronPdf
通过 DLL 安装
另外,也可以从以下地址下载 IronPDF DLL 并手动安装到项目或 GAC 中 https://ironpdf.com/packages/IronPdf.zip
请记住,在任何使用 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*** 事件中:
```cs
:path=/static-assets/pdf/content-code-examples/how-to/aspx-to-pdf-1.cs
这就是所需的全部内容; 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 有许多可以调整和完善的选项。
这些选项在网上有完整的文档。应用程序接口参考页面.
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 参考](https://ironpdf.com/object-reference/api/IronPdf.ChromePdfRenderer.html)
```cs
:path=/static-assets/pdf/content-code-examples/how-to/aspx-to-pdf-3.cs
可用的PDF渲染选项包括:
- CreatePdfFormsFromHtml 将 ASPX 表单元素转换为可编辑的 PDF 表单。
- CssMediaType
Screen
或Print
CSS样式和样式表。 See our附带对比图片的全面深入教程. - CustomCssUrl 允许在渲染前将自定义CSS样式表应用于HTML。 可能是本地文件路径,或者是远程URL。
- EnableMathematicalLaTex 启用或禁用数学LaTeX元素的渲染。
- EnableJavaScript 允许在页面渲染之前执行 JavaScript 和 JSON。 适用于从 Ajax / Angular 应用程序打印。 另请查看WaitFot.
- Javascript 指定在所有HTML加载完毕但在PDF渲染之前执行的自定义JavaScript字符串。
- JavascriptMessageListener 当浏览器JavaScript控制台消息可用时要调用的方法回调。
- FirstPageNumber 用于页眉和页脚的第一页编号。 默认值为1。
- TableOfContents 在HTML文档中找到id为“ironpdf-toc”的元素位置生成目录。
- TextHeader 为每个PDF页面设置页脚内容。 支持“邮件合并”并自动将网址转换为超链接。
- TextFooter 为每个PDF页面设置页脚文本内容。 支持“邮件合并”并自动将网址转换为超链接。
- 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 Quickstart guide
为了使您在.NET应用程序中开发 PDF 更容易,我们将快速入门指南编译成 PDF 文档。这份 "小抄 "提供了在 C# 和 VB.NET 中快速访问生成和编辑 PDF 的常用函数和示例,有助于节省您在.NET 项目中开始使用 IronPDF 的时间。
下载