跳過到頁腳內容
使用IRONPDF

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

HTML 轉換為 PDF在 C# 中是 .NET 開發人員構建企業或 SaaS 應用程式最常見的需求之一。 無論您是需要從網頁內容、HTML 文件還是 HTML 字串生成 PDF 檔案,將 HTML 轉換為專業的 PDF 格式的能力對於生成報告、發票及其他可打印資產都是必不可少的。

IronPDF 庫是一個專為 .NET Framework 應用程式和現代 .NET 10 項目構建的強大 HTML 到 PDF 轉換器。 它允許您輕鬆將 HTML、CSS 樣式甚至 JavaScript 渲染轉換為高品質、完全樣式化的 PDF 文件——所有這些只需幾行 C# 代碼即可完成。

Convert Html To Pdf Csharp Net 10 1 related to 如何使用IronPDF在C#中將HTML轉換為.NET 10中的PDF

為何選擇 IronPDF 進行 HTML 到 PDF 轉換?

與需要在 PDF 畫布上手動繪製元素的舊 PDF 庫不同,IronPDF 使用完整的 Chromium 引擎渲染 HTML 內容。這意味著您的 HTML 文件、CSS 和圖像文件將按照瀏覽器的方式進行處理,精確地保留佈局、字體和 HTML 元素。 它非常適合:

  • 從 Web 應用動態生成報告

  • 將網頁或儀表板呈現為 PDF 文件

  • 將 HTML 片段轉換為 PDF 文件

  • 自動化從模板生成大規模 PDF

  • 操作現有的 PDF 文件以進行蓋章或合併

IronPDF 作為完整的轉換庫來創建 PDF 文件,為 .NET 開發人員提供簡單而強大的 PDF 生成控制。

1. 在 .NET 10 項目中安裝 IronPDF

首先,您需要創建一個新的.NET 10 項目。

Convert Html To Pdf Csharp Net 10 2 related to 1. 在 .NET 10 項目中安裝 IronPDF

截至目前,.NET 10 仍處於預覽階段,但它與 IronPDF 完全兼容。

Convert Html To Pdf Csharp Net 10 3 related to 1. 在 .NET 10 項目中安裝 IronPDF

我們將在這裡演示如何使用最新的 .NET 功能和 IronPDF 的基於 Chrome 的渲染引擎實現無縫的 HTML 到 PDF 轉換。

現在,是時候安裝 IronPDF 了!

您可以直接從解決方案的 NuGet 套件管理器中安裝 IronPDF。

Convert Html To Pdf Csharp Net 10 4 related to 1. 在 .NET 10 項目中安裝 IronPDF

還有其他安裝選項。 在您的解決方案管理器中,打開終端或命令行介面(CLI)然後運行:

dotnet add package IronPdf
dotnet add package IronPdf
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'dotnet add package IronPdf
$vbLabelText   $csharpLabel

或者使用 NuGet 套件管理器控制台:

PM > Install-Package IronPdf

Convert Html To Pdf Csharp Net 10 5 related to 1. 在 .NET 10 項目中安裝 IronPDF

現在您可以開始編寫代碼了。

2. 基本的 HTML 到 PDF 轉換

讓我們從一個 C# HTML to PDF 示例開始,該示例將 HTML 內容轉換成 PDF 文件。

using IronPdf;

class Program
{
    public static void Main()
    {
        var renderer = new ChromePdfRenderer();

        string html = "<html><body><h1>HTML to PDF C# Example</h1><p>This demonstrates PDF conversion in .NET 10.</p></body></html>";

        PdfDocument pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("basic_output.pdf");
    }
}
using IronPdf;

class Program
{
    public static void Main()
    {
        var renderer = new ChromePdfRenderer();

        string html = "<html><body><h1>HTML to PDF C# Example</h1><p>This demonstrates PDF conversion in .NET 10.</p></body></html>";

        PdfDocument pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("basic_output.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

說明:

  • ChromePdfRenderer 是主要的 HTML 到 PDF 轉換類。

  • RenderHtmlAsPdf 方法將 HTML 字串轉換為 PDF 文件。

  • 生成的 PDF 可以保存為 PDF 文件或返回為流。

只需幾行,我們就建立了一個使用 C# 的工作 HTML 到 PDF 轉換器。

Convert Html To Pdf Csharp Net 10 6 related to 2. 基本的 HTML 到 PDF 轉換

3. 將 HTML 文件和 URL 轉換為 PDF

a. 轉換 HTML 文件

您可以從磁碟中的HTML 文件進行轉換(包括連結的資源如 CSS 或圖片):

var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlFileAsPdf("template.html");
pdf.SaveAs("file_conversion.pdf");
var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlFileAsPdf("template.html");
pdf.SaveAs("file_conversion.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

此方法讀取本地 HTML 文件並自動加載外部資源(如 CSS、JS、圖像),如果有。

Convert Html To Pdf Csharp Net 10 7 related to a. 轉換 HTML 文件

b. 轉換網頁(URL 轉換)

如果您的輸入是網頁或現有的URL,只需直接呈現:

var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderUrlAsPdf("https://ironpdf.com");
pdf.SaveAs("webpage_conversion.pdf");
var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderUrlAsPdf("https://ironpdf.com");
pdf.SaveAs("webpage_conversion.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

上述代碼執行 URL 直接轉換,完整的 JavaScript 渲染和 CSS 轉換指定 URL 的 HTML 文件。

Convert Html To Pdf Csharp Net 10 8 related to b. 轉換網頁(URL 轉換)

4. 高級示例:轉換具有樣式和 JavaScript 的 HTML 內容

Many web pages rely on dynamic HTML elements, CSS styles, and JavaScript rendering (charts, dashboards, etc.). IronPDF 完全支持這一點。

var renderer = new ChromePdfRenderer();

renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.RenderDelay(2000); // wait for dynamic JS
renderer.RenderingOptions.MarginTop = 20;
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;

PdfDocument pdf = renderer.RenderHtmlFileAsPdf("Reports/sales.html");
pdf.SaveAs("styled_output.pdf");
var renderer = new ChromePdfRenderer();

renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.RenderDelay(2000); // wait for dynamic JS
renderer.RenderingOptions.MarginTop = 20;
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;

PdfDocument pdf = renderer.RenderHtmlFileAsPdf("Reports/sales.html");
pdf.SaveAs("styled_output.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

上述代碼可確保 IronPDF 等待動態 Web 內容完全加載後再進行渲染,以達到準確的視覺保真度。

Convert Html To Pdf Csharp Net 10 9 related to 4. 高級示例:轉換具有樣式和 JavaScript 的 HTML 內容

5. 添加頁眉、頁腳和頁碼

您可以輕鬆地為生成的 PDF 文件添加專業的頁眉和頁腳

renderer.RenderingOptions.FirstPageNumber = 1;
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    HtmlFragment = "<div style='text-align:center; font-size:14px; margin-top:20px;'>Sales Report</div>"
};

renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
    HtmlFragment = "<div style='text-align:center; font-size:14px; margin-bottom:20px;'>Page {page} of {total-pages}</div>"
};
renderer.RenderingOptions.FirstPageNumber = 1;
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    HtmlFragment = "<div style='text-align:center; font-size:14px; margin-top:20px;'>Sales Report</div>"
};

renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
    HtmlFragment = "<div style='text-align:center; font-size:14px; margin-bottom:20px;'>Page {page} of {total-pages}</div>"
};
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

IronPDF 將這些視為臨時 HTML 文件,因此您可以使用 CSS 進行樣式化並包含自訂數據,如日期或公司名稱。

Convert Html To Pdf Csharp Net 10 10 related to 5. 添加頁眉、頁腳和頁碼

6. 從多個 HTML 片段生成 PDF

如果您想通過合並幾個 HTML 片段來生成 PDF 文件,可以合併它們:

var renderer = new ChromePdfRenderer();

PdfDocument part1 = renderer.RenderHtmlAsPdf("<h1>Section 1</h1>");
PdfDocument part2 = renderer.RenderHtmlAsPdf("<h1>Section 2</h1>");

var merged = PdfDocument.Merge(part1, part2);
merged.SaveAs("Merged.pdf");
var renderer = new ChromePdfRenderer();

PdfDocument part1 = renderer.RenderHtmlAsPdf("<h1>Section 1</h1>");
PdfDocument part2 = renderer.RenderHtmlAsPdf("<h1>Section 2</h1>");

var merged = PdfDocument.Merge(part1, part2);
merged.SaveAs("Merged.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

這有助於您從不同的 HTML 代碼片段創建多部分報告。

Convert Html To Pdf Csharp Net 10 11 related to 6. 從多個 HTML 片段生成 PDF

7. 在 Web API 中將 HTML 轉換為 PDF

在 ASP.NET Web API 中,您可以生成並返回 PDF 文件而不將其保存到磁碟,使用 MemoryStream:

[HttpGet("download")]
public IActionResult GetPdf()
{
    var renderer = new ChromePdfRenderer();
    string html = "<h1>Web Report</h1><p>Generated dynamically.</p>";

    var pdf = renderer.RenderHtmlAsPdf(html);
    var bytes = pdf.BinaryData;

    return File(bytes, "application/pdf", "report.pdf");
}
[HttpGet("download")]
public IActionResult GetPdf()
{
    var renderer = new ChromePdfRenderer();
    string html = "<h1>Web Report</h1><p>Generated dynamically.</p>";

    var pdf = renderer.RenderHtmlAsPdf(html);
    var bytes = pdf.BinaryData;

    return File(bytes, "application/pdf", "report.pdf");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

此模式非常適合用於 .NET 10 Web 應用中伺服器端 PDF 生成。

8. 自訂 HTML 渲染選項

您可以控制如何渲染 HTML 元素和連結資源:

renderer.RenderingOptions.BaseUrl = "https://mywebsite.com/";
renderer.RenderingOptions.CustomHeaders.Add("Authorization", "Bearer token");
renderer.RenderingOptions.WaitFor.NavigationTimeout = 10000;
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.BaseUrl = "https://mywebsite.com/";
renderer.RenderingOptions.CustomHeaders.Add("Authorization", "Bearer token");
renderer.RenderingOptions.WaitFor.NavigationTimeout = 10000;
renderer.RenderingOptions.EnableJavaScript = true;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

這在渲染具有外部資源的網頁或進行 Web 資料擷取並隨後進行 PDF 轉換時非常有用。

9. 命令行工具和控制台示例

您還可以構建一個小型的命令行工具進行批次 HTML 到 PDF 轉換:

using IronPdf;
using System;

class Program
{
    public static void Main(string[] args)
    {
        string inputFile = args[0];
        string outputPath = args[1];

        var renderer = new ChromePdfRenderer();
        PdfDocument pdf = renderer.RenderHtmlFileAsPdf(inputFile);
        pdf.SaveAs(outputPath);

        Console.WriteLine("PDF generated successfully!");
    }
}
using IronPdf;
using System;

class Program
{
    public static void Main(string[] args)
    {
        string inputFile = args[0];
        string outputPath = args[1];

        var renderer = new ChromePdfRenderer();
        PdfDocument pdf = renderer.RenderHtmlFileAsPdf(inputFile);
        pdf.SaveAs(outputPath);

        Console.WriteLine("PDF generated successfully!");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

從命令行界面 (CLI) 運行它:

dotnet run "input.html" "output.pdf"

Convert Html To Pdf Csharp Net 10 12 related to 9. 命令行工具和控制台示例

您剛剛為 .NET 開發人員構建了一個簡單的命令行 PDF 轉換器。

Convert Html To Pdf Csharp Net 10 13 related to 9. 命令行工具和控制台示例

10. 高級 .NET 示例與 Async 模式

您還可以為現代 .NET 10 應用使用異步模式:

public static async Task Main()
{
    var renderer = new ChromePdfRenderer();
    string url = "https://example.com/dashboard";

    PdfDocument pdf = await Task.Run(() => renderer.RenderUrlAsPdfAsync(url));
    pdf.SaveAs("async_output.pdf");
}
public static async Task Main()
{
    var renderer = new ChromePdfRenderer();
    string url = "https://example.com/dashboard";

    PdfDocument pdf = await Task.Run(() => renderer.RenderUrlAsPdfAsync(url));
    pdf.SaveAs("async_output.pdf");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

這適用於處理高量級 PDF 生成的可擴展系統或雲 API。

11. 大規模 PDF 生成的最佳實踐

  • 在生成多個 PDF 時重用 ChromePdfRenderer 實例。

  • 將臨時文件存儲在快速的 SSD 支持位置。

  • 使用異步任務進行批次 PDF 生成。

  • 在不需要時避免過度的 JavaScript 渲染。

  • 驗證 HTML 輸入文件以防止轉換錯誤。

這些優化確保在企業級 .NET 解決方案中順利進行 PDF 轉換。

12. 結論

使用 IronPDF 和 .NET 10,將 HTML 內容轉換為令人驚艷的專業 PDF 文件變得非常簡單——無論您是在使用 HTML 字串、本地 HTML 文件還是現有的 URL。

從簡單片段到大規模 PDF 生成,IronPDF 為您提供完整的 HTML 到 PDF 轉換器,支持 JavaScript、CSS、自定義標題和連結資源。

只需幾行代碼,您就可以生成 PDF 文件,自動生成報告,或將 PDF 轉換庫直接嵌入到您的 .NET 應用程式中。

立即使用IronPDF 免費試用開始您的 HTML 到 PDF 項目實驗。 立即下載並感受從您的 HTML 內容生成高品質 PDF 文件的輕鬆體驗。

常見問題解答

將HTML轉換為PDF在C#中的主要用途是什麼?

將HTML轉換為PDF在C#中的主要用途是從網頁內容、HTML文件或HTML字符串生成專業的PDF文件。這對於在企業或SaaS應用程式中創建報告、發票和其他可打印資產至關重要。

為什麼HTML轉PDF對.NET開發人員很重要?

HTML轉PDF對.NET開發人員很重要,因為它使他們能夠將文檔生成功能集成到其應用程式中,這對於生產高質量、可共享和可打印的文檔如報告和發票至關重要。

IronPDF能夠處理大型HTML文件進行PDF轉換嗎?

是的,IronPDF能夠有效處理大型HTML文件並將其轉換為PDF,且不影響性能或質量。

IronPDF支持將HTML字符串轉換為PDF嗎?

IronPDF支持將HTML字符串轉換為PDF,允許開發人員直接從HTML內容動態生成PDF文件。

使用IronPDF進行HTML轉PDF轉換的應用程式有哪些?

企業和SaaS應用程式使用IronPDF進行HTML轉PDF轉換大有裨益,因為它使他們能夠自動創建專業文檔如報告和發票。

IronPDF如何確保從HTML輸出高質量的PDF?

IronPDF通過使用高級渲染技術確保從HTML到PDF的高質量輸出,準確地將HTML、CSS和JavaScript轉換為專業外觀的PDF。

使用IronPDF是否可以自定義由HTML生成的PDF的外觀?

可以,IronPDF允許廣泛自定義由HTML生成的PDF的外觀,包括佈局、字體和樣式,以滿足特定設計要求。

IronPDF可以直接將網頁轉換為PDF嗎?

IronPDF可以直接將網頁轉換為PDF,使開發人員能夠將實時網頁內容輕鬆轉變為靜態、可共享的PDF文件。

IronPDF是否支持在PDF文件中集成圖形和圖像?

IronPDF支持集成圖形和圖像,確保轉換後的PDF文件保留原來HTML內容的視覺元素。

Curtis Chau
技術作家

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

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