跳過到頁腳內容
使用IRONPDF

如何使用 ASP 將 HTML 轉換為 PDF

開發人員如何在 ASP.NET Core 中將 HTML 轉換為 PDF?

在您的 ASP.NET Core 應用程式中難以產生清晰、像素完美的報告和發票?您並不孤單。

每位開發人員最終都需要將動態網頁內容(如報告或確認訊息)轉換為可靠的、可下載的 PDF 版本。 這是從發票和詳細報告到安全文件格式生成的基本要求。

挑戰是什麼? 要使那些複雜的 HTML(含有所有的 CSS 和 JavaScript)完美呈現在 PDF 中。 這就是 IronPDF 的用武之地。 我們擁有一個強大的 .NET PDF 庫,使用 Chrome 的渲染引擎來簡化 HTML 到 PDF 的轉換過程,確保您能夠得到在螢幕上所見即所得的內容。 您可以輕鬆地只用幾行代碼將最困難的 HTML 轉換為 PDF 文件格式。

準備好看看怎麼做了嗎? 讓我們深入了解如何使用 IronPDF 處理 ASP.NET Core HTML 到 PDF 的任務。

Start your free trial and begin converting HTML to PDF documents today.

使用 IronPDF 開始的步驟是什麼?

在您的 ASP.NET Core 專案中安裝 IronPDF 只需在 NuGet Package Manager Console 中輸入一個命令:

Install-Package IronPdf

這個 .NET 框架庫提供了全面的 HTML 渲染能力,支持現代 HTML 元素、CSS 樣式和 JavaScript 執行。 PDF 轉換器可無縫處理複雜的 HTML 結構和 CSS 屬性。 這對於管理各種文檔格式至關重要。

如何將 HTML 字串轉換為 PDF 文檔?

直接將 HTML 字串轉換為 PDF 文件非常簡單。 以下代碼範例創建了一個完整的 ASP.NET Core 控制器,將 HTML 內容轉換為 PDF 文檔。

using Microsoft.AspNetCore.Mvc;
using IronPdf;

namespace HtmlToPdf.Controllers
{
    public class PdfController : Controller
    {
        public IActionResult Index()
        {
            return View();
        }

        [HttpGet]
        public IActionResult ConvertHtmlStringToPdf()
        {
            string htmlContent = @"
<html>
  <head>
    <title>IronPDF Test</title>
    <style>
      body { font-family: Arial; margin: 40px; }
      h1 { color: #2b5797; }
      table { border-collapse: collapse; width: 100%; margin-top: 20px; }
      th, td { border: 1px solid #ccc; padding: 8px; }
      th { background: #f0f0f0; }
    </style>
  </head>
  <body>
    <h1>IronPDF HTML to PDF Test</h1>
    <p>This is a simple test of converting an HTML string to PDF using IronPDF.</p>
    <table>
      <tr><th>Item</th><th>Price</th></tr>
      <tr><td>Apples</td><td>$1.50</td></tr>
      <tr><td>Bananas</td><td>$0.90</td></tr>
    </table>
    <p><em>End of test document.</em></p>
  </body>
</html>";
            // Initialize the PDF converter
            var renderer = new ChromePdfRenderer();
            // Configure default page size and other settings
            renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
            renderer.RenderingOptions.MarginTop = 20;
            renderer.RenderingOptions.MarginBottom = 20;
            // Convert HTML string to PDF document
            var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);
            // Return PDF file to user, allowing them to download PDF version
            return File(pdfDocument.BinaryData, "application/pdf", "output.pdf");
        }
    }
}
using Microsoft.AspNetCore.Mvc;
using IronPdf;

namespace HtmlToPdf.Controllers
{
    public class PdfController : Controller
    {
        public IActionResult Index()
        {
            return View();
        }

        [HttpGet]
        public IActionResult ConvertHtmlStringToPdf()
        {
            string htmlContent = @"
<html>
  <head>
    <title>IronPDF Test</title>
    <style>
      body { font-family: Arial; margin: 40px; }
      h1 { color: #2b5797; }
      table { border-collapse: collapse; width: 100%; margin-top: 20px; }
      th, td { border: 1px solid #ccc; padding: 8px; }
      th { background: #f0f0f0; }
    </style>
  </head>
  <body>
    <h1>IronPDF HTML to PDF Test</h1>
    <p>This is a simple test of converting an HTML string to PDF using IronPDF.</p>
    <table>
      <tr><th>Item</th><th>Price</th></tr>
      <tr><td>Apples</td><td>$1.50</td></tr>
      <tr><td>Bananas</td><td>$0.90</td></tr>
    </table>
    <p><em>End of test document.</em></p>
  </body>
</html>";
            // Initialize the PDF converter
            var renderer = new ChromePdfRenderer();
            // Configure default page size and other settings
            renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
            renderer.RenderingOptions.MarginTop = 20;
            renderer.RenderingOptions.MarginBottom = 20;
            // Convert HTML string to PDF document
            var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);
            // Return PDF file to user, allowing them to download PDF version
            return File(pdfDocument.BinaryData, "application/pdf", "output.pdf");
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

輸出PDF文件

如何在 ASP.NET Core 中將 HTML 轉換為 PDF:圖 1 - 在 ASP.NET 中簡單的 HTML 到 PDF 輸出

此代碼片段在處理網頁時內部調用 ImportFromUrlChromePdfRenderer 類負責轉換過程,將 HTML 代碼轉換為格式正確的 PDF 文件。結果 PDF 文檔保留了所有 HTML 標籤、CSS 文件,甚至 HTML 字串中的嵌入樣式。 此過程對於精確轉換 PDF 頁面至關重要。

如何將 HTML 文件轉換為 PDF 文件?

在處理伺服器上的現有 HTML 文件時,IronPDF 可以轉換 HTML 文件內容,同時保留所有鏈接資源。 此方法對於基於模板的文檔生成非常有效:

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

namespace YourApp.Controllers
{
    public class DocumentController : Controller
    {
        private readonly IWebHostEnvironment _environment;

        public DocumentController(IWebHostEnvironment environment)
        {
            _environment = environment;
        }

        [HttpGet]
        public IActionResult GeneratePdfFromTemplate(string templateName)
        {
            // Get path to HTML file
            string htmlFilePath = Path.Combine(_environment.WebRootPath, "templates", $"{templateName}.html");
            var renderer = new ChromePdfRenderer();
            // Configure rendering options
            renderer.RenderingOptions.EnableJavaScript = true;
            renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
            // Convert HTML file to PDF
            var pdf = renderer.RenderHtmlFileAsPdf(htmlFilePath);
            // Add headers and footers if needed
            renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
            {
                Height = 25,
                HtmlFragment = "<div style='text-align:center'>Company Report</div>"
            };
            return File(pdf.BinaryData, "application/pdf", $"{templateName}_generated.pdf");
        }
    }
}
using IronPdf;
using Microsoft.AspNetCore.Mvc;
using System.IO;

namespace YourApp.Controllers
{
    public class DocumentController : Controller
    {
        private readonly IWebHostEnvironment _environment;

        public DocumentController(IWebHostEnvironment environment)
        {
            _environment = environment;
        }

        [HttpGet]
        public IActionResult GeneratePdfFromTemplate(string templateName)
        {
            // Get path to HTML file
            string htmlFilePath = Path.Combine(_environment.WebRootPath, "templates", $"{templateName}.html");
            var renderer = new ChromePdfRenderer();
            // Configure rendering options
            renderer.RenderingOptions.EnableJavaScript = true;
            renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
            // Convert HTML file to PDF
            var pdf = renderer.RenderHtmlFileAsPdf(htmlFilePath);
            // Add headers and footers if needed
            renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
            {
                Height = 25,
                HtmlFragment = "<div style='text-align:center'>Company Report</div>"
            };
            return File(pdf.BinaryData, "application/pdf", $"{templateName}_generated.pdf");
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

輸出 PDF

如何在 ASP.NET Core 中將 HTML 轉換為 PDF:圖 2 - HTML 模板文件到 PDF

此方法從磁碟讀取 HTML 文檔並將其轉換為 PDF 文件,同時保持 HTML 結構不變。 PDF 轉換過程保留了所有 CSS 屬性、圖像 URL 和甚至複雜的 HTML 元素。 您可能還會遇到設置特定頁面寬度等高級情況。

IronPDF 如何處理帶有表單驗證的網頁?

ASP.NET Core 應用程式通常使用表單驗證來保護內容。 在轉換需要驗證的 HTML 文檔時,IronPDF 可以傳遞驗證 cookie。

[Authorize]
public IActionResult ConvertAuthenticatedPage()
{
    var renderer = new ChromePdfRenderer();
    // Get current URL with authentication
    string currentUrl = $"{Request.Scheme}://{Request.Host}/SecureContent";
    // Pass authentication cookie
    var authCookie = Request.Cookies[".AspNetCore.Cookies"];
    if (!string.IsNullOrEmpty(authCookie))
    {
        renderer.RenderingOptions.CustomCssUrl = currentUrl;
    }
    // Convert authenticated page
    var pdf = renderer.RenderUrlAsPdf(currentUrl);
    return File(pdf.BinaryData, "application/pdf", "secure_document.pdf");
}
[Authorize]
public IActionResult ConvertAuthenticatedPage()
{
    var renderer = new ChromePdfRenderer();
    // Get current URL with authentication
    string currentUrl = $"{Request.Scheme}://{Request.Host}/SecureContent";
    // Pass authentication cookie
    var authCookie = Request.Cookies[".AspNetCore.Cookies"];
    if (!string.IsNullOrEmpty(authCookie))
    {
        renderer.RenderingOptions.CustomCssUrl = currentUrl;
    }
    // Convert authenticated page
    var pdf = renderer.RenderUrlAsPdf(currentUrl);
    return File(pdf.BinaryData, "application/pdf", "secure_document.pdf");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

此腳本調用 ImportFromUrl 時識別在驗證後呈現的表格、表單和其它 HTML 內容。 HTTP 狀態碼確認確保在 PDF 轉換前頁面檢索成功。 如果 URL 無效或不是 URL,該過程將因開啟 URL 時出錯而失敗。 如果 URL 指向相同的虛擬目錄,資源將從指定的 URL 正確解析。

如何處理轉換 ASPX 文件和動態內容?

對於舊式 ASPX 文件轉換或動態生成的文檔,IronPDF 無縫處理渲染過程。 簡單的代碼片段從任何 HTTP 或 HTTPS 地址創建 PDF 頁面。

public IActionResult ConvertDynamicContent()
{
    var renderer = new ChromePdfRenderer();
    // Enable JavaScript for dynamic content
    renderer.RenderingOptions.EnableJavaScript = true;
    renderer.RenderingOptions.JavascriptDelay = 1000; // Wait for content to load
    // Handle various HTML tags and dynamic elements
    string dynamicHtml = GenerateDynamicHtml(); // Your method
    var pdf = renderer.RenderHtmlAsPdf(dynamicHtml);
    return File(pdf.BinaryData, "application/pdf", "dynamic.pdf");
}
public IActionResult ConvertDynamicContent()
{
    var renderer = new ChromePdfRenderer();
    // Enable JavaScript for dynamic content
    renderer.RenderingOptions.EnableJavaScript = true;
    renderer.RenderingOptions.JavascriptDelay = 1000; // Wait for content to load
    // Handle various HTML tags and dynamic elements
    string dynamicHtml = GenerateDynamicHtml(); // Your method
    var pdf = renderer.RenderHtmlAsPdf(dynamicHtml);
    return File(pdf.BinaryData, "application/pdf", "dynamic.pdf");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

輸出

如何在 ASP.NET Core 中將 HTML 轉換為 PDF:圖 3 - 輸出 PDF 文件

HTML 到 PDF 轉換中的常見問題是確保內容不在 HTML 中創建不必要的中斷。 IronPDF 最大限度地減少了這種情況。

如何處理 CSS 樣式和高級 HTML 渲染?

IronPDF 的 HTML 渲染引擎支持高級 CSS 樣式和 HTML5 功能。 在將 HTML 轉換為 PDF 時,該庫處理 CSS 屬性的解釋,包括複雜的版面設計和響應式設計。 PDF 以程式化方式保持您網頁的視覺保真度,包括 CSS 文件、HTML 標籤和 JavaScript 渲染內容。

轉換過程自動處理空白頁、多頁及頁面尺寸調整。 它還可以處理專門的場景,例如在奇偶頁或僅後續奇數頁上包含頁眉/頁腳,或優雅地處理不存在的頁面。 它旨在輕鬆轉換複雜的網頁內容。

為什麼選擇IronPDF做為您的 .NET 項目?

IronPDF 作為 HTML 到 PDF 轉換的全面 .NET 庫脫穎而出。 與基本的 PDF 轉換器不同,它提供對現代網頁標準的全面支持,從簡單的 HTML 字串到帶有表單驗證的複雜網頁應用程式。

該庫在轉換 HTML 文檔時保持所有格式,使其成為在 .NET Core 應用程式中生成專業 PDF 文檔的理想選擇。 無論您是需要轉換 HTML 文件、處理 HTML 內容,還是從現有 PDF 文檔模板生成 PDF,IronPDF 都提供了為無縫 PDF 轉換必需的工具。

立即下載 IronPDF,只需幾行代碼即可將 HTML 內容轉換為專業的 PDF 文檔。 For additional support, explore the comprehensive documentation and API reference to unlock the full potential of HTML to PDF conversion in your ASP.NET Core applications.

常見問題解答

如何使用 ASP.NET Core 將 HTML 轉換為 PDF?

您可以使用 IronPDF 在 ASP.NET Core 中將 HTML 轉換為 PDF,它可以輕鬆地將 HTML 字串、文件甚至經過驗證的網頁轉換為 PDF。

使用 IronPDF 進行 HTML 轉 PDF 轉換有哪些好處?

IronPDF 提供了一個全面且對開發者友好的 API,用於將 HTML 轉換為 PDF,其功能包括 HTML5 和 CSS3 相容性、對 JavaScript 的支持,以及將複雜的網頁轉換為專業品質 PDF 的功能。

IronPDF 能否處理 PDF 轉換的 HTML 字串?

是的,IronPDF 可以直接將 HTML 字串轉換為 PDF 文檔,從而可以輕鬆地從 ASP.NET Core 應用程式中動態生成的內容生成 PDF。

是否可以使用 IronPDF 將已認證的網頁轉換為 PDF?

IronPDF 支援轉換經過驗證的網頁,讓您可以傳遞憑證,因此可以將受保護的內容轉換為 PDF 文件。

IronPDF是否支援將HTML檔案轉換為PDF?

是的,IronPDF 可以將 HTML 檔案轉換為 PDF 格式,在處理各種類型的 HTML 內容轉換方面提供了彈性。

IronPDF 在 HTML 轉 PDF 流程中可以處理哪些格式?

IronPDF 支援進階格式化功能,包括 CSS 樣式、JavaScript 執行和複雜佈局的渲染,確保轉換後的 PDF 與原始 HTML 佈局高度相符。

使用 IronPDF 時,我可以自訂 PDF 輸出嗎?

IronPDF 允許對 PDF 輸出進行廣泛的自訂,包括設定頁首和頁尾、自訂頁面大小和控制頁邊距,確保 PDF 符合您的特定要求。

IronPDF 支援哪些開發環境進行 HTML 轉 PDF 轉換?

IronPDF 與 ASP.NET Core 相容,並且可以在 C# 專案中無縫使用,使其成為在 .NET 環境中工作的開發人員的多功能工具。

IronPDF 如何確保 PDF 轉換過程的安全性?

IronPDF 可以透過支援 HTTPS 並允許使用驗證憑證,以安全的方式將 HTML 轉換為 PDF,從而在轉換過程中保護敏感資訊。

在 ASP.NET Core 專案中使用 IronPDF 有哪些系統需求?

IronPDF 需要 .NET 環境,並且設計為可無縫整合到 ASP.NET Core 應用程式中,確保開發人員能夠輕鬆設定和操作。

Curtis Chau
技術作家

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

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