將 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 檔案轉換器免費版

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

第一步:
green arrow pointer

透過NuGet安裝

在 Visual Studio 中,右鍵點擊您的專案方案總管並選擇「管理 NuGet 套件...」。 從那裡開始搜索 IronPDF 並安裝最新版本... 單擊「確定」以關閉出現的任何對話框。

這適用於任何C# .NET Framework項目,從框架 4.6.2 及以上版本,或.NET Core 2 及以上版本。 它在VB.NET項目中也同樣適用。

Install-Package IronPdf

從NuGet下載IronPDF

透過 DLL 安裝

或者,可以從下載 IronPDF DLL 並手動安裝到專案或 GAC。下載 IronPDF 套件.

請記得將此語句添加到使用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 時,有許多選項可以進行調整和完善。

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

可用的PDF渲染選項包括:

  • CreatePdfFormsFromHtml 將 ASPX 表單元素轉換為可編輯的 PDF 表單。
  • CssMediaType ScreenPrint CSS 樣式和樣式表。 See our完整深入的教學,並附有對比圖像.
  • CustomCssUrl 允許在渲染前將自訂 CSS 樣式表應用於 HTML。 可能是本地文件路徑,或遠程URL。
  • EnableMathematicalLaTex 啟用或禁用數學 LaTeX 元素的渲染。
  • 啟用JavaScript 在頁面渲染之前啟用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 設定每個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 和 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 教學影片


快速指南

Brand Visual Studio related to 快速指南

下載此教學作為源代碼

此教程的完整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上點選fork來獲取有關IronPDF的更多幫助。歡迎與任何可能詢問「如何將ASPX轉換為PDF?」的人分享這個專案。

C# ASPX 轉 PDF 網站項目 高級ASP.NET頁面轉PDF範例(C#)生成PDF 使用 VB.NET 在 ASP.NET 中創建 PDF 的範例
Github Icon related to 快速指南
Html To Pdf Icon related to 快速指南

下載 C# PDF 快速入門指南

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

下載

查看 API 參考文件

探索 IronPDF 的 API 參考文檔,了解 IronPDF 所有功能、命名空間、類別、方法字段和枚舉的詳細信息。

查看 IronPDF API 參考資料
Documentation related to 快速指南