將 ASPX 頁面轉換為 PDF 在 ASP.NET 中
本 ASPX 轉 PDF 教程將指導您逐步了解如何將 ASPX 轉換為 PDF。 將 ASPX 頁面保存為 ASP.NET 網頁應用程序中的 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 Form 應用程式常用於開發複雜的網站、線上銀行、內部網和會計系統。 ASP.NET (ASPX) 網站的一個常見功能是生成動態的 PDF 檔案,如發票、票券或管理報告,以供用戶以 PDF 格式下載。
本教程介紹如何使用IronPDF軟體元件將任何ASP.NET網頁表單轉換為PDF(ASP.NET to PDF)。 HTML 通常呈現為網頁,將用於渲染為 PDF,以便在網頁瀏覽器中下載或查看。 附帶的原始專案將向您展示如何在ASP.NET中使用C#將網頁轉換為PDF。
我們在使用IronPDF及其AspxToPdf Class來渲染網頁時實現這種HTML到PDF的轉換(將ASPX轉換為PDF)。
1. 從 IronPDF 安裝 ASPX 檔案轉換器免費版
立即在您的專案中使用IronPDF,並享受免費試用。
透過NuGet安裝
在 Visual Studio 中,右鍵點擊您的專案方案總管並選擇「管理 NuGet 套件...」。 從那裡開始搜索 IronPDF 並安裝最新版本... 單擊「確定」以關閉出現的任何對話框。
這適用於任何C# .NET Framework項目,從框架 4.6.2 及以上版本,或.NET Core 2 及以上版本。 它在VB.NET項目中也同樣適用。
Install-Package IronPdf
透過 DLL 安裝
或者,可以從下載 IronPDF 套件,然後手動將 IronPDF DLL 安裝到專案或 GAC。
記得在使用 IronPDF 的任何 cs 類別檔案的頂部加入此聲明:
使用 IronPdf;
將ASP.NET網頁轉換為PDF
我們從一個正常的ASPX「Web Form」開始,它渲染為HTML。 我們稍後將 ASPX 頁面轉換為 PDF 文件格式。
在附加的示例源代码中,我们渲染了一个商业发票“Invoice.aspx”,一个简单的HTML商业发票作为ASP.NET页面渲染。
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 樣式和樣式表。 查看我們的完整深入教程及比較圖片。 - CustomCssUrl 允許在渲染之前將自訂 CSS 樣式表應用於 HTML。 可能是本地文件路徑,或遠程URL。
- EnableMathematicalLaTex 啟用或停用數學 LaTeX 元素的渲染。
- EnableJavaScript 啟用 JavaScript 和 JSON 在頁面呈現之前執行。 適用於從 Ajax / Angular 應用程式列印。 另請參閱WaitFor 使用指南。
- Javascript 指定自訂的 JavaScript 字串,在所有 HTML 加載完成但在 PDF 渲染之前執行。
- JavascriptMessageListener 是一種方法回調,當瀏覽器的JavaScript控制台訊息可用時被調用。
- FirstPageNumber Header 和 Footer 的首頁頁碼。 預設值為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 圖片背景。
- 灰階 輸出以灰色陰影顯示的灰階 PDF,而非全彩。
-
WaitFor 是一個持有等待機制配置的包裝物件。 在考慮渲染 JavaScript、Ajax 或動畫時,這可能會很有用。
-
PageLoad:默認渲染,無需等待。
-
RenderDelay:設定一個任意的等待時間。
-
字體:等待所有字體載入完成。
-
JavaScript:使用JavaScript函數觸發渲染。
- HTML 元素:等待特定的 HTML 元素,例如元素 ID、名稱、標籤名稱和查詢選擇器來定位元素。
-
- NetworkIdle:等待網路閒置(0、2或自定義數量)。
- 標題 PDF 文件的「標題」元數據。
- InputEncoding 輸入字元編碼作為字串。 UTF-8 是 ASP.NET 的預設編碼。
- RequestContext 指定渲染的請求上下文。
- 超時。 渲染超時(秒)。
4. 為 ASPX PDF 添加頁首和頁尾
使用 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 文件的網頁 URL。
- {date}:以適合伺服器系統環境的格式顯示今天的日期。
- {time}: 以 24 小時制顯示小時:秒。
- {html-title}:插入來自ASPX網頁表單head標籤中的title。
- {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 網頁應用程式專案下載。
下載此教學作為 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 上以 C# 和 VB.NET 作為 ASP.NET 網站專案取得。請在 GitHub 上 fork 我們,以獲得更多使用 IronPDF 的協助。歡迎與任何可能會問「如何將 ASPX 轉換為 PDF?」的人分享此專案。
C# ASPX 到 PDF 網站專案 進階 ASP.NET 頁面到 PDF 的 C# 範例以建立 PDF 在 VB.NET 中用於建立 PDF 的 ASP.NET PDF 範例下載 C# PDF 快速入門指南
為了讓您在 .NET 應用程式中的 PDF 開發更輕鬆,我們已將快速入門指南匯編為 PDF 文件。這份「Cheat-Sheet」提供了生成和編輯 C# 和 VB.NET 中 PDF 的常用功能和範例的快速訪問,並有助於節省您在 .NET 專案中開始使用 IronPDF 的時間。
下載