使用IRON SUITE

如何在.NET 10中將HTML轉換為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轉換,在.NET生態系統中,IronPDF因多種原因而脫穎而出:

  • 輕鬆將HTML文件HTML字串或HTML代碼直接轉成PDF格式。

  • 編輯PDF文件添加數位簽名,並只需幾行程式碼即可保存PDF檔。

  • 支援整個網頁的渲染,包括打印CSS支持、指定URL渲染和預期的佈局保真度。

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

  • 與.NET Core、.NET Framework和最新版本的C#完美協作。

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

入門:安裝IronPDF

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

Install-Package IronPdf
Install-Package IronPdf
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package IronPdf
$vbLabelText   $csharpLabel

安裝後,您即可立即開始從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文件。 使用IronPDF; 該行引入了IronPDF程式庫,讓我們可以使用其強大的HTML轉換為PDF功能。 我們將HTML內容定義在一個字串中,這可以簡單到一個標題和段落,或者複雜如整個頁面的HTML代碼。

使用RenderHtmlAsPdf,IronPDF將HTML渲染為完整格式的PDF。 最後,SaveAs將PDF寫入磁碟,然後我們印出確認訊息。 這是一個很好的例子,說明您可以只用幾行程式碼生成一個PDF,而不必擔心微軟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內核渲染器將一個即時網頁轉換為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生成

對於Web應用程序,您可以使用公共靜態非同步Task方法動態生成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,一個開源程式庫,專注於使用流暢的,代碼優先的方法從頭創建PDF文件。 雖然QuestPDF在生成動態,編程性結構化的PDF中表現出色,但在轉換複雜的HTML內容或完整網頁時,尤其是那些依賴於JavaScript或高級CSS的頁面,它不太適合。 這使IronPDF成為當您需要直接將HTML字串,文件或即時網頁轉換為專業PDF時更簡便的選擇。

在.NET生態系統中的其他第三方程式庫包括如SelectPdf、DinkToPdf和PuppeteerSharp。SelectPdf和DinkToPdf提供HTML到PDF轉換能力,支持不同程度的CSS和JavaScript,而PuppeteerSharp使用無頭Chromium引擎精確渲染網頁。 每個程式庫在效能、渲染保真度、註冊授權及API簡便性方面都有其權衡。

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

結論

使用IronPDF,在C#中進行HTML到PDF轉換變得簡單、可靠且靈活。 無論您是要轉換HTML字串、HTML文件還是整個網頁,IronPDF的強大方法讓您在複雜佈局、動態內容及最少程式碼下生成PDF文件。

其.NET程式庫整合、API支持和商用授權選項使其成為開發者在.NET Core或.NET Framework專案中實施PDF生成時的首選。

立即開始使用免費試用探索IronPDF,無縫轉換HTML內容為PDF。 使用NuGet套件管理器下載最新版本,只需幾行程式碼即可創建PDF文件。