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

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

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

用戶不應該在 Google Chrome 中打開帶有 .aspx 文件擴展名的 ASPX 文件。我們請求工程團隊使用 .NET 代碼自動將 ASPX 轉換為 PDF。! 我們不需要按CTRL P! 有一種基於伺服器的方法可以將ASPX網路資料轉換並儲存為PDF。

應用設定包括設置檔案行為和名稱、添加頁眉和頁腳、更改列印選項、添加分頁符、結合非同步處理和多執行緒等。

如何將 ASPX 檔案轉換成 PDF

Microsoft Web Form 應用程式在 ASP.NET 中經常用於開發高級網站、網上銀行、內聯網和會計系統。ASP.NET 的一個常見功能 (ASPX) 網站生成動態 PDF 文件,例如發票、票據或管理報告,以讓用戶下載 PDF 格式。

本教程展示了如何使用 IronPDF for .NET 軟件組件將任何 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 並安裝最新版本... 對任何彈出的對話框點擊確定。

這適用於任何從 .NET Framework 4.6.2 及以上版本,或 .NET Core 2 及以上版本的 C# .NET Framework 專案。 它在 VB.NET 專案中也同樣有效。

Install-Package IronPdf

https://www.nuget.org/packages/IronPdf

透過 DLL 安裝

或者,可以從以下位置下載 IronPDF DLL 並手動安裝到專案或 GAC https://ironpdf.com/packages/IronPdf.zip

請記得將此語句添加到使用IronPDF的任何cs類文件的頂部:


using IronPdf;

請提供內容以進行翻譯。

2. 將 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# 程式碼完整閱讀如下:Convert The ASPX Page as PDF in Active Server Pages.

: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 參考文件](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 ScreenPrint CSS 樣式和樣式表。請參閱我們的 完整深入的教學,並附有對比圖像.
  • CustomCssUrl 允許在渲染 HTML 之前應用自定義 CSS 樣式表。可以是本地檔案路徑或遠程 URL。
  • EnableMathematicalLaTex 啟用或禁用數學 LaTeX 元素的渲染。
  • EnableJavaScript 啟用 JavaScript 和 JSON 在頁面渲染之前執行。非常適合從 Ajax / Angular 應用程式列印。 另請參見 等待Fot.
  • Javascript 指定在所有 HTML 加载完成后的自定义 JavaScript 字符串,但在 PDF 渲染之前执行。
  • JavascriptMessageListener 每当浏览器的 JavaScript 控制台消息可用时调用的方法回调。
  • FirstPageNumber HeaderFooter 的首页页码。 默认值是 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 圖像背景。
  • GrayScale 輸出灰度 PDF,以灰色陰影代替全彩。
  • WaitFor 一個包含等待機制配置的包裝對象。在考慮 JavaScript、Ajax 或動畫的渲染時可以非常有用。

    • PageLoad:默認渲染,不等待。

    • RenderDelay:設置任意等待時間。

    • Fonts:等待所有字體加載完畢。

    • JavaScript:通過 JavaScript 函數觸發渲染。

    • HTML elements:等待特定的 HTML 元素,如元素 ID、名稱、標籤名稱和查詢選擇器以定位元素。
  • NetworkIdle:等待網絡空閒。 (0、2 或自訂数量).
  • Title PDF 文件的「標題」元數據。
  • InputEncoding 輸入字元編碼作為字串。 UTF-8 是 ASP.NET 的預設值
  • RequestContext 指定渲染的請求上下文。
  • Timeout。渲染的超時時間(以秒為單位)。

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
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 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 應用程序項目提供。 免費下載包含 C# ASP.NET Web 窗體項目的工作代碼示例,顯示具有應用設置的 HTML 網頁作為 PDF 文件。

下載

在 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 參考文件