跳過到頁腳內容
使用IRONPDF

如何使用C#在ASP .NET中將HTML轉換為PDF

在現代網頁應用程式中,從 HTML 內容產生文件是一項常見需求。 無論您需要建立發票、報告或任何其他類型的文檔,都可以使用 ASP.NET 中的 IronPDF 庫和 C# 有效地將 HTML 轉換為 PDF。

今天,我們將探索如何設置IronPDF並使用它將HTML內容轉換為PDF文檔。

如何使用 IronPDF 在 ASP.NET 中將 HTML 轉換為 PDF

  1. 使用 Visual Studio 或您選擇的 IDE 建立一個 ASP.NET 專案。
  2. 安裝 IronPDF 並設定您的許可證金鑰。
  3. 建立一個新的控制器或頁面,用於處理 PDF 轉換。
  4. 在控制器中編寫轉換邏輯。
  5. 設定路由以允許存取您的 PDF 產生操作。

IronPDF概述

IronPDF 是一個功能強大的 PDF 庫,可讓開發人員讀取、建立和操作 PDF 文件。 IronPDF 擁有豐富的功能集和快速簡單的安裝流程,可讓您立即將 PDF 專案提升到一個新的水平。 其直覺的 API 易於學習,如果您希望直接從您的 Web 應用程式產生動態 PDF 文件、執行 PDF 安全任務、PDF 註釋等,它將是理想的選擇。

特點

  • PDF 轉換: IronPDF 可以將 HTML 檔案轉換為 PDF,並完全支援現代網路標準。 您可以放心,IronPDF 將始終從您的 HTML 頁面返回像素級完美的 PDF 檔案。 IronPDF 也可以轉換其他格式的 PDF 檔案,例如 DOCX、圖片、RTF 等。
  • PDF 產生:使用 IronPDF,您可以從任何網頁、ASPX 檔案、HTML 字串等產生 PDF。
  • 安全功能:借助 IronPDF 的安全功能,您可以始终确保任何敏感 PDF 文件的安全。 使用 IronPDF 加密您的 PDF 檔案、設定密碼,以及為 PDF 檔案設定權限。
  • PDF編輯功能:使用 IronPDF,您可以處理現有的 PDF 文件、編輯它們,並輕鬆讀取 PDF 檔案。 IronPDF 提供的編輯功能包括新增頁首和頁尾,在 PDF 頁面上印製文字和圖片,在 PDF 上新增自訂水印,處理 PDF 表單,以及分割或合併 PDF 檔案。

先決條件

在開始之前,請確保您已準備好:

  • 已安裝Visual Studio或其他 C# 開發環境。
  • IronPDF庫已安裝。 您可以從 NuGet 取得,也可以直接從 IronPDF 網站取得。

建立一個新的 ASP.NET 項目

啟動 Visual Studio 並選擇最適合您需求的 ASP.NET 專案類型。 今天的範例,我將建立一個 ASP.NET Core Web 應用程式(模型-視圖-控制器)。

如何在 ASP.NET 中使用 C# 將 HTML 轉換為 PDF:圖 1

然後,輸入項目名稱並選擇項目存放位置。

如何在 ASP.NET 中使用 C# 將 HTML 轉換為 PDF:圖 2

最後,為專案選擇 .NET Framework,並更改專案的任何其他設置,例如身份驗證類型,或啟用容器支援和 Docker。

如何在 ASP.NET 中使用 C# 將 HTML 轉換為 PDF:圖 3

建立控制器

要建立一個新的控制器來存放我們的 HTML 轉 PDF 程式碼,首先在解決方案資源管理器中右鍵單擊"控制器"資料夾,然後選擇"新增 -> 控制器"。

如何在 ASP.NET 中使用 C# 將 HTML 轉換為 PDF:圖 4

這將彈出一個新窗口,您可以在其中選擇要新增到專案中的控制器類型。 我們選擇了一個空的MVC控制器。

如何在 ASP.NET 中使用 C# 將 HTML 轉換為 PDF:圖 5

最後,我們為新的控制器命名,然後點擊"新增"將其新增到我們的專案中。

如何在 ASP.NET 中使用 C# 將 HTML 轉換為 PDF:圖 6

新增 HTML 轉 PDF 程式碼

現在我們已經建立了 ASP.NET 項目,可以開始編寫將 HTML 文件內容轉換為 PDF 的程式碼了。 我們將從一個簡單的 HTML 字串轉 PDF 的範例開始,然後再探討如何透過自訂轉換 HTML 內容。

using IronPdf;
using Microsoft.AspNetCore.Mvc;

namespace IronPdfTest.Controllers
{
    public class PdfController : Controller
    {
        // Action method to generate a PDF from HTML content
        public IActionResult GeneratePdf()
        {
            // String of HTML code to be converted to PDF
            string htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF generated from HTML.</p>";

            // Creating a renderer to convert the HTML string to PDF
            ChromePdfRenderer renderer = new ChromePdfRenderer();

            // Convert HTML string to PDF
            PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent);

            // Return the generated PDF file
            return File(pdf.BinaryData, "application/pdf", "generatedDocument.pdf");
        }
    }
}
using IronPdf;
using Microsoft.AspNetCore.Mvc;

namespace IronPdfTest.Controllers
{
    public class PdfController : Controller
    {
        // Action method to generate a PDF from HTML content
        public IActionResult GeneratePdf()
        {
            // String of HTML code to be converted to PDF
            string htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF generated from HTML.</p>";

            // Creating a renderer to convert the HTML string to PDF
            ChromePdfRenderer renderer = new ChromePdfRenderer();

            // Convert HTML string to PDF
            PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent);

            // Return the generated PDF file
            return File(pdf.BinaryData, "application/pdf", "generatedDocument.pdf");
        }
    }
}
Imports IronPdf
Imports Microsoft.AspNetCore.Mvc

Namespace IronPdfTest.Controllers
	Public Class PdfController
		Inherits Controller

		' Action method to generate a PDF from HTML content
		Public Function GeneratePdf() As IActionResult
			' String of HTML code to be converted to PDF
			Dim htmlContent As String = "<h1>Hello, IronPDF!</h1><p>This is a PDF generated from HTML.</p>"

			' Creating a renderer to convert the HTML string to PDF
			Dim renderer As New ChromePdfRenderer()

			' Convert HTML string to PDF
			Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(htmlContent)

			' Return the generated PDF file
			Return File(pdf.BinaryData, "application/pdf", "generatedDocument.pdf")
		End Function
	End Class
End Namespace
$vbLabelText   $csharpLabel

如何在 ASP.NET 中使用 C# 將 HTML 轉換為 PDF:圖 7

ASP.NET MVC使用控制器來處理使用者請求。 當使用者存取特定 URL 時,ASP.NET 將呼叫與該路由關聯的控制器中的方法。

  • PdfController是一個繼承自 Controller 的類,這意味著它可以處理 Web 請求並發送回應。
  • 此控制器中的GeneratePdf方法將處理將 HTML 轉換為 PDF 的請求並傳回結果。

當使用者存取與 GeneratePdf 操作關聯的 URL 時,該方法將執行。

  • IActionResult :這是傳回類型,表示 Web 應用程式將向使用者發送的回應。 它可以是視圖(HTML頁面)、文件下載等等。在本例中,它是一個PDF檔案。

    • GeneratePdf() 方法

    • 在該方法內部,我們定義了一個字串htmlContent ,其中包含要轉換為 PDF 的 HTML。 For example, "<h1>Hello, IronPDF!</h1><p>This is a PDF generated from HTML.</p>".

    • 我們建立了一個新的ChromePdfRenderer實例,用於處理 HTML 到 PDF 的轉換。

    • 方法RenderHtmlAsPdf()接受 HTML 字串並傳回 PDF 物件。

配置路由

在 ASP.NET MVC 應用程式中,您可以定義路由,將 URL 對應到控制器方法(操作)。 例如,如果您在瀏覽器中導航到/Pdf/GeneratePdf,ASP.NET將尋找 PdfController 並呼叫其 GeneratePdf 方法。 請確保您的路由配置允許存取 GeneratePdf 操作。 如果您使用的是 ASP.NET Core MVC,通常會自動設定。 如果您正在使用 Web API,請確保您的路由設定正確。

自訂 PDF 輸出

現在我們已經掌握了基本知識,接下來讓我們看看如何從 HTML 內容建立 PDF 文件,並為輸出 PDF 設定一些自訂設定。 IronPDF 提供了一套強大的 PDF 自訂工具,例如邊距頁首/頁尾自訂 PDF 尺寸等等。

using IronPdf;
using Microsoft.AspNetCore.Mvc;

namespace IronPdfTest.Controllers
{
    // Controller for our PDF converter
    public class PdfController : Controller
    {
        // Action method to generate a customized PDF from HTML content
        public IActionResult GeneratePdf()
        {
            // String of HTML code to be converted to PDF
            string htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF generated from HTML.</p>";

            // Creating a renderer to convert the URL to PDF
            ChromePdfRenderer renderer = new ChromePdfRenderer();

            // Creating the cover page
            PdfDocument cover = renderer.RenderHtmlAsPdf("<h1>Cover Page</h1>");

            // Adding custom options for our final PDF
            renderer.RenderingOptions.PaperOrientation = IronPdf.Rendering.PdfPaperOrientation.Landscape;
            renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A3;
            renderer.RenderingOptions.TextHeader.CenterText = "IronPDF";
            renderer.RenderingOptions.TextHeader.FontSize = 12;
            renderer.RenderingOptions.MarginTop = 20;
            renderer.RenderingOptions.FirstPageNumber = 2;

            // Creating our main PDF
            PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent);

            // Appending the cover to the main PDF
            pdf.InsertPdf(cover, 0);

            // Return the customized generated PDF file
            return File(pdf.BinaryData, "application/pdf", "generatedDocument.pdf");
        }
    }
}
using IronPdf;
using Microsoft.AspNetCore.Mvc;

namespace IronPdfTest.Controllers
{
    // Controller for our PDF converter
    public class PdfController : Controller
    {
        // Action method to generate a customized PDF from HTML content
        public IActionResult GeneratePdf()
        {
            // String of HTML code to be converted to PDF
            string htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF generated from HTML.</p>";

            // Creating a renderer to convert the URL to PDF
            ChromePdfRenderer renderer = new ChromePdfRenderer();

            // Creating the cover page
            PdfDocument cover = renderer.RenderHtmlAsPdf("<h1>Cover Page</h1>");

            // Adding custom options for our final PDF
            renderer.RenderingOptions.PaperOrientation = IronPdf.Rendering.PdfPaperOrientation.Landscape;
            renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A3;
            renderer.RenderingOptions.TextHeader.CenterText = "IronPDF";
            renderer.RenderingOptions.TextHeader.FontSize = 12;
            renderer.RenderingOptions.MarginTop = 20;
            renderer.RenderingOptions.FirstPageNumber = 2;

            // Creating our main PDF
            PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent);

            // Appending the cover to the main PDF
            pdf.InsertPdf(cover, 0);

            // Return the customized generated PDF file
            return File(pdf.BinaryData, "application/pdf", "generatedDocument.pdf");
        }
    }
}
Imports IronPdf
Imports Microsoft.AspNetCore.Mvc

Namespace IronPdfTest.Controllers
	' Controller for our PDF converter
	Public Class PdfController
		Inherits Controller

		' Action method to generate a customized PDF from HTML content
		Public Function GeneratePdf() As IActionResult
			' String of HTML code to be converted to PDF
			Dim htmlContent As String = "<h1>Hello, IronPDF!</h1><p>This is a PDF generated from HTML.</p>"

			' Creating a renderer to convert the URL to PDF
			Dim renderer As New ChromePdfRenderer()

			' Creating the cover page
			Dim cover As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Cover Page</h1>")

			' Adding custom options for our final PDF
			renderer.RenderingOptions.PaperOrientation = IronPdf.Rendering.PdfPaperOrientation.Landscape
			renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A3
			renderer.RenderingOptions.TextHeader.CenterText = "IronPDF"
			renderer.RenderingOptions.TextHeader.FontSize = 12
			renderer.RenderingOptions.MarginTop = 20
			renderer.RenderingOptions.FirstPageNumber = 2

			' Creating our main PDF
			Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(htmlContent)

			' Appending the cover to the main PDF
			pdf.InsertPdf(cover, 0)

			' Return the customized generated PDF file
			Return File(pdf.BinaryData, "application/pdf", "generatedDocument.pdf")
		End Function
	End Class
End Namespace
$vbLabelText   $csharpLabel

如何在 ASP.NET 中使用 C# 將 HTML 轉換為 PDF:圖 8

結論

今天我們仔細研究如何在 ASP.NET 中使用 HTML 到 PDF 的轉換,並探索了在 ASP.NET 專案中從 HTML 建立 PDF 文件的過程。 按照上述步驟,您可以輕鬆地將 PDF 生成功能整合到您的 Web 應用程式中,從而能夠從 HTML 內容創建高品質、可列印的文件。

IronPDF 擁有豐富的功能,可用於產生高品質的 PDF 文件。 有關更高級的功能和詳細的自訂設置,請參閱 IronPDF文件。 IronPDF安裝快捷,您可以立即在專案中設定好 IronPDF。

常見問題解答

如何在 ASP.NET 中使用 C# 將 HTML 內容轉換為 PDF?

若要在 ASP.NET 中使用 C# 將 HTML 內容轉換為 PDF,您可以使用 IronPDF for .NET 函式庫。首先,在 Visual Studio 中設定您的 ASP.NET 專案,透過 NuGet 安裝 IronPDF,並配置您的授權金鑰。然後,建立一個控制器,使用 IronPDF 的 ChromePdfRenderer 類將 HTML 內容渲染成 PDF 文件。

在 ASP.NET 專案中設定 IronPDF 涉及哪些步驟?

在 ASP.NET 專案中設定 IronPDF 需要在 Visual Studio 中建立新的 ASP.NET 專案,透過 NuGet 套件管理員安裝 IronPDF,並輸入授權金鑰。設定完成後,您就可以利用 IronPDF 的功能將 HTML 轉換成 PDF。

如何在 ASP.NET 控制器中處理 PDF 轉換邏輯?

在 ASP.NET 控制器中,您可以使用 IronPDF 的 ChromePdfRenderer 來處理 PDF 轉換邏輯。建立一個動作方法,接收 HTML 內容並套用 RenderHtmlAsPdf 方法來產生 PDF,然後將 PDF 傳回給用戶端。

在 IronPDF 中定制 PDF 輸出有哪些選項?

IronPDF 允許您自訂 PDF 輸出的選項,例如設定紙張大小、方向、邊界,以及新增頁首和頁尾。這些都可以在設定 PDF 文件時,使用 RenderingOptions 屬性來調整。

如何使用 IronPDF 確保從 HTML 輸出高品質的 PDF?

IronPDF 支援現代網路標準,可確保從 HTML 輸出高品質的 PDF。透過使用 ChromePdfRenderer,您可以保持格式和樣式的一致性,從而得到專業外觀的 PDF 文件。

IronPDF 可以集成到現有的 ASP.NET Web 應用程式中嗎?

是的,IronPDF 可以很容易地集成到現有的 ASP.NET Web 應用程式中。透過 NuGet 安裝函式庫並設定授權後,您就可以使用它將 HTML 內容轉換為 PDF,強化應用程式的文件產生功能。

在 ASP.NET 專案中使用 IronPDF 有哪些疑難排解技巧?

如果您在 ASP.NET 專案中遇到 IronPDF 的問題,請確保透過 NuGet 正確安裝該函式庫,檢查許可金鑰是否有效,並檢查控制器的轉換邏輯是否有任何 HTML 渲染或 PDF 產生的錯誤。

在哪裡可以找到使用 IronPDF 進行 HTML 至 PDF 轉換的其他資源?

有關使用 IronPDF 的其他資源和說明文件可以在 IronPDF 官方網站找到,您可以在網站上取得指南、API 說明文件和範例,以協助您在 ASP.NET 中有效地使用該函式庫進行 HTML 至 PDF 的轉換。

IronPDF 是否與新發布的 .NET 10 相容,以及 .NET 10 為 HTML-to-PDF 轉換帶來哪些好處?

是 - IronPDF 與 .NET 10 完全相容。它 「開箱即用 」地支援 .NET 10,包括跨平台部署、新的運行時性能增強功能(如減少堆分配、改善記憶體使用)以及與現代 C# 功能更好的相容性。這些改進意味著在 .NET 10 下,使用 IronPDF 進行 HTML-to-PDF 轉換變得更快、更高效、更易維護。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。