如何在 ASP.NET Core C# 中將視圖轉換為 PDF

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

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

IronPDF 讓您只需幾行程式碼,即可透過 ChromePdfRenderer.RenderView() 方法,將 ASP.NET MVC 檢視轉換為 PDF 文件。 IronPdf.Extensions.Mvc.Framework 套件可與 ASP.NET MVC 專案無縫整合,將 CSHTML 檢視頁渲染為 PDF 檔案。

View 是 .NET Framework 中的一種元件,用於在網頁應用程式中產生 HTML 標記。 它是 Model-View-Controller (MVC) 模式的一部分,常應用於 ASP.NET MVC 和 ASP.NET Core MVC 應用程式中。 檢視(Views)負責透過動態渲染 HTML 內容,將資料呈現給使用者。 IronPDF 的 Chrome PDF 渲染引擎具備強大效能,確保您的頁面以像素級精準度呈現,完整保留所有樣式、版面配置及互動元素。

ASP.NET Web Application (.NET Framework) MVC 是微軟提供的一套 Web 應用程式框架。 它遵循一種稱為模型-視圖-控制器(MVC)的結構化架構模式,用以組織並簡化網頁應用的開發流程。

  • 模型:管理資料、業務邏輯及資料完整性。
  • 檢視 (View):呈現使用者介面並渲染資訊。
  • 控制器 (Controller):處理使用者輸入、處理請求,並協調模型 (Model) 與視圖 (View) 之間的互動。

IronPDF 簡化了在 ASP.NET MVC 專案中從視圖建立 PDF 檔案的流程。 這使得在 ASP.NET MVC 中生成 PDF 既簡單又直接。 無論您是要從網頁視圖中產生發票、報告或任何文件,IronPDF 都能提供專業 PDF 輸出所需的工具。 如需完整的設定指南,請造訪"安裝概覽"頁面。

快速入門:輕鬆將 ASP.NET MVC 檢視轉換為 PDF

瞭解如何使用 IronPDF 快速將您的 ASP.NET MVC 檢視轉換為 PDF 文件。 只需幾行程式碼,您就能將 CSHTML 檢視渲染為高品質的 PDF 檔案,從而提升應用程式的功能。 IronPDF 簡化了此流程,讓各級開發者都能輕鬆上手。 首先將 IronPDF 整合至您的 ASP.NET Core 專案中,即可輕鬆地從視圖(Views)生成 PDF 檔案。

  1. using NuGet 套件管理員安裝 https://www.nuget.org/packages/IronPdf

    PM > Install-Package IronPdf
  2. 請複製並執行此程式碼片段。

    // Install-Package IronPdf.Extensions.Razor
    var pdf = new IronPdf.ChromePdfRenderer.RenderRazorToPdf(this.Co/ntrollerContext);
  3. 部署至您的生產環境進行測試

    立即透過免費試用,在您的專案中開始使用 IronPDF

    arrow pointer

我需要哪種擴充套件?

為什麼 IronPDF 需要擴充套件?

IronPdf.Extensions.Mvc.Framework 套件IronPDF 主套件的擴充套件。 在 ASP.NET MVC 中,若要將視圖渲染為 PDF 文件,必須同時安裝 IronPdf.Extensions.Mvc.FrameworkIronPdf 套件。 此種分離設計,既能針對 MVC 框架優化特定功能,同時維持核心的 PDF 渲染能力。

如何安裝擴充套件?

Install-Package IronPdf.Extensions.Mvc.Framework
用於 PDF 的 C# NuGet 函式庫

透過 NuGet 安裝

Install-Package IronPdf.Extensions.Mvc.Framework

如何將檢視頁渲染為 PDF?

我需要哪種專案類型?

若要將 Views 轉換為 PDF 檔案,您需要一個 ASP.NET Web Application (.NET Framework) MVC 專案。 IronPDF 支援多種 MVC 版本,並提供豐富的渲染選項,讓您能根據需求自訂 PDF 輸出格式。

如何新增模型類別?

我應該在哪裡建立模型?

  • 導航至"Models"資料夾
  • 建立一個名為 Person 的新 C# 類別檔案。 此類別用作表示個別資料的模型。 請使用以下程式碼:
:path=/static-assets/pdf/content-code-examples/how-to/cshtml-to-pdf-mvc-framework-model.cs
namespace ViewToPdfMVCSample.Models
{
    public class Person
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string Title { get; set; }
        public string Description { get; set; }
    }
}
Namespace ViewToPdfMVCSample.Models
	Public Class Person
		Public Property Id() As Integer
		Public Property Name() As String
		Public Property Title() As String
		Public Property Description() As String
	End Class
End Namespace
$vbLabelText   $csharpLabel

如何編輯控制器?

我應該在控制器中加入什麼程式碼?

導航至"Controllers"資料夾,並開啟 HomeController 檔案。使用以下程式碼新增 Persons 動作:

在提供的程式碼中,首先建立 ChromePdfRenderer 類別。 若要使用 RenderView 方法,請提供 HttpContext,指定"Persons.cshtml"檔案的路徑,並提供包含必要資料的 List<Person>。 在渲染視圖時,您可以利用 RenderingOptions 自訂邊距、新增自訂文字及 HTML 頁首與頁尾,並在生成的 PDF 文件中加入頁碼

請注意可使用以下程式碼將 PDF 文件下載至電腦:File(pdf.BinaryData, "application/pdf", "viewToPdfMVC.pdf")

using IronPdf;
using System.Co/llections.Generic;
using System.Web.Mvc;
using ViewToPdfMVCSample.Models;

namespace ViewToPdfMVCSample.Co/ntrollers
{
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            return View();
        }

        // GET: Person
        public ActionResult Persons()
        {
            // Create a list of Person objects
            var persons = new List<Person>
            {
                new Person { Name = "Alice", Title = "Mrs.", Description = "Software Engineer" },
                new Person { Name = "Bob", Title = "Mr.", Description = "Software Engineer" },
                new Person { Name = "Charlie", Title = "Mr.", Description = "Software Engineer" }
            };

            if (HttpContext.Request.HttpMethod == "POST")
            {
                // Define the path to the View file
                var viewPath = "~/Views/Home/Persons.cshtml";

                // Instantiate the ChromePdfRenderer
                ChromePdfRenderer renderer = new ChromePdfRenderer();

                // Render the view to a PDF document
                PdfDocument pdf = renderer.RenderView(this.HttpContext, viewPath, persons);

                // Set headers to view the PDF in-browser
                Response.Headers.Add("Content-Disposition", "inline");

                // Return the generated PDF file
                return File(pdf.BinaryData, "application/pdf");
            }
            return View(persons);
        }

        public ActionResult About()
        {
            ViewBag.Message = "Your application description page.";
            return View();
        }

        public ActionResult Contact()
        {
            ViewBag.Message = "Your contact page.";
            return View();
        }
    }
}
using IronPdf;
using System.Co/llections.Generic;
using System.Web.Mvc;
using ViewToPdfMVCSample.Models;

namespace ViewToPdfMVCSample.Co/ntrollers
{
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            return View();
        }

        // GET: Person
        public ActionResult Persons()
        {
            // Create a list of Person objects
            var persons = new List<Person>
            {
                new Person { Name = "Alice", Title = "Mrs.", Description = "Software Engineer" },
                new Person { Name = "Bob", Title = "Mr.", Description = "Software Engineer" },
                new Person { Name = "Charlie", Title = "Mr.", Description = "Software Engineer" }
            };

            if (HttpContext.Request.HttpMethod == "POST")
            {
                // Define the path to the View file
                var viewPath = "~/Views/Home/Persons.cshtml";

                // Instantiate the ChromePdfRenderer
                ChromePdfRenderer renderer = new ChromePdfRenderer();

                // Render the view to a PDF document
                PdfDocument pdf = renderer.RenderView(this.HttpContext, viewPath, persons);

                // Set headers to view the PDF in-browser
                Response.Headers.Add("Content-Disposition", "inline");

                // Return the generated PDF file
                return File(pdf.BinaryData, "application/pdf");
            }
            return View(persons);
        }

        public ActionResult About()
        {
            ViewBag.Message = "Your application description page.";
            return View();
        }

        public ActionResult Contact()
        {
            ViewBag.Message = "Your contact page.";
            return View();
        }
    }
}
Imports IronPdf
Imports System.Collections.Generic
Imports System.Web.Mvc
Imports ViewToPdfMVCSample.Models

Namespace ViewToPdfMVCSample.Controllers
    Public Class HomeController
        Inherits Controller

        Public Function Index() As ActionResult
            Return View()
        End Function

        ' GET: Person
        Public Function Persons() As ActionResult
            ' Create a list of Person objects
            Dim persons As New List(Of Person) From {
                New Person With {.Name = "Alice", .Title = "Mrs.", .Description = "Software Engineer"},
                New Person With {.Name = "Bob", .Title = "Mr.", .Description = "Software Engineer"},
                New Person With {.Name = "Charlie", .Title = "Mr.", .Description = "Software Engineer"}
            }

            If HttpContext.Request.HttpMethod = "POST" Then
                ' Define the path to the View file
                Dim viewPath = "~/Views/Home/Persons.cshtml"

                ' Instantiate the ChromePdfRenderer
                Dim renderer As New ChromePdfRenderer()

                ' Render the view to a PDF document
                Dim pdf As PdfDocument = renderer.RenderView(Me.HttpContext, viewPath, persons)

                ' Set headers to view the PDF in-browser
                Response.Headers.Add("Content-Disposition", "inline")

                ' Return the generated PDF file
                Return File(pdf.BinaryData, "application/pdf")
            End If

            Return View(persons)
        End Function

        Public Function About() As ActionResult
            ViewBag.Message = "Your application description page."
            Return View()
        End Function

        Public Function Contact() As ActionResult
            ViewBag.Message = "Your contact page."
            Return View()
        End Function
    End Class
End Namespace
$vbLabelText   $csharpLabel

如何自訂 PDF 渲染選項?

針對更進階的應用情境,您可以透過各種渲染選項自訂 PDF 輸出格式。 以下是一個包含自訂邊距、紙張尺寸及額外設定的範例:

// Advanced rendering with custom options
public ActionResult PersonsAdvanced()
{
    var persons = GetPersonsList();

    if (HttpContext.Request.HttpMethod == "POST")
    {
        var viewPath = "~/Views/Home/Persons.cshtml";

        // Configure the renderer with custom options
        ChromePdfRenderer renderer = new ChromePdfRenderer();

        // Set custom rendering options
        renderer.RenderingOptions.MarginTop = 40;
        renderer.RenderingOptions.MarginBottom = 40;
        renderer.RenderingOptions.MarginLeft = 20;
        renderer.RenderingOptions.MarginRight = 20;

        // Set custom paper size
        renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
        renderer.RenderingOptions.PaperOrientation = IronPdf.Rendering.PdfPaperOrientation.Portrait;

        // Add header and footer
        renderer.RenderingOptions.TextHeader.DrawDividerLine = true;
        renderer.RenderingOptions.TextHeader.CenterText = "{pdf-title}";
        renderer.RenderingOptions.TextHeader.Font = IronPdf.Font.FontTypes.Helvetica;
        renderer.RenderingOptions.TextHeader.FontSize = 12;

        renderer.RenderingOptions.TextFooter.DrawDividerLine = true;
        renderer.RenderingOptions.TextFooter.Font = IronPdf.Font.FontTypes.Arial;
        renderer.RenderingOptions.TextFooter.FontSize = 10;
        renderer.RenderingOptions.TextFooter.RightText = "{page} of {total-pages}";

        // Enable JavaScript execution if needed
        renderer.RenderingOptions.EnableJavaScript = true;
        renderer.RenderingOptions.RenderDelay = 500; // Wait for JS to execute

        // Render the view to PDF
        PdfDocument pdf = renderer.RenderView(this.HttpContext, viewPath, persons);

        // Optional: Apply compression to reduce file size
        pdf.Com/pressImages(60);

        Response.Headers.Add("Content-Disposition", "inline");
        return File(pdf.BinaryData, "application/pdf");
    }

    return View("Persons", persons);
}
// Advanced rendering with custom options
public ActionResult PersonsAdvanced()
{
    var persons = GetPersonsList();

    if (HttpContext.Request.HttpMethod == "POST")
    {
        var viewPath = "~/Views/Home/Persons.cshtml";

        // Configure the renderer with custom options
        ChromePdfRenderer renderer = new ChromePdfRenderer();

        // Set custom rendering options
        renderer.RenderingOptions.MarginTop = 40;
        renderer.RenderingOptions.MarginBottom = 40;
        renderer.RenderingOptions.MarginLeft = 20;
        renderer.RenderingOptions.MarginRight = 20;

        // Set custom paper size
        renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
        renderer.RenderingOptions.PaperOrientation = IronPdf.Rendering.PdfPaperOrientation.Portrait;

        // Add header and footer
        renderer.RenderingOptions.TextHeader.DrawDividerLine = true;
        renderer.RenderingOptions.TextHeader.CenterText = "{pdf-title}";
        renderer.RenderingOptions.TextHeader.Font = IronPdf.Font.FontTypes.Helvetica;
        renderer.RenderingOptions.TextHeader.FontSize = 12;

        renderer.RenderingOptions.TextFooter.DrawDividerLine = true;
        renderer.RenderingOptions.TextFooter.Font = IronPdf.Font.FontTypes.Arial;
        renderer.RenderingOptions.TextFooter.FontSize = 10;
        renderer.RenderingOptions.TextFooter.RightText = "{page} of {total-pages}";

        // Enable JavaScript execution if needed
        renderer.RenderingOptions.EnableJavaScript = true;
        renderer.RenderingOptions.RenderDelay = 500; // Wait for JS to execute

        // Render the view to PDF
        PdfDocument pdf = renderer.RenderView(this.HttpContext, viewPath, persons);

        // Optional: Apply compression to reduce file size
        pdf.Com/pressImages(60);

        Response.Headers.Add("Content-Disposition", "inline");
        return File(pdf.BinaryData, "application/pdf");
    }

    return View("Persons", persons);
}
Imports System.Web.Mvc
Imports IronPdf

' Advanced rendering with custom options
Public Function PersonsAdvanced() As ActionResult
    Dim persons = GetPersonsList()

    If HttpContext.Request.HttpMethod = "POST" Then
        Dim viewPath = "~/Views/Home/Persons.cshtml"

        ' Configure the renderer with custom options
        Dim renderer As New ChromePdfRenderer()

        ' Set custom rendering options
        renderer.RenderingOptions.MarginTop = 40
        renderer.RenderingOptions.MarginBottom = 40
        renderer.RenderingOptions.MarginLeft = 20
        renderer.RenderingOptions.MarginRight = 20

        ' Set custom paper size
        renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4
        renderer.RenderingOptions.PaperOrientation = IronPdf.Rendering.PdfPaperOrientation.Portrait

        ' Add header and footer
        renderer.RenderingOptions.TextHeader.DrawDividerLine = True
        renderer.RenderingOptions.TextHeader.CenterText = "{pdf-title}"
        renderer.RenderingOptions.TextHeader.Font = IronPdf.Font.FontTypes.Helvetica
        renderer.RenderingOptions.TextHeader.FontSize = 12

        renderer.RenderingOptions.TextFooter.DrawDividerLine = True
        renderer.RenderingOptions.TextFooter.Font = IronPdf.Font.FontTypes.Arial
        renderer.RenderingOptions.TextFooter.FontSize = 10
        renderer.RenderingOptions.TextFooter.RightText = "{page} of {total-pages}"

        ' Enable JavaScript execution if needed
        renderer.RenderingOptions.EnableJavaScript = True
        renderer.RenderingOptions.RenderDelay = 500 ' Wait for JS to execute

        ' Render the view to PDF
        Dim pdf As PdfDocument = renderer.RenderView(Me.HttpContext, viewPath, persons)

        ' Optional: Apply compression to reduce file size
        pdf.CompressImages(60)

        Response.Headers.Add("Content-Disposition", "inline")
        Return File(pdf.BinaryData, "application/pdf")
    End If

    Return View("Persons", persons)
End Function
$vbLabelText   $csharpLabel

如需更多關於優化邊距的資訊,請參閱我們的《設定自訂邊距》指南。 若需處理特定紙張尺寸,請參閱我們的"自訂紙張尺寸"文件。

生成的 PDF 檔案可以做什麼?

一旦透過 RenderView 方法取得 PdfDocument 物件,您便可對其進行各種改進與調整。 您可以將 PDF 轉換為 PDF/APDFUA 格式,對生成的 PDF 套用數位簽章,或根據需求合併及分割 PDF 文件。 此函式庫讓您能夠旋轉頁面、插入註解書籤,並在 PDF 檔案上套用獨特的水印

為優化檔案大小,請考慮採用 PDF 壓縮技術。 在處理大量 JavaScript 內容時,我們的 JavaScript 渲染指南提供了關於處理自訂渲染延遲的詳細資訊。 有關各種匯出選項,請參閱我們關於"儲存與匯出 PDF 文件"的完整指南。

如何新增檢視?

我該遵循哪些步驟來建立視圖?

  • 右鍵點擊新新增的"Person"動作,並選擇"新增檢視"。

在 Persons() 動作方法上按右鍵時,Visual Studio 內容選單顯示

  • 為新的 Scaffolded 項目選擇"MVC 5 View"。

Visual Studio

  • 請選擇"List"範本及 Person 模型類別。

Visual Studio 中的

這會建立一個名為"Persons"的 .cshtml 檔案。

如何在檢視中新增PRINT按鈕?

  • 導航至"Views"資料夾 -> "首頁"資料夾 -> "Persons.cshtml"檔案。

若要新增一個可觸發 Persons 動作的按鈕,請使用以下程式碼:

@using (Html.BeginForm("Persons", "Home", FormMethod.Post))
{
    <input type="submit" value="Print Person" />
}
@using (Html.BeginForm("Persons", "Home", FormMethod.Post))
{
    <input type="submit" value="Print Person" />
}
HTML

如何在頂部導覽列中新增區塊?

我應該在哪裡更新導覽列?

  • 在"Views"資料夾中,導航至"Shared"資料夾 -> "_Layout.cshtml"檔案。將"Person"導覽項目置於"首頁"之後。

請確保 ActionLink 方法的參數值與我們的檔案名稱"Persons"完全一致。

<nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-dark bg-dark">
    <div class="container">
        @Html.ActionLink("Application name", "Index", "Home", new { area = "" }, new { @class = "navbar-brand" })
        <button type="button" class="navbar-toggler" data-bs-toggle="collapse" data-bs-target=".navbar-collapse" title="Toggle navigation" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
            <span class="navbar-toggler-icon"></span>
        </button>
        <div class="collapse navbar-collapse d-sm-inline-flex justify-content-between">
            <ul class="navbar-nav flex-grow-1">
                <li>@Html.ActionLink("Home", "Index", "Home", new { area = "" }, new { @class = "nav-link" })</li>
                <li>@Html.ActionLink("Persons", "Persons", "Home", new { area = "" }, new { @class = "nav-link" })</li>
                <li>@Html.ActionLink("About", "About", "Home", new { area = "" }, new { @class = "nav-link" })</li>
                <li>@Html.ActionLink("Contact", "Contact", "Home", new { area = "" }, new { @class = "nav-link" })</li>
            </ul>
        </div>
    </div>
</nav>
<nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-dark bg-dark">
    <div class="container">
        @Html.ActionLink("Application name", "Index", "Home", new { area = "" }, new { @class = "navbar-brand" })
        <button type="button" class="navbar-toggler" data-bs-toggle="collapse" data-bs-target=".navbar-collapse" title="Toggle navigation" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
            <span class="navbar-toggler-icon"></span>
        </button>
        <div class="collapse navbar-collapse d-sm-inline-flex justify-content-between">
            <ul class="navbar-nav flex-grow-1">
                <li>@Html.ActionLink("Home", "Index", "Home", new { area = "" }, new { @class = "nav-link" })</li>
                <li>@Html.ActionLink("Persons", "Persons", "Home", new { area = "" }, new { @class = "nav-link" })</li>
                <li>@Html.ActionLink("About", "About", "Home", new { area = "" }, new { @class = "nav-link" })</li>
                <li>@Html.ActionLink("Contact", "Contact", "Home", new { area = "" }, new { @class = "nav-link" })</li>
            </ul>
        </div>
    </div>
</nav>
HTML

如何執行與測試此專案?

執行專案

此處將向您展示如何執行專案並產生 PDF 文件。

Visual Studio showing ASP.NET MVC HomeController with Persons action method and PDF generation code

輸出 PDF

我該去哪裡下載完整的專案?

範例專案包含哪些內容?

您可以下載本指南的完整程式碼。該檔案為 ZIP 檔,您可在 Visual Studio 中將其開啟為 ASP.NET Web Application (.NET Framework) MVC 專案。 此範例包含所有必要的設定、模型類別、控制器及檢視,讓您能快速在 MVC 應用程式中開始進行 PDF 生成。

下載用於 PDF 轉換的 MVC 範例專案

常見問題

如何在 ASP.NET MVC 中將 CSHTML 檢視轉換為 PDF?

您可以在 ASP.NET MVC 中使用 IronPDF 的 ChromePdfRenderer.RenderView() 方法,將 CSHTML 檢視轉換為 PDF。只需安裝 IronPdf.Extensions.Mvc.Framework 套件,並使用此渲染方法,僅需幾行程式碼即可將您的檢視轉換為高品質的 PDF 文件。

將視圖渲染為 PDF 所需的最小程式碼為何?

將視圖渲染為 PDF 的最簡代碼如下:var pdf = new IronPdf.ChromePdfRenderer.RenderRazorToPdf(this.Co/ntrollerContext); 這一行使用 IronPdf 的代碼將把您當前的視圖轉換為 PDF 文件。

進行 ASP.NET MVC PDF 生成時,我需要哪個擴充套件?

對於 ASP.NET MVC 應用程式,您需要 IronPdf.Extensions.Mvc.Framework 套件。此擴充套件可與 ASP.NET MVC 專案無縫整合,並與主要 IronPdf 套件協同運作,以實現視圖轉 PDF 的功能。

轉換檢視表為 PDF 時使用的是哪種渲染引擎?

IronPDF 採用 Chrome PDF 渲染引擎,確保將視圖轉換為 PDF 時能達到像素級的精準度。此引擎能在最終的 PDF 輸出中完整保留原始 CSHTML 視圖中的所有樣式、版面配置及互動元素。

我可以在 MVC 檢視中產生發票和報表嗎?

是的,IronPDF 非常適合從您的 MVC 檢視中產生發票、報告及任何其他文件。此函式庫提供專業的 PDF 輸出功能,使其成為直接從您的網頁應用程式檢視中建立商業文件的理想選擇。

要實現「檢視轉 PDF」功能,基本步驟有哪些?

基本實作包含 5 個步驟:1) 下載並安裝 IronPDF 函式庫,2) 為您的資料新增模型類別,3) 使用 RenderView 方法建立控制器動作,4) 透過 MVC 5 檢視骨架新增檢視,以及 5) 使用 IronPDF 的渲染方法執行轉換。

PDF 輸出是否保留原始的版面樣式?

是的,IronPDF 的 Chrome 渲染引擎可確保您 CSHTML 視圖中的所有 CSS 樣式、版面配置及互動元素,皆能完整保留於 PDF 輸出中。這能提供像素級的精準度,並維持原始網頁視圖的視覺完整性。

Curtis Chau
技術撰稿人

Curtis Chau 擁有卡爾頓大學(Carleton University)的電腦科學學士學位,專精於前端開發,並精通 Node.js、TypeScript、JavaScript 及 React。他熱衷於打造直觀且美觀的用戶介面,喜歡運用現代框架,並創建結構完善、視覺上吸引人的手冊。

除了開發工作之外,Curtis 對物聯網(IoT)抱有濃厚興趣,致力於探索整合硬體與軟體的創新方法。閒暇時,他喜歡玩遊戲和開發 Discord 機器人,將對科技的熱愛與創意相結合。

準備開始了嗎?
Nuget 下載 19,014,616 | 版本: 2026.5 just released
Still Scrolling Icon

還在往下捲動嗎?

想要快速確認成果嗎? PM > Install-Package IronPdf
執行範例 觀看您的 HTML 轉為 PDF。