將 ASPX 頁面轉換為 PDF 在 ASP.NET 中

This article was translated from English: Does it need improvement?
Translated
View the article in English

本 ASPX 轉 PDF 教程將指導您逐步了解如何將 ASPX 轉換為 PDF。 將 ASPX 頁面保存為 ASP.NET 網頁應用程序中的 PDF。

使用者絕不應該在 Google Chrome 中打開帶有 .aspx 檔案擴展名的 ASPX 檔案。 我們要求我們的工程團隊使用 .NET 代碼自動將 ASPX 轉換為 PDF。! 我們永遠不需要按下 CTRL P!可以透過伺服器端將ASPX網路媒體轉換成PDF並保存。

應用設置,包括設置文件行為和名稱、添加頁眉和頁腳、更改打印選項、添加分頁符、結合異步和多線程等。

如何將 ASPX 檔案轉換成 PDF

ASP.NET 的 Microsoft Web Form 應用程式常用於開發複雜的網站、線上銀行、內部網和會計系統。 ASP.NET的一個常見特性(ASPX)網站的目的是生成動態PDF文件,如發票、票證或管理報告,供用戶以PDF格式下載。

本教程展示了如何使用 .NET 的 IronPDF 軟體組件將任何 ASP.NET 網頁表單轉換成 PDF。(ASP.NET 轉換為 PDF). HTML 通常呈現為網頁,將用於渲染為 PDF,以便在網頁瀏覽器中下載或查看。 附帶的原始專案將向您展示如何在ASP.NET中使用C#將網頁轉換為PDF。

我们实现了这种HTML到PDF的转换(將 ASPX 轉換為 PDF)使用 IronPDF 渲染網頁時AspxToPdf工具類別。

1. 從 IronPDF 安裝 ASPX 檔案轉換器免費版

C# NuGet 程式庫用于 PDF

安裝與 NuGet

Install-Package IronPdf
Java PDF JAR

下載 DLL

下載DLL

手動安裝到您的項目中

C# NuGet 程式庫用于 PDF

安裝與 NuGet

Install-Package IronPdf
Java PDF JAR

下載 DLL

下載DLL

手動安裝到您的項目中

立即開始在您的專案中使用IronPDF,並享受免費試用。

第一步:
green arrow pointer

查看 IronPDFNuget 快速安裝和部署。已被下載超過800萬次,它正用C#改變PDF。

C# NuGet 程式庫用于 PDF nuget.org/packages/IronPdf/
Install-Package IronPdf

請考慮安裝 IronPDF DLL 直接下載並手動安裝到您的專案或GAC表單: IronPdf.zip

手動安裝到您的項目中

下載DLL

透過NuGet安裝

在 Visual Studio 中,右鍵單擊您的項目解決方案資源管理器並選擇“管理 NuGet 套件...”。 從那裡開始搜索 IronPDF 並安裝最新版本... 點擊確定以處理彈出的任何對話框。

這適用於任何C# .NET 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; 請提供內容以進行翻譯。

將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)
VB   C#

這就是所需的全部內容; 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
VB   C#

3. 應用 ASPX 檔案至 PDF 轉換器設定

在使用 .NET Web Forms 生成的過程中將 ASPX 文件轉換為 PDF 時,有許多選項可以進行調整和完善。

這些選項在線上有完整的文件記載。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)
VB   C#

可用的PDF渲染選項包括:

  • CreatePdfFormsFromHtml 將 ASPX 表單元素轉換為可編輯的 PDF 表單。
  • CssMediaType ScreenPrint CSS 樣式和樣式表。 See our完整深入的教學,並附有對比圖像.
  • CustomCssUrl 允許在渲染前將自訂 CSS 樣式表應用於 HTML。 可能是本地文件路徑,或遠程URL。
  • EnableMathematicalLaTex 啟用或禁用數學 LaTeX 元素的渲染。
  • 啟用JavaScript 在頁面渲染之前啟用JavaScript和JSON執行。 適用於從 Ajax / Angular 應用程式列印。 另請參閱等待Fot.
  • Javascript 指定在所有 HTML 加載完成後但在 PDF 渲染之前執行的自訂 JavaScript 字串。
  • JavascriptMessageListener 當瀏覽器JavaScript控制台消息變得可用時,將調用的方法回調。
  • FirstPageNumber 標題和頁腳的第一頁頁碼。 預設值為1。
  • TableOfContents 在HTML文件中找到具有id "ironpdf-toc"的元素位置生成目錄。
  • TextHeader 為每個PDF頁面設置頁腳內容為文本。 支援「郵件合併」並自動將網址轉換為超連結。
  • TextFooter 設定每個 PDF 頁面的頁首內容為文本。 支援「郵件合併」並自動將網址轉換為超連結。
  • HtmlHeader 使用內容字串或HTML設置每個PDF頁面的頁眉內容。
  • HtmlFooter 設定每個PDF頁面的頁腳內容,使用內容字符串或甚至HTML。
  • MarginBottom 底部 PDF 紙張邊距,以毫米為單位。 設為零則為無邊框的pdf。
  • MarginLeft PDF 紙張左邊邊界,單位為毫米。 設為零則為無邊框的pdf。
  • MarginRight PDF紙張右邊邊距,以毫米計。 設為零則為無邊框的pdf。
  • MarginTop PDF 紙張上邊距,單位為毫米。 設為零則為無邊框的pdf。
  • UseMarginsOnHeaderAndFooter 指定在渲染頁首和頁尾時是否使用主文檔的邊距值。
  • PaperFit:一個用於設置虛擬紙張佈局的管理器,用於控制內容在PDF「紙張」頁面上的佈局方式。 包括默認 Chrome 行為、縮放、響應式 CSS3 布局、按頁面比例縮放和連續進紙式 PDF 頁面設置的選項。
  • PaperOrientation PDF 文件的紙張方向。 LandscapePortrait
  • 頁面旋轉 從現有文件進行頁面旋轉。 完整說明及配套範例程式碼.
  • PaperSize 使用 System.Drawing.Printing.PaperKind 設定 PDF 頁面的輸出紙張大小。
  • SetCustomPaperSizeinCentimeters 設定紙張大小(以公分為單位)。
  • SetCustomPaperSizeInInches設定紙張大小為英寸。
  • SetCustomPaperSizeinMilimeters 設置紙張尺寸為毫米。
  • 設置自定義紙張尺寸(以像素或點為單位) 設置屏幕像素或打印點的紙張尺寸。
  • 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
VB   C#

或者,我們可以使用 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
VB   C#

在我們的例子中可以看到,我們可以使用占位符將動態文本或 html "合併"到頁首/頁尾中。 -{頁面}:用於PDF的當前頁碼。 -{總頁數}:作為PDF中的總頁數。 -{網址}從中生成 PDF 文件的網絡 URL。 -{日期}:適用於伺服器系統環境的今日日期格式。 -{時間}:使用24小時制的小時:秒。 -{html-標題}將 標題 從 ASPX 網頁表單的 head 標籤中插入。 -{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;'>&nbsp;</div>
HTML

6. 結合非同步和多執行緒以提升性能

IronPDF是為.NET Framework 4.6.2或.NET Core 2及以上版本所建立的。 在 Framework 4.6.2 或更高版本的項目中,異步可用於在處理多個文件時提高性能。

將 Async 與多線程 CPU 及 Paralllel.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 教學影片


快速指南

下載此教學作為源代碼

此教程的完整ASPX檔案到PDF轉換器原始碼以壓縮的Visual Studio網頁應用程式專案形式提供。 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 專案的程式碼可以在 GitHub 上以 C# 和 VB.NET 的形式作為 ASP.NET 網站專案獲取。請到 GitHub 分支此項目以獲得更多有關使用 IronPDF 的幫助。歡迎與任何可能會問 '如何把 ASPX 轉換成 PDF?' 的人分享這個項目。

C# ASPX 轉 PDF 網站項目 高級ASP.NET頁面轉PDF範例(C#)生成PDF 使用 VB.NET 在 ASP.NET 中創建 PDF 的範例

下載 C# PDF Quickstart guide

為了讓您在 .NET 應用程式中開發 PDF 更加輕鬆,我們已將快速入門指南彙編成 PDF 文件。這份「速查表」提供了常用功能和範例,用於在 C# 和 VB.NET 中生成和編輯 PDF,並將幫助您節省使用 IronPDF 在 .NET 專案中入門的時間。

下載

查看 API 參考文件

探索 IronPDF 的 API 參考,概述 IronPDF 所有功能、命名空間、類別、方法欄位和枚舉的詳細資訊。

查看 API 參考文件