使用 IRONPDF

如何在C#中將CSHTML轉換為PDF

已更新 2024年3月10日
分享:

將 CSHTML 轉換為 PDF 是許多應用程式中的常見需求。 使用 IronPDF 庫中的 C# 可以輕鬆完成此任務。

IronPDF 是一個受歡迎的 .NET 程式庫,讓開發人員能夠以程式化方式創建、閱讀、編輯和轉換 PDF 文件。 在本文中,我們將以範例向您演示如何使用 IronPDF 在 C# 中將 CSHTML 轉換為 PDF。

在開始之前,讓我們討論一些對於本教程必要的重要概念。

重要概念

PDF轉換器

PDF 轉檔器是一種工具,可以將任何可列印的文件或網頁轉換成 PDF 文件。 它可以用來從 HTML、Word、Excel 或任何其他可列印的文件生成 PDF 檔案。 PDF 轉換器有多種形式,包括線上工具、桌面軟體和程式庫。

Razor 視圖

Razor 視圖是一種用於 ASP.NET Core 的視圖引擎,它可以動態生成 HTML 頁面。 它是一種將 HTML 標記與 C# 代碼結合的標記語法。

如何在C#中將CSHTML轉換為PDF, 圖1:Razor View

Razor 視圖

Razor 視圖透過將呈現邏輯與業務邏輯分開,使開發者輕鬆創建動態網頁。

控制器類別

控制器類別是負責處理 ASP.NET Core 應用程式中傳入 HTTP 請求的 C# 類別。 它包含與特定 HTTP 動詞對應的方法(例如,GET,POST,PUT,DELETE),它返回一個 HTTP 回應。

NuGet 套件管理器

NuGet 包管理器是一個用於 Visual Studio 中管理 .NET 專案中的套件的工具。 這使開發人員能夠輕鬆地在其專案中安裝、更新和卸載套件。 NuGet 套件是包含可重用代碼的庫,通過 NuGet 套件管理器分發。

依賴注入

依賴注入是一種設計模式,允許開發人員通過將依賴項注入到其類別中來解耦應用程式組件。 這使得通過減少依賴性和使代碼更具模塊化來更輕鬆地測試和維護應用程式。

現在我們已經介紹了重要的概念,讓我們深入探討使用 IronPDF 將 CSHTML 轉換為 PDF 的過程。

什麼是CSHTML?

CSHTML 代表 C# Razor Syntax HTML。 它是一種包含 HTML 標記和 C# 代碼的文件類型。 這些文件用於 ASP.NET Core MVC 應用程式中,以定義網頁的使用者介面。 Razor 檢視引擎用於解釋 CSHTML 檔案並生成可由網頁瀏覽器呈現的 HTML 輸出。

如何使用C#將CSHTML轉換為PDF,圖2:CSHTML5

CSHTML5

什麼是 IronPDF?

IronPDF 是一個強大的 .NET 函式庫,允許開發人員在 C# 中建立、讀取、編輯和轉換 PDF 文件。 這是一款在 .NET 應用程式中以程式化方式生成 PDF 文件的流行工具。 IronPDF 支援多種功能,包括 PDF 生成、PDF 操作、PDF 轉換和 PDF 渲染。

如何在 C# 中將 CSHTML 轉換為 PDF,圖 3:IronPDF for .NET

IronPDF for .NET

如何使用IronPDF在C#中將CSHTML HTML字串轉換為PDF文件

使用 IronPDF 將 CSHTML 轉換為 PDF 是一個簡單的過程。 該庫提供了一個方便的 API 用於將 HTML 檔案轉換為 PDF 文件。 以下是使用 IronPDF 在 C# 中將 CSHTML 轉換為 PDF 的步驟:

第 1 步 安裝 IronPDF

第一步是安裝IronPDF 從 NuGet 套件管理器在您的 C# 專案中。 您可以通過下載 IronPDF.dll 檔案並將其添加到您的專案參考中來安裝 IronPDF。 要使用 NuGet 套件管理器安裝 IronPDF,請打開套件管理器控制台並運行以下命令

Install-Package IronPdf

第 2 步:建立 CSHTML 檔案

接下來,建立一個 CSHTML 檔案,其中包含您要轉換為 PDF 的內容。 在此範例中,我們將創建一個簡單的CSHTML 教程顯示文本 "Hello, World" 的檔案!"."

@{
    Layout = null;
}
    Hello
    Hello, World!
@{
    Layout = null;
}
    Hello
    Hello, World!
@
If True Then
	Layout = Nothing
End If
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'	Hello Hello, World!
VB   C#

將此檔案儲存為「Hello.cshtml」在您的專案目錄中。

如何在C#中將CSHTML轉換為PDF,第4圖:C#中的PDF文件

PDF 檔案在 C# 中

步驟 3 將 CSHTML 轉換為 PDF 文件

若要轉換該CSHTML轉PDF將檔案轉換為 PDF,我們將使用 C# 中的 IronPDF 庫。 以下是將「Hello.cshtml」轉換為 PDF 的程式碼:

using System.IO;
using IronPdf;
using Microsoft.AspNetCore.Mvc;

namespace CSHTMLtoPDF.Controllers
{
    public class HomeController : Controller
    {
        private readonly IRazorViewRenderer _viewRenderService;
        public HomeController(IRazorViewRenderer viewRenderService)
        {
            _viewRenderService = viewRenderService;
        }

        public IActionResult Index()
        {
            var items = new [] { "Item 1", "Item 2", "Item 3" };
            return View(items);
        }

        public IActionResult DownloadPDF()
        {
            var items = new [] { "Item 1", "Item 2", "Item 3" };

            ChromePdfRenderer renderer = new ChromePdfRenderer();
            PdfDocument pdf = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Home/Index.cshtml", items);

            var contentDisposition = new Syste.NET.Mime.ContentDisposition
            {
                FileName = "Items.pdf",
                Inline = false,
            };
            Response.Headers.Add("Content-Disposition", contentDisposition.ToString());

            return File(pdf.BinaryData, "application/pdf");
        }
    }
}
using System.IO;
using IronPdf;
using Microsoft.AspNetCore.Mvc;

namespace CSHTMLtoPDF.Controllers
{
    public class HomeController : Controller
    {
        private readonly IRazorViewRenderer _viewRenderService;
        public HomeController(IRazorViewRenderer viewRenderService)
        {
            _viewRenderService = viewRenderService;
        }

        public IActionResult Index()
        {
            var items = new [] { "Item 1", "Item 2", "Item 3" };
            return View(items);
        }

        public IActionResult DownloadPDF()
        {
            var items = new [] { "Item 1", "Item 2", "Item 3" };

            ChromePdfRenderer renderer = new ChromePdfRenderer();
            PdfDocument pdf = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Home/Index.cshtml", items);

            var contentDisposition = new Syste.NET.Mime.ContentDisposition
            {
                FileName = "Items.pdf",
                Inline = false,
            };
            Response.Headers.Add("Content-Disposition", contentDisposition.ToString());

            return File(pdf.BinaryData, "application/pdf");
        }
    }
}
Imports System.IO
Imports IronPdf
Imports Microsoft.AspNetCore.Mvc

Namespace CSHTMLtoPDF.Controllers
	Public Class HomeController
		Inherits Controller

		Private ReadOnly _viewRenderService As IRazorViewRenderer
		Public Sub New(ByVal viewRenderService As IRazorViewRenderer)
			_viewRenderService = viewRenderService
		End Sub

		Public Function Index() As IActionResult
			Dim items = { "Item 1", "Item 2", "Item 3" }
			Return View(items)
		End Function

		Public Function DownloadPDF() As IActionResult
			Dim items = { "Item 1", "Item 2", "Item 3" }

			Dim renderer As New ChromePdfRenderer()
			Dim pdf As PdfDocument = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Home/Index.cshtml", items)

			Dim contentDisposition = New Syste.NET.Mime.ContentDisposition With {
				.FileName = "Items.pdf",
				.Inline = False
			}
			Response.Headers.Add("Content-Disposition", contentDisposition.ToString())

			Return File(pdf.BinaryData, "application/pdf")
		End Function
	End Class
End Namespace
VB   C#

讓我們逐步講解這段程式碼:

  • 首先,我們匯入必要的命名空間,包括 IronPDF 命名空間,其中包含 HTML 到 PDF 的轉換功能。
  • 接著,我們定義 Index 方法,它只需將項目列表返回到 Razor 視圖。
  • 我們定義了 DownloadPDF 方法,該方法負責生成 PDF 文件。
  • 我們首先創建一個渲染器ChromePdfRenderer.
  • 然後使用 RenderRazorViewToPdf 擴展方法將帶有數據的 Razor 視圖生成為 PDF 文件。
  • 接著,我們設置 Content-Disposition 標頭,以強制 PDF 被下載而不是在瀏覽器中顯示。
  • 最後,我們使用 File 方法將 PDF 文件作為檔案返回。

    這是使用IronPDF在C#中將CSHTML轉換為PDF的基本代碼。 然而,您可以使用許多選項和設置來自訂 PDF 輸出。 讓我們來看看這些選項中的一些。

自訂 PDF 輸出返回檔案

IronPDF 提供許多選項來自訂 PDF 文件的輸出。 您可以設定選項,例如頁面大小, 邊距, 方向,頁首和頁尾,以及更多。 以下是自訂 PDF 輸出範例:

using IronPdf;

namespace ConsoleApp
{
    class Program
    {
        static void Main(string [] args)
        {
            var renderer = new ChromePdfRenderer();
            renderer.RenderingOptions.MarginTop = 10;
            renderer.RenderingOptions.MarginBottom = 10;
            renderer.RenderingOptions.MarginLeft = 20;
            renderer.RenderingOptions.MarginRight = 20;
            renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
            {
                MaxHeight = 20, //millimeters
                HtmlFragment = "<img src='logo.png'>",
                BaseUrl = new Uri(@"C:\assets\images\").AbsoluteUri
            };
            renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
            {
                MaxHeight = 15, //millimeters
                HtmlFragment = "<center><i>{page} of {total-pages}<i></center>",
                DrawDividerLine = true
            };
            var pdf = renderer.RenderHtmlAsPdf("\r\n\r\n\r\n    \r\n    Hello\r\n\r\n\r\n    Hello, World!\r\n\r\n");
            pdf.SaveAs("Hello.PDF");
        }
    }
}
using IronPdf;

namespace ConsoleApp
{
    class Program
    {
        static void Main(string [] args)
        {
            var renderer = new ChromePdfRenderer();
            renderer.RenderingOptions.MarginTop = 10;
            renderer.RenderingOptions.MarginBottom = 10;
            renderer.RenderingOptions.MarginLeft = 20;
            renderer.RenderingOptions.MarginRight = 20;
            renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
            {
                MaxHeight = 20, //millimeters
                HtmlFragment = "<img src='logo.png'>",
                BaseUrl = new Uri(@"C:\assets\images\").AbsoluteUri
            };
            renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
            {
                MaxHeight = 15, //millimeters
                HtmlFragment = "<center><i>{page} of {total-pages}<i></center>",
                DrawDividerLine = true
            };
            var pdf = renderer.RenderHtmlAsPdf("\r\n\r\n\r\n    \r\n    Hello\r\n\r\n\r\n    Hello, World!\r\n\r\n");
            pdf.SaveAs("Hello.PDF");
        }
    }
}
Imports Microsoft.VisualBasic
Imports IronPdf

Namespace ConsoleApp
	Friend Class Program
		Shared Sub Main(ByVal args() As String)
			Dim renderer = New ChromePdfRenderer()
			renderer.RenderingOptions.MarginTop = 10
			renderer.RenderingOptions.MarginBottom = 10
			renderer.RenderingOptions.MarginLeft = 20
			renderer.RenderingOptions.MarginRight = 20
			renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter() With {
				.MaxHeight = 20,
				.HtmlFragment = "<img src='logo.png'>",
				.BaseUrl = (New Uri("C:\assets\images\")).AbsoluteUri
			}
			renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter() With {
				.MaxHeight = 15,
				.HtmlFragment = "<center><i>{page} of {total-pages}<i></center>",
				.DrawDividerLine = True
			}
			Dim pdf = renderer.RenderHtmlAsPdf(vbCrLf & vbCrLf & vbCrLf & "    " & vbCrLf & "    Hello" & vbCrLf & vbCrLf & vbCrLf & "    Hello, World!" & vbCrLf & vbCrLf)
			pdf.SaveAs("Hello.PDF")
		End Sub
	End Class
End Namespace
VB   C#

在此範例中,我們首先創建一個 ChromePdfRenderer 類的實例。 然後,我們使用 ChromePdfRenderer 類的 RenderingOptions 屬性來設置各種選項。 以下是我們設定的一些選項:

  • PaperSize 將 PDF 文件的紙張大小設置為 A4。
  • MarginTopMarginBottomMarginLeftMarginRight:將 PDF 文件的上、下邊距設置為 10 毫米,左、右邊距設置為 20 毫米。
  • HtmlHeader:設置PDF文件的標題,以顯示文件的標題和一條分隔線。
  • HtmlFooter:設定 PDF 文件的頁腳以顯示頁碼、總頁數和當前日期。

    設置選項後,我們調用RenderHtmlAsPdf與之前相同的 HTML 內容的方法。 最後,我們將 PDF 文件儲存為名為 "Hello.PDF" 的檔案。

測試應用程式

所有必要的程式碼都已準備就緒,現在我們可以測試應用程式。 請依照以下步驟操作:

  • 按下 F5 或在 Visual Studio 中點擊綠色的「播放」按鈕來運行應用程式。
  • 在您的網頁瀏覽器中,導航至 http://localhost:/Home/Index,其中是 Visual Studio 分配的埠號。
  • 驗證項目列表顯示是否正確。
  • 點擊「下載 PDF」鏈接以生成並下載 PDF 文件。

    如果一切正常,您應該會看到包含您先前定義的項目清單的 PDF 文件。

使用 IronPDF 將 PDF 轉換為 CSHTML 文件

如何在C#中將CSHTML轉換為PDF,圖7:PDF轉CSHTML

PDF 轉 CSHTML

要演示如何使用 IronPDF 将 PDF 转换为 CSHTML 文件,我们将在 Visual Studio 中创建一个新的控制台应用程序,并使用 IronPDF 将示例 PDF 文档转换为 CSHTML 文件。请按照以下步骤操作:

步驟 1 創建一個新的控制台應用程式

開啟 Visual Studio,從菜單中選擇「File > New > Project」來建立新的主控台應用程式,然後選擇「Console App」。(.NET框架)" 或 "控制台應用程序(.NET Core)從專案範本列表中。

步驟 2 安裝 IronPDF NuGet 套件

接下來,我們需要安裝IronPDF NuGet 套件在我們的主控台應用程式中。 為了這樣做,請在「方案總管」中右鍵點擊專案,然後從內容選單中選擇「管理 NuGet 套件」。

在 NuGet 套件管理器中,搜尋「IronPDF」,並從搜尋結果中選擇「IronPDF」套件。 按一下「安裝」按鈕來安裝套件及其相依性。

第 3 步 將 PDF 和 CSHTML 檔案新增到專案中

在這個範例中,我們將使用一個樣本 PDF 文件,我們想將其轉換為 CSHTML 文件。在這一步驟中,您可以使用任何您喜歡的 PDF 文件。

在方案總管中右鍵點擊專案,然後從上下文選單中選擇“新增 > 現有項目”,將 PDF 文件添加到專案中。

我們還需要建立一個空的 CSHTML 文件,用於存儲轉換後的 HTML 字串。 為此,請在方案總管中右鍵點擊該專案,然後從快捷選單中選擇「新增 > 新增項目」。 從範本列表中選擇「HTML頁面」,然後為檔案命名。(例如:"converted.cshtml" )然後點擊「新增」。

步驟4 將 PDF 轉換為 CSHTML 檔案

現在我們已經準備好必要的文件,可以使用IronPDF撰寫程式碼將PDF轉換為CSHTML文件。 將以下程式碼添加到您的控制台應用程式的 Main 方法中:

using IronPdf;

namespace PdfToHtml
{
    class Program
    {
        static void Main(string [] args)
        {
            // Load the PDF file
            PdfDocument pdf = PdfDocument.FromFile("sample.PDF");

            // Convert the PDF to an HTML string
            string html = pdf.ToHtml();

            // Save the HTML string to the CSHTML file
        }
    }
}
using IronPdf;

namespace PdfToHtml
{
    class Program
    {
        static void Main(string [] args)
        {
            // Load the PDF file
            PdfDocument pdf = PdfDocument.FromFile("sample.PDF");

            // Convert the PDF to an HTML string
            string html = pdf.ToHtml();

            // Save the HTML string to the CSHTML file
        }
    }
}
Imports IronPdf

Namespace PdfToHtml
	Friend Class Program
		Shared Sub Main(ByVal args() As String)
			' Load the PDF file
			Dim pdf As PdfDocument = PdfDocument.FromFile("sample.PDF")

			' Convert the PDF to an HTML string
			Dim html As String = pdf.ToHtml()

			' Save the HTML string to the CSHTML file
		End Sub
	End Class
End Namespace
VB   C#

為什麼要使用IronPDF?

IronPDF 受到 .NET 開發人員青睞有幾個關鍵原因:

強大PDF 生成能力:IronPDF 提供廣泛的功能和選項,用於以程式方式創建和操作 PDF 文件,包括在 PDF 頁面上添加文字、圖片和其他內容的能力,以及合併和拆分現有 PDF 文件的能力。

多功能 PDF 轉換 能力:IronPDF不僅允許開發人員生成PDF文件,還提供將PDF轉換為HTML字串或CSHTML文件的功能。 這在需要在網頁應用程式中顯示 PDF 內容或從 PDF 文件提取數據並在基於網頁的工作流程中使用的情況下會很有用。

易於使用的 API:IronPDF 的 API 設計直觀且易於使用,提供多種輔助方法和屬性,使開發人員能夠程式化生成和操作 PDF 文件變得簡單。

強大的社群支持:IronPDF擁有一個龐大且活躍的.NET開發者社群,他們為其開發貢獻力量,並為其他正在使用該庫的開發者提供支持。

良好的文檔:IronPDF 的文檔非常全面且組織良好,提供詳細的 API 參考文檔、教程和範例,使開發人員能夠輕鬆開始並學習如何使用此庫。

IronPDF 結合了強大的 PDF 生成和轉換能力、易於使用的 API、強大的社群支援和完善的文件,使其成為需要在應用程式中處理 PDF 文件的 .NET 開發人員中的熱門選擇。

結論

將 CSHTML 轉換為 PDF 是許多應用程式中的常見需求。 使用 IronPDF,這項任務可以在 C# 中輕鬆完成。 在本文中,我們向您介紹了使用IronPDF將CSHTML轉換為PDF的步驟,並附上了範例。

我們還向您展示了如何透過設定各種選項來自訂 PDF 輸出,例如紙張大小、邊距、頁首和頁尾等。 使用 IronPDF,您可以快速輕鬆地從您的 CSHTML 文件創建高品質的 PDF 文檔。

無論您是需要從頭開始創建 PDF 文件,將 PDF 轉換為 HTML 字串或 CSHTML 文件,或從 PDF 文件中提取數據,IronPDF 提供了一個靈活且直觀的 API,使完成工作變得簡單。

IronPDF 擁有強大的社群支援和廣泛的文件,是在需要在應用程序中處理 PDF 的 .NET 開發者中頗受歡迎的選擇。 通過購買 Iron Software 套件,開發人員可以以折扣價格獲得一套全面的 .NET 函式庫,用於處理常見的文件格式,這對於任何 .NET 開發團隊來說都是一個絕佳的價值選擇。

如果您需要在 .NET 應用程式中處理 PDF 文件,IronPDF 絕對值得考慮。 憑藉其強大的功能、易用性和多樣的授權選項,它是一個多功能且可靠的工具,能夠幫助您快速高效地完成工作。

< 上一頁
如何在 VB.NET 中合併 PDF 文件
下一個 >
如何在C#中保存PDF檔案(初學者教程)

準備開始了嗎? 版本: 2024.12 剛剛發布

免費 NuGet 下載 總下載次數: 11,622,374 查看許可證 >