IRONSOFTWAREHOME
使用IRONPDF

PDF轉TIFF VB .NET及C#指南

Curtis Chau
Curtis Chau
Updated: 2026年7月5日

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

IronPDF使得在ASP.NET Core中使用Chrome的渲染引擎簡單地將HTML轉換為PDF,以便您只需幾行程式碼就可以將動態網頁內容、報告和發票轉換為精準的PDF,而保留所有CSS樣式和JavaScript功能。

在您的ASP.NET Core應用程式中,掙扎於獲得清晰、像素完美的報告和發票嗎?您並不孤單。

每個開發人員最終都需要將動態網頁內容(如報告或訂單確認)轉換為可靠的、可下載的PDF。 這是生成從發票和詳細報告到安全、可歸檔文件格式的一個基本要求。 挑戰在於將包含所有CSS和JavaScript的複雜HTML完美地渲染為PDF輸出。

那就是IronPDF的用武之地。 它在底層使用Chrome的渲染引擎,因此無論您在瀏覽器中看到什麼,就能在PDF輸出中得到什麼。 無論您是在處理ASPX頁面、現代Razor視圖或原始HTML字串,轉換過程都是一致且可預測的。

本指南將帶您了解最常見的ASP.NET Core HTML到PDF情境——從URL到PDF轉換、HTML字串渲染和HTML文件處理——每種方法都有可用的C#程式碼範例。

開始您的免費試用並今天就開始將HTML轉換為PDF文件。

第一步:
arrow pointer

您如何將PDF程式庫新增到ASP.NET Core專案中?

NuGet套件管理器控制台中或通過.NET CLI安裝IronPDF只需一個命令。 IronPDF作為NuGet套件提供,並針對.NET 6、7、8和10目標:

PM > Install-Package IronPdf

安裝後,IronPDF提供完整的HTML渲染能力,支持現代HTML元素、CSS樣式和JavaScript執行。 該程式庫可靠地處理複雜的HTML結構和CSS屬性,包括Bootstrap和Flex布局。

IronPDF支持在各種環境中的部署:

IronPDF支持的部署環境
環境支持級別註釋
Windows完全IIS和自托管,所有版本
Linux完全Ubuntu、Debian、CentOS、Alpine
macOS完全Arm和x64架構
Azure完全應用服務、函式、容器
AWS Lambda完全無伺服器PDF生成
Docker完全包含遠程IronPDF引擎選項

安裝後,ChromePdfRenderer類是您的主要入口點。 它公開一個RenderingOptions屬性,您可以在那裡控制紙張大小、邊距、頁眉、JavaScript執行以及更多。 下面的部分涵蓋了一個典型的ASP.NET Core應用程式中將使用的三種主要轉換方法。

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

直接將HTML字串轉換為PDF文件是最直接的方法,不需要文件系統存取。 這使其成為從動態組裝的HTML(如訂單確證、發票或從資料庫填充的報告範本)生成PDF的理想選擇。

以下程式碼顯示了一個完整的ASP.NET Core控制器操作,使用IronPDF將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 page size and margins
            renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
            renderer.RenderingOptions.MarginTop = 20;
            renderer.RenderingOptions.MarginBottom = 20;
            // Convert the HTML string to a PDF document
            var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);
            // Return the PDF file as a download
            return File(pdfDocument.BinaryData, "application/pdf", "output.pdf");
        }
    }
}

生成的PDF看起來如何?

PDF viewer displaying a test document created with IronPDF, showing a simple table with items (Apples $1.50, Bananas $0.90) demonstrating HTML to PDF conversion

ChromePdfRenderer類處理整個轉換管道,將您的HTML字串轉換為格式正確的多頁PDF。 生成的文件保留了所有樣式 - 包括內嵌CSS、嵌入式樣式表,甚至是字體規則 - 與來源HTML中定義的一樣。 這種模式特別適合生成發票、報表,以及您從頭到尾通過程式碼控制其佈局的任何文件。

您可以擴展這種模式,在每一頁新增頁眉和頁腳自定義水印。 IronPDF還支持PDF壓縮,以在不失去視覺質量的情況下減小文件大小。

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

當處理儲存在伺服器上的現有HTML模板文件時,IronPDF可以在保持所有連結資源(例如外部樣式表、本地圖像和JavaScript文件)的同時讀取並轉換它們。 這種方法很適合基於模板的文件生成管道,設計師在應用程式碼以外維護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)
        {
            // Resolve the full path to the HTML template
            string htmlFilePath = Path.Combine(_environment.WebRootPath, "templates", $"{templateName}.html");
            var renderer = new ChromePdfRenderer();
            // Use print media type for print-optimized CSS rules
            renderer.RenderingOptions.EnableJavaScript = true;
            renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
            // Add a header to every generated page
            renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
            {
                Height = 25,
                HtmlFragment = "<div style='text-align:center'>Company Report</div>"
            };
            // Convert the HTML file to a PDF document
            var pdf = renderer.RenderHtmlFileAsPdf(htmlFilePath);
            return File(pdf.BinaryData, "application/pdf", $"{templateName}_generated.pdf");
        }
    }
}

模板轉換的結果如何出現?

PDF查看器顯示由HTML生成的每月銷售報告,展示IronPDF、IronOCR和IronXL授權的產品銷售資料表

這種方法從磁碟中讀取HTML文件並轉換它們,同時維持完整的文件結構。 所有的CSS屬性、圖像引用和複雜的HTML元素(如表格和巢狀容器)在輸出中都得到保留。 IronPDF會根據源文件的位置解析相對資源路徑,因此連結的樣式表和圖像可以無需額外設置地載入。

IronPDF還正確支持CSS列印媒體查詢,這意味著您可以在HTML模板中定義列印特定規則——隱藏導航欄、調整字體大小或啟用分頁提示——這些規則只在PDF生成期間應用,而不是在瀏覽器中載入頁面時。

您如何轉換需要身份驗證的頁面?

ASP.NET Core應用程式通常會保護內容,使用表單身份驗證。 在轉換需要有效會話的頁面時,IronPDF可以將身份驗證Cookie與HTTP請求一同傳遞,使渲染的頁面反映出已身份驗證的使用者所看到的內容:

[Authorize]
public IActionResult ConvertAuthenticatedPage()
{
    var renderer = new ChromePdfRenderer();
    // Build the URL for the protected resource
    string currentUrl = $"{Request.Scheme}://{Request.Host}/SecureContent";
    // Forward the authentication cookie to IronPDF
    var authCookie = Request.Cookies[".AspNetCore.Cookies"];
    if (!string.IsNullOrEmpty(authCookie))
    {
        renderer.RenderingOptions.CustomCookies = new System.Collections.Generic.Dictionary<string, string>
        {
            { ".AspNetCore.Cookies", authCookie }
        };
    }
    // Convert the authenticated page to a PDF file
    var pdf = renderer.RenderUrlAsPdf(currentUrl);
    return File(pdf.BinaryData, "application/pdf", "secure_document.pdf");
}

這種技術會捕捉到位於登錄牆後的頁面的完整渲染輸出。 當目標URL屬於同一應用程式時,所有的相對資源路徑都會正確解析,因為渲染器繼承了相同的基本URL上下文。 您還可以配置自定義HTTP請求標頭以進行API鍵身份驗證或其他基於標頭的安全架構。

為了在生成後獲得更強的文件安全性,請考慮應用PDF密碼和權限數位簽署您的PDF以防止未經授權的修改。 IronPDF還支持PDF/A合規性,以進行長期歸檔和PDF/UA格式以滿足無障礙需求,這對於受規管行業可能很重要。

轉換ASPX文件和動態JavaScript內容又如何呢?

對於舊版ASPX頁面的轉換或依賴於JavaScript在運行時填充內容的文件,IronPDF可以可靠地處理渲染過程。 您可以配置渲染延遲以讓JavaScript完成執行,然後捕捉頁面:

public IActionResult ConvertDynamicContent()
{
    var renderer = new ChromePdfRenderer();
    // Enable JavaScript so dynamic content renders correctly
    renderer.RenderingOptions.EnableJavaScript = true;
    // Wait 1 second after page load for JavaScript to complete
    renderer.RenderingOptions.WaitFor.RenderDelay(1000);
    // Generate your dynamic HTML string
    string dynamicHtml = GenerateDynamicHtml();
    var pdf = renderer.RenderHtmlAsPdf(dynamicHtml);
    return File(pdf.BinaryData, "application/pdf", "dynamic.pdf");
}

轉換後的動態內容看起來如何?

PDF查看器顯示使用IronPDF生成的測試文件,展示了帶有JavaScript設置的動態內容,時間戳為下午4:14:10

HTML到PDF轉換中的一個常見難題是不希望的分頁打斷,將標題與其內容分開,或者將表格行切割在行中。 IronPDF通過可配置的分頁控制來解決此問題,使用標準CSS page-break-beforepage-break-inside 規則以及IronPDF的WaitFor API。 該程式庫還支持異步PDF生成,以提高高流量情況下的吞吐量。

對於進階的JavaScript應用,例如由D3.js渲染的圖表或React組件,您可以在渲染快照拍攝之前注入和執行自訂JavaScript,以確保圖表或組件已完全載入,然後生成PDF。

您如何處理CSS樣式和進階HTML渲染?

IronPDF的渲染引擎通過其完整的渲染選項API支持進階CSS和HTML5功能。 在將HTML轉換為PDF時,該程式庫正確解釋CSS屬性——包括使用Flexbox、CSS Grid和響應式媒體查詢構建的複雜布局。 PDF輸出保持源頁面的視覺效果,包括外部樣式表、內嵌樣式和在頁面捕捉前更改DOM的JavaScript渲染內容。

轉換過程處理多頁文件、空白頁抑制和自動頁面大小調整,無需手動配置。 它還管理專門場景,例如在特定頁上應用不同的頁眉或頁腳,或優雅地處理橫跨幾十頁的報告内容。

值得了解的額外渲染能力:

  • 國際文字:對UTF-8編碼和國際語言的全面支持,包括如阿拉伯語和希伯來語等從右到左的文字
  • 矢量圖形:原生SVG渲染無需光柵化,因此圖形在任何縮放級別都保持清晰
  • 文件結構:目錄生成、書籤支持和PDF元資料編輯,例如作者、標題和關鍵字字段
  • 後期處理合併或拆分PDFs、提取文字和圖像,以及以程式化方式建立可填寫表單

這些功能使IronPDF成為文件密集型應用程式的實際選擇,當基本轉換器的輸出質量不能滿足生產需求時。 對於.NET中不熟悉PDF生成的團隊,Microsoft的ASP.NET Core文件提供了有關控制器操作和中介軟體的良好背景知識,在將任何PDF圖書館整合到web應用程式中時這些知識是有益的。

為什麼這是您.NET專案中合適的PDF程式庫?

IronPDF是一個適用於生產環境的.NET程式庫,用於HTML到PDF轉換,提供較AsposeiTextSyncfusion更可靠的性能。 與基本的PDF轉換器不同,它完全支持現代Web標準,處理從簡單的HTML字串到包含JavaScript渲染內容和表單驗證的複雜Web應用程式。

該程式庫同樣適用於Blazor應用程式和MAUI專案,除了C#之外還可以與F#一同使用。 對於企業環境,IronPDF支持IIS托管、Azure 函式Docker容器

IronPDF在開發期間是免費試用的。 立即下載IronPDF,開始將HTML內容轉換為專業的PDF文件。 探索完整的文件資料程式碼範例API參考,充分利用您的ASP.NET Core應用程式中的HTML到PDF轉換。

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

...
閱讀更多

相關文章

Key in blue circle

立即免費取得 30 天試用金鑰

Your trial license will be sent to your email address

無任何限制。100% 解鎖。無需信用卡。

bullet_checked無需信用卡或建立帳號無任何限制。100% 解鎖。無需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
預訂您的免費現場演示
Booking Badge

受到全球數百萬工程師的信任

Iron Software的客戶標誌
獲取您的無義務諮詢
填寫以下表格或電子郵件sales@ironsoftware.com
您的詳細資訊將始終保密
受到全球數百萬工程師的信任
Iron Software的客戶標誌
立即獲取您的30天試用金鑰
無需信用卡或帳戶建立