使用IRON SUITE

2025指南:最佳C# PDF程式庫(免費優先,視需要購買)

將網頁內容轉換為可攜式文件格式 (PDF) 是現代 .NET 應用程式的一項常見需求。 無論您需要存檔網頁、生成發票還是提供可下載的報告,快速且可靠地將HTML轉換為PDF的能力都是關鍵。 IronPDF,一個強大的 .NET 程式庫,提供可靠的PDF轉換功能,讓開發者能夠直接將HTML、HTML字串或整個網頁轉換為完全格式化的PDF文件,只需最少的程式碼。

本指南將帶您學習如何使用C#進行HTML 到 PDF 轉換,包括動態文件、定制標題和複雜佈局,同時演示如何使用IronPDF高效生成PDF。

Why Use IronPDF for HTML to PDF in C

雖然市面上有許多第三方程式庫可用於HTML到PDF的轉換,但IronPDF在.NET生態系統中因多個原因而脫穎而出:

  • 輕鬆將來自HTML文件HTML字串或HTML程式碼直接轉換為PDF格式。

  • 編輯PDF文件新增數位簽名,並用幾行程式碼保存PDF文件。

  • 使用列印CSS支持、指定URL渲染和預期佈局保真度來渲染整個網頁

  • 使用公共靜態非同步任務方法或同步API進行大規模PDF生成,帶有動態內容。

  • 與.NET Core、.NET Framework以及最新版本的C#無縫協作。

  • 支持API整合、命令行和商業授權使用。

開始入門:安裝IronPDF

您可以通過NuGet套件管理安裝IronPDF:

安裝完成後,您可以立即開始從HTML內容或網頁建立PDF文件。

簡單的HTML到PDF轉換

以下是如何僅用幾行程式碼將HTML轉換為PDF的方式:

using IronPdf;
class Program
{
    static void Main(string[] args)
    {
        // Your HTML content
        string html = "<h1>Welcome to IronPDF</h1><p>This is a generated PDF document.</p>";

        // Convert HTML string to PDF
        var pdf = new ChromePdfRenderer().RenderHtmlAsPdf(html);

        // Save PDF
        pdf.SaveAs("output.pdf");

        Console.WriteLine("PDF generated successfully!");
    }
}
using IronPdf;
class Program
{
    static void Main(string[] args)
    {
        // Your HTML content
        string html = "<h1>Welcome to IronPDF</h1><p>This is a generated PDF document.</p>";

        // Convert HTML string to PDF
        var pdf = new ChromePdfRenderer().RenderHtmlAsPdf(html);

        // Save PDF
        pdf.SaveAs("output.pdf");

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

Class Program
    Shared Sub Main(args As String())
        ' Your HTML content
        Dim html As String = "<h1>Welcome to IronPDF</h1><p>This is a generated PDF document.</p>"

        ' Convert HTML string to PDF
        Dim pdf = New ChromePdfRenderer().RenderHtmlAsPdf(html)

        ' Save PDF
        pdf.SaveAs("output.pdf")

        Console.WriteLine("PDF generated successfully!")
    End Sub
End Class
$vbLabelText   $csharpLabel

在第一個範例中,我們將簡單的HTML字串轉換為PDF文件。 using IronPDF; 這一行引入了IronPDF程式庫,使我們能夠使用其強大的HTML到PDF轉換能力。 我們在字串中定義了我們的HTML內容,它可以像標題和段落一樣簡單,也可以像整頁HTML程式碼那樣複雜。

使用RenderHtmlAsPdf,IronPDF將HTML渲染為完全格式化的PDF。 最後,SaveAs將PDF寫入磁碟,我們會印出確認資訊。 這是一個很好的例子,展示了如何用幾行程式碼生成PDF,而不必擔心與Microsoft Office的相依性問題。

HTML字串到PDF範例輸出

將HTML文件或網頁轉換

IronPDF還允許您將整個網頁或本地HTML文件轉換為PDF文件:

using IronPdf;
class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // Optional settings
        renderer.RenderingOptions.EnableJavaScript = true;
        renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
        renderer.RenderingOptions.WaitFor.RenderDelay(3000);

        var pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page");
        pdf.SaveAs("wikipedia.pdf");

    }
}
using IronPdf;
class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // Optional settings
        renderer.RenderingOptions.EnableJavaScript = true;
        renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
        renderer.RenderingOptions.WaitFor.RenderDelay(3000);

        var pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page");
        pdf.SaveAs("wikipedia.pdf");

    }
}
Imports IronPdf

Class Program
    Shared Sub Main(args As String())
        Dim renderer = New ChromePdfRenderer()

        ' Optional settings
        renderer.RenderingOptions.EnableJavaScript = True
        renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
        renderer.RenderingOptions.WaitFor.RenderDelay(3000)

        Dim pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page")
        pdf.SaveAs("wikipedia.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

此範例顯示了如何使用IronPDF的Chromium-based渲染器將實時網頁轉換為PDF。 我們啟用JavaScript以獲取動態內容,應用列印CSS以達到恰當的佈局,並新增一個短暫的渲染延遲以確保所有內容載入。 最後,該頁面被轉換為高保真的PDF,並保存為wikipedia.pdf。 這種方法最適合用於存檔網頁內容或從複雜頁面快速且可靠地生成PDF。

URL到PDF輸出範例

開發人員的進階功能

IronPDF為動態文件提供廣泛的PDF轉換功能:

  • 自定義標題和頁腳

  • 自己的模板,用於經常出現的文件

  • 通過HTML字串進行動態內容渲染

  • 用於法律或審計目的的網頁內容存檔

  • 符合可攜式文件格式的數位簽名

  • 用於批次操作的大規模PDF生成

範例:新增自定義標題

var renderer = new ChromePdfRenderer();

// Optional settings
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    MaxHeight = 50,
    HtmlFragment = "<div style='width:100%; text-align:center; font-size:14px;'>Custom Header</div>",
    DrawDividerLine = true
};

var document = renderer.RenderHtmlAsPdf("<p>Dynamic HTML content</p>");
document.SaveAs("customHeader.pdf");
var renderer = new ChromePdfRenderer();

// Optional settings
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    MaxHeight = 50,
    HtmlFragment = "<div style='width:100%; text-align:center; font-size:14px;'>Custom Header</div>",
    DrawDividerLine = true
};

var document = renderer.RenderHtmlAsPdf("<p>Dynamic HTML content</p>");
document.SaveAs("customHeader.pdf");
Dim renderer = New ChromePdfRenderer()

' Optional settings
renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter() With {
    .MaxHeight = 50,
    .HtmlFragment = "<div style='width:100%; text-align:center; font-size:14px;'>Custom Header</div>",
    .DrawDividerLine = True
}

Dim document = renderer.RenderHtmlAsPdf("<p>Dynamic HTML content</p>")
document.SaveAs("customHeader.pdf")
$vbLabelText   $csharpLabel

在許多情況下,您不僅希望擁有一份PDF,而且希望它看起來很專業。 在這裡,我們利用HtmlHeaderFooter類為我們的PDF文件建立自定義標題。 您可以利用此工具輕鬆將內容如品牌、頁碼等新增到您的PDF文件中。 所有這些只需幾行簡單的程式碼。

具有自定義標題的PDF範例

API整合和非同步PDF生成

對於網頁應用程式,您可以使用公共靜態非同步任務方法動態生成PDF:

public static async Task GeneratePdfAsync(string htmlContent)
 {
     var pdfDocument = await new ChromePdfRenderer().RenderHtmlAsPdfAsync(htmlContent);
     pdfDocument.SaveAs("async_output.pdf");
 }
public static async Task GeneratePdfAsync(string htmlContent)
 {
     var pdfDocument = await new ChromePdfRenderer().RenderHtmlAsPdfAsync(htmlContent);
     pdfDocument.SaveAs("async_output.pdf");
 }
Imports System.Threading.Tasks

Public Module PdfGenerator
    Public Async Function GeneratePdfAsync(htmlContent As String) As Task
        Dim pdfDocument = Await (New ChromePdfRenderer()).RenderHtmlAsPdfAsync(htmlContent)
        pdfDocument.SaveAs("async_output.pdf")
    End Function
End Module
$vbLabelText   $csharpLabel

高保真HTML到PDF轉換技巧

  1. 始終包括列印CSS以確保生成的PDF中有預期的佈局。

  2. 使用動態HTML字串即時生成報告或發票的PDF。

  3. 利用IronPDF的渲染引擎處理包含表格、圖像和表單的複雜佈局。

  4. 在轉換後操作PDF文件以新增元資料、數位簽名或註釋。

  5. 測試帶有多個HTML頁面的大規模PDF生成,以驗證性能和可靠性。

競爭對手:探索IronPDF的替代方案

雖然IronPDF在C#中的HTML到PDF轉換中是一個功能強大且功能豐富的解決方案,但還有幾個替代方案可供開發人員根據他們的專案需求考慮。

一個值得注意的選項是QuestPDF,一個開源程式庫,專注於使用fluent方式從頭建立PDF文件。 雖然QuestPDF在生成動態、以程式設計結構化的PDF方面表現出色,但在轉換依賴JavaScript或進階CSS的複雜HTML內容或完整網頁方面則適應性较差。 在需要將HTML字串、文件或實時網頁直接轉換為專業PDF時,這使IronPDF成為一個更直接的選擇。

其他.NET生態系統中的第三方程式庫還包括像SelectPdf、DinkToPdf和PuppeteerSharp這樣的工具。SelectPdf和DinkToPdf提供不同級別CSS和JavaScript支持的HTML到PDF轉換功能,而PuppeteerSharp使用無頭Chromium引擎準確渲染網頁。 每個程式庫在性能、渲染保真度、授權和API簡單性方面都有其取捨。

對於.NET開發者的詳細HTML到PDF C#程式庫比較和IronPDF的替代方案,包括功能拆解、程式碼範例和用例,請查看這篇文章:QuestPDF和其他HTML到PDF替代方案

結論

有了IronPDF,在C#中的HTML到PDF轉換變得直接、可靠且靈活。 無論您是轉換HTML字串、HTML文件還是整個網頁,IronPDF的強大方法讓您能夠每用複雜的佈局、動態內容並用最少的程式碼生成PDF文件。

其.NET程式庫整合、API支持和商業授權選項使它成為希望在.NET Core或.NET Framework專案中實現PDF生成的開發人員的首選。

立即開始探索IronPDF,並以免費試用輕鬆將HTML內容轉換為PDF。 通過NuGet套件管理下載最新版本,並用幾行程式碼建立PDF文件。