使用IRON SUITE

HTML到PDF C# - 使用IronPDF的完整指南

介紹

在當今的數位時代,將 HTML 轉換為 PDF是開發人員的常見需求。 無論是產生報告、發票、法律文件,或是存檔網頁內容,製作一致、專業的 PDF 文件都可能是一項挑戰。

傳統上,這個過程需要手動處理 PDF 結構、複雜的佈局計算和大量的編碼,因此既耗時又容易出錯。 現代 .NET 開發人員需要一個可靠的解決方案,既能簡化 PDF 生成流程,又能保持準確性和靈活性。 除此之外,找到一個提供完整 JavaScript 和 CSS 支援的函式庫,對於渲染出的 PDF 文件的品質來說至關重要。 這就是我們今天要介紹的庫 IronPDF 的用武之地。

在以下各節中,我們將探討如何使用IronPDF (一個簡化轉換流程並與 .NET 應用程式無縫整合的程式庫)在 C# 中將 HTML 轉換為 PDF。 看完本指南,您將能夠在 .NET 專案中無縫地將 HTML 轉換為 PDF。

如何使用 C# 將 HTML 轉換為 PDF

  1. 建立一個新的 Visual Studio 專案。
  2. 從 NuGet 套件管理器新增 IronPDF 庫。
  3. 將 HTML 字串轉換為 PDF 檔案。
  4. 新增頁首和頁尾。
  5. 包含外部樣式表和腳本。

IronPDF 簡介

IronPDF是一個 .NET 程式庫,它允許開發人員輕鬆地將 HTML 轉換為 PDF 。 它支援多種功能,包括 CSS、JavaScript 和嵌入式圖像,因此您的 PDF 檔案可以看起來與您的 HTML 網頁完全一樣。 這確保了格式之間的無縫過渡,使得 IronPDF 對於能夠即時生成動態 PDF 文件的 Web 應用程式來說尤其有用。

該程式庫允許開發人員將 PDF 功能直接整合到 C# 或 VB.NET 應用程式中,而無需手動管理 PDF 結構。 IronPDF 與 .NET Framework、.NET Core 和現代 .NET 版本完全相容,並且支援 Windows 和 Linux 環境。 IronPDF 利用基於 Chrome 的渲染引擎,將 HTML 頁面(包括複雜的 CSS、JavaScript 和圖像)轉換為結構良好、高品質的 PDF 文件——通常只需幾行程式碼即可完成。 它非常適合產生報告、發票、電子書或任何需要以 PDF 格式呈現的文件。

除了 PDF 轉換功能外,IronPDF 還提供了多種 PDF 文件操作選項,包括編輯、表單處理、加密、頁首/頁尾等,使其成為現代 PDF 工作流程的多功能工具。

IronPDF 的主要特點

  1. HTML 轉 PDF
    • HTML 渲染IronPDF可以將 HTML 檔案、內容或整個網頁(包括帶有 CSS、圖像和 JavaScript 的 HTML 文件)直接轉換為 PDF 文件。 這非常適合在建立 PDF 時使用動態網頁內容。 *支援現代 HTML/CSS* :IronPDF可處理現代 HTML5CSS3JavaScript ,確保您的 Web 內容能夠準確地渲染為 PDF。 這樣可以保留版面配置、字體和互動式 HTML 元素。 它甚至可以將 HTML 內容(例如 HTML 表單)直接轉換為易於共享和填寫的 PDF 表單。 進階渲染**:它使用 Chrome 的渲染引擎(透過 Chromium)產生精確、高品質的 PDF ,使其比許多其他 HTML 轉 PDF 庫更可靠。 *網站 URL 轉 PDF :IronPDF 可以接受網站的 URL 字串作為輸入,並將其轉換為 PDF

2.自訂頁首和頁尾

  • IronPDF 允許開發人員在 PDF 文件中添加自訂頁首和頁腳,其中可以包含動態內容,例如頁碼、文件標題或自訂文字。
  • 頁首和頁尾可以新增至單一頁面,也可以作為整個文件中的統一元素。
  1. PDF 中對 JavaScript 的支持
    • IronPDF 允許在生成 PDF 之前在 HTML 內容中執行JavaScript 。 這樣就可以在產生的 PDF 中實現動態內容渲染,例如表單計算或互動功能。
    • 當從動態網頁建立 PDF 或產生需要客戶端邏輯的報表時,JavaScript 就非常有用。

4.編輯現有PDF文件

  • IronPDF 提供編輯現有 PDF 檔案的功能。 您可以修改 PDF 頁面大小、文字、圖像,並為現有 PDF 檔案添加註釋。 此功能可用於在文件中新增浮水印、新增簽名或更新 PDF 文件內的內容。
  • 文字擷取和修改功能可讓您以程式設計方式操作 PDF 文件中的內容。

5.合併和拆分 PDF

  • IronPDF 讓您可以將多個 PDF 文件合併到一個文件中,或將一個大的 PDF 文件分割成更小的文件。 這非常適合需要將文件合併或分解成更易於管理的部分的工作流程。

6.對互動表單的支持

  • 您可以使用 IronPDF 建立、填寫和操作PDF 表單。 它為互動式表單(如文字欄位、複選框和單選按鈕)提供全面支持,並允許您預先填入表單資料。
  • IronPDF 還允許從現有 PDF 中提取表單數據,從而可以輕鬆地以程式設計方式讀取和處理表單數據。

7.頁面操作

  • IronPDF 提供了多種方法來操作 PDF 文件中的單一頁面,例如旋轉頁面、刪除頁面或重新排列頁面。 這有助於自訂最終文件的結構。
  • 您也可以為現有 PDF 檔案新增頁面,或刪除不需要的頁面。

8.安全性和加密

  • IronPDF 讓您對 PDF 套用密碼保護和加密,確保您的文件安全無虞。 您可以設定使用者權限,例如禁止列印、複製或編輯 PDF 檔案。
  • 還可以在 PDF 文件中添加數位簽章以驗證其真實性,為敏感文件提供一層安全性。

9.水印和品牌推廣 使用 IronPDF 可以輕鬆地為 PDF 文件添加浮水印。 您可以將文字或圖片疊加為浮水印到頁面上,從而防止未經授權的複製或散佈您的文件。

  • 此功能通常用於品牌推廣,其中徽標或文字需要在文件的所有頁面上保持一致的顯示效果。

10.文字和圖像提取

  • IronPDF 允許從 PDF 文件中提取文字和圖像,使開發人員能夠提取資料進行處理或重複使用。
  • 這對於需要分析 PDF 內容、從表單中提取資訊或檢索影像以供進一步使用的場景非常有用。
  1. Unicode 和多語言支持
    • IronPDF 具有強大的Unicode 支持,這意味著它可以處理國際字元和字體,使其成為生成多種語言 PDF 的理想選擇。
    • 它支援中文、阿拉伯語、俄語等多種語言,可以建立多語言 PDF 文件。

12.性能優化

  • IronPDF 針對效能進行了最佳化,能夠處理大型 PDF 文件和大量請求。 該庫確保即使在處理大型資料集或影像時,PDF 生成也能保持快速且有效率。
  1. API 和開發者友善工具
    • IronPDF 配備了全面且易於使用的 API。 開發者可以透過簡單的方法呼叫快速上手,執行複雜的任務。
    • 此 API 文件齊全,可輕鬆將 IronPDF 整合到任何 C# 或 .NET 應用程式中。

14.跨平台支持

  • IronPDF 具有跨平台相容性,這意味著它可以在WindowsMacLinux和其他開發環境中使用,讓您在不同的作業系統上產生和操作 PDF。

IronPDF 的應用案例

1.發票生成 許多企業使用 IronPDF 從動態數據中產生專業發票。 嵌入 CSS 樣式的 HTML 範本被渲染成 PDF 發票,然後將發票傳送給客戶。

2.報告和數據分析 IronPDF 非常適合根據資料來源建立詳細報告。 您可以將資料與 HTML 範本結合,新增圖表,並將其渲染為 PDF 文件,從而產生自訂報告,以便共享或列印。

3.法律和合約文件

  • 律師事務所使用 IronPDF 產生合約、法律協議和其他類型的文件。其添加數位簽章和加密保護文件的功能,使其尤其適用於法律工作流程。

4.教育材料 教育機構使用 IronPDF 建立和分發 PDF 文件,例如證書、課堂材料和講義,這些文件格式統一且專業。

5.表格和調查

  • IronPDF 的表單處理功能對於產生調查、問卷或任何其他類型的互動式表單都非常有用。 資料可以預先填寫,表單回覆可以擷取和處理。

步驟 1:建立一個新的 Visual Studio 項目

首先,開啟 Visual Studio 並建立一個新項目,如下所示:

! HTML 轉 PDF C# - IronPDF 完整指南:圖 1

選擇建立控制台應用程式:

! HTML 轉 PDF C# - IronPDF 完整指南:圖 2

請提供項目名稱和地點:

! HTML 轉 PDF C# - IronPDF 完整指南:圖 3

選擇.NET版本:

! HTML 轉 PDF C# - IronPDF 完整指南:圖 4

點選"建立"按鈕完成專案建立:

步驟 2:從 NuGet 套件管理器新增 IronPDF 庫

在開始將 HTML 轉換為 PDF之前,您需要安裝 IronPDF 庫。 您可以使用 Visual Studio 中的 NuGet 套件管理器來完成此操作,也可以在套件管理器控制台中執行下列命令:

此外,也可以使用 Visual Studio 套件管理器安裝 IronPDF。

! HTML 轉 PDF C# - IronPDF 完整指南:圖 5

步驟 3:將 HTML 字串轉換為 PDF 文件

以下是HTML轉PDF轉換器應用程式的程式碼。 這裡使用 HTML 字串作為輸入,並將其轉換為 PDF。 您可以使用相同的步驟將 HTML 檔案轉換為 PDF,只需額外新增一個步驟來讀取 HTML 檔案的內容。

using IronPdf;

class Program
{
    static void Main()
    {
        // Specify license key
        IronPdf.License.LicenseKey = "Your Key";

        // Create a new ChromePdfRenderer object
        var Renderer = new ChromePdfRenderer();

        // Define the HTML string to be converted
        string htmlContent = "<html><body><h1>IronPDF: An Awesome PDF Generation Library</h1></body></html>";

        // Convert HTML string to a PDF document
        var document = Renderer.RenderHtmlAsPdf(htmlContent);

        // Save the PDF document to a file
        document.SaveAs("html2Pdf.pdf");
    }
}
using IronPdf;

class Program
{
    static void Main()
    {
        // Specify license key
        IronPdf.License.LicenseKey = "Your Key";

        // Create a new ChromePdfRenderer object
        var Renderer = new ChromePdfRenderer();

        // Define the HTML string to be converted
        string htmlContent = "<html><body><h1>IronPDF: An Awesome PDF Generation Library</h1></body></html>";

        // Convert HTML string to a PDF document
        var document = Renderer.RenderHtmlAsPdf(htmlContent);

        // Save the PDF document to a file
        document.SaveAs("html2Pdf.pdf");
    }
}
Imports IronPdf

Friend Class Program
	Shared Sub Main()
		' Specify license key
		IronPdf.License.LicenseKey = "Your Key"

		' Create a new ChromePdfRenderer object
		Dim Renderer = New ChromePdfRenderer()

		' Define the HTML string to be converted
		Dim htmlContent As String = "<html><body><h1>IronPDF: An Awesome PDF Generation Library</h1></body></html>"

		' Convert HTML string to a PDF document
		Dim document = Renderer.RenderHtmlAsPdf(htmlContent)

		' Save the PDF document to a file
		document.SaveAs("html2Pdf.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

程式碼片段解釋

*許可證密鑰設定

  • 程式首先設定 IronPDF 許可證金鑰,以啟用庫的全部功能。 *建立渲染器
  • 建立ChromePdfRenderer實例。 這是負責將 HTML 渲染成 PDF 文件的元件。 它本質上充當了 HTML 內容和生成的 PDF 之間的橋樑。
    • HTML 內容
  • 定義了一個字串變數 htmlContent,其中包含要轉換為 PDF 的 HTML 程式碼。 在這種情況下,它是一個帶有標題的簡單 HTML 結構。
    • HTML 轉 PDF
  • 使用 HTML 字串呼叫 Renderer.RenderHtmlAsPdf() 方法來產生 PDF 文件。 此方法處理 HTML 內容並將其轉換為 PDF 格式。 *儲存 PDF 檔案
  • 使用 SaveAs() 方法將產生的 PDF 文件儲存到名為"html2Pdf.pdf"的檔案中。 這會將新建立的 PDF 檔案儲存到磁碟上。

輸出 PDF

! HTML 轉 PDF C# - IronPDF 完整指南:圖 6

第四步:新增頁首和頁尾

using IronPdf;

class Program
{
    static void Main()
    {
        IronPdf.License.LicenseKey = "your key";

        // Create a new ChromePdfRenderer object
        var Renderer = new ChromePdfRenderer();

        // Define HTML content
        string htmlContent = "<html><body><h1>IronPDF: An Awesome PDF Generation Library</h1><h1>Report</h1><p>This is a sample report.</p></body></html>";

        // Define header and footer HTML
        string headerHtml = "<div style='text-align: right;'>Page {page} of {total-pages}</div>";
        string footerHtml = "<div style='text-align: center;'>Confidential</div>";

        // Convert the HTML content to a PDF document
        var pdfDocument = Renderer.RenderHtmlAsPdf(htmlContent);

        // Add headers and footers to the PDF document
        pdfDocument.AddHtmlHeadersAndFooters(new ChromePdfRenderOptions
        {
            HtmlHeader= new HtmlHeaderFooter() { HtmlFragment=headerHtml },
            HtmlFooter = new HtmlHeaderFooter() { HtmlFragment=footerHtml }
        });

        // Save the PDF document to a file
        pdfDocument.SaveAs("report.pdf");
    }
}
using IronPdf;

class Program
{
    static void Main()
    {
        IronPdf.License.LicenseKey = "your key";

        // Create a new ChromePdfRenderer object
        var Renderer = new ChromePdfRenderer();

        // Define HTML content
        string htmlContent = "<html><body><h1>IronPDF: An Awesome PDF Generation Library</h1><h1>Report</h1><p>This is a sample report.</p></body></html>";

        // Define header and footer HTML
        string headerHtml = "<div style='text-align: right;'>Page {page} of {total-pages}</div>";
        string footerHtml = "<div style='text-align: center;'>Confidential</div>";

        // Convert the HTML content to a PDF document
        var pdfDocument = Renderer.RenderHtmlAsPdf(htmlContent);

        // Add headers and footers to the PDF document
        pdfDocument.AddHtmlHeadersAndFooters(new ChromePdfRenderOptions
        {
            HtmlHeader= new HtmlHeaderFooter() { HtmlFragment=headerHtml },
            HtmlFooter = new HtmlHeaderFooter() { HtmlFragment=footerHtml }
        });

        // Save the PDF document to a file
        pdfDocument.SaveAs("report.pdf");
    }
}
Imports IronPdf

Friend Class Program
	Shared Sub Main()
		IronPdf.License.LicenseKey = "your key"

		' Create a new ChromePdfRenderer object
		Dim Renderer = New ChromePdfRenderer()

		' Define HTML content
		Dim htmlContent As String = "<html><body><h1>IronPDF: An Awesome PDF Generation Library</h1><h1>Report</h1><p>This is a sample report.</p></body></html>"

		' Define header and footer HTML
		Dim headerHtml As String = "<div style='text-align: right;'>Page {page} of {total-pages}</div>"
		Dim footerHtml As String = "<div style='text-align: center;'>Confidential</div>"

		' Convert the HTML content to a PDF document
		Dim pdfDocument = Renderer.RenderHtmlAsPdf(htmlContent)

		' Add headers and footers to the PDF document
		pdfDocument.AddHtmlHeadersAndFooters(New ChromePdfRenderOptions With {
			.HtmlHeader= New HtmlHeaderFooter() With {.HtmlFragment=headerHtml},
			.HtmlFooter = New HtmlHeaderFooter() With {.HtmlFragment=footerHtml}
		})

		' Save the PDF document to a file
		pdfDocument.SaveAs("report.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

程式碼片段解釋

1.許可證密鑰設定

  • IronPdf.License.LicenseKey已設定了您唯一的 IronPDF 授權金鑰,以啟用庫的全部功能。 2.建立 PDF 渲染器
  • 建立ChromePdfRenderer實例,該實例將用於將 HTML 內容渲染為 PDF 格式。 這是IronPDF渲染引擎的一部分。 3.定義 HTML 內容
  • 建立一個簡單的 HTML 字串,其中包含標題、報告標題和範例報告段落。 4.定義頁首和頁尾的HTML程式碼
    • 在上述程式碼中,我們指定了自訂的頁首和頁尾 HTML 字串*頁首*包含頁碼,格式為"第 {page} 頁,共 {total-pages} 頁",右對齊。 頁腳**包含居中對齊的"機密"字樣。
      1. HTML 轉 PDF
  • 呼叫RenderHtmlAsPdf()方法將 HTML 內容轉換為 PDF 文件。 6.新增頁首和頁尾
  • pdfDocument物件呼叫 AddHtmlHeadersAndFooters() 方法。 此方法會將先前定義的頁首和頁尾新增至產生的 PDF 中。 ChromePdfRenderOptions 用於傳遞頁首和頁尾設定。 7.保存 PDF 檔: 最後,使用SaveAs()方法將產生的 PDF 儲存到磁碟上名為"report.pdf"的檔案中。

輸出 PDF

! HTML 轉 PDF C# - IronPDF 完整指南:圖 7

第五步:包含外部樣式表和腳本

using IronPdf;

class Program
{
    static void Main()
    {
        IronPdf.License.LicenseKey = "your key";

        // Create a new ChromePdfRenderer object
        var Renderer = new ChromePdfRenderer();

        // Define the HTML content with links to external CSS and JS files
        string htmlContent = @"
            <html>
            <head>
                <link rel='stylesheet' type='text/css' href='styles.css'>
                <script src='script.js'></script>
            </head>
            <body>
                <h1>IronPDF: An Awesome PDF Generation Library</h1>
                <h1>Styled Content</h1>
                <p id='dynamic-text'>This content is styled using an external CSS file and JavaScript.</p>
            </body>
            </html>";

        // Convert HTML content to a PDF document
        var pdfDocument = Renderer.RenderHtmlAsPdf(htmlContent);

        // Save the PDF document to a file
        pdfDocument.SaveAs("awesomeIronPDF_styled_content.pdf");
    }
}
using IronPdf;

class Program
{
    static void Main()
    {
        IronPdf.License.LicenseKey = "your key";

        // Create a new ChromePdfRenderer object
        var Renderer = new ChromePdfRenderer();

        // Define the HTML content with links to external CSS and JS files
        string htmlContent = @"
            <html>
            <head>
                <link rel='stylesheet' type='text/css' href='styles.css'>
                <script src='script.js'></script>
            </head>
            <body>
                <h1>IronPDF: An Awesome PDF Generation Library</h1>
                <h1>Styled Content</h1>
                <p id='dynamic-text'>This content is styled using an external CSS file and JavaScript.</p>
            </body>
            </html>";

        // Convert HTML content to a PDF document
        var pdfDocument = Renderer.RenderHtmlAsPdf(htmlContent);

        // Save the PDF document to a file
        pdfDocument.SaveAs("awesomeIronPDF_styled_content.pdf");
    }
}
Imports IronPdf

Friend Class Program
	Shared Sub Main()
		IronPdf.License.LicenseKey = "your key"

		' Create a new ChromePdfRenderer object
		Dim Renderer = New ChromePdfRenderer()

		' Define the HTML content with links to external CSS and JS files
		Dim htmlContent As String = "
            <html>
            <head>
                <link rel='stylesheet' type='text/css' href='styles.css'>
                <script src='script.js'></script>
            </head>
            <body>
                <h1>IronPDF: An Awesome PDF Generation Library</h1>
                <h1>Styled Content</h1>
                <p id='dynamic-text'>This content is styled using an external CSS file and JavaScript.</p>
            </body>
            </html>"

		' Convert HTML content to a PDF document
		Dim pdfDocument = Renderer.RenderHtmlAsPdf(htmlContent)

		' Save the PDF document to a file
		pdfDocument.SaveAs("awesomeIronPDF_styled_content.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

style.css

/* styles.css */
body {
    font-family: Arial, sans-serif;
    margin: 20px;
}

h1 {
    color: #007BFF;
}

p {
    font-size: 14px;
    line-height: 1.6;
}

script.js

// script.js
document.addEventListener('DOMContentLoaded', function() {
    var dynamicText = document.getElementById('dynamic-text');
    dynamicText.textContent = "This content has been modified by JavaScript.";
});
// script.js
document.addEventListener('DOMContentLoaded', function() {
    var dynamicText = document.getElementById('dynamic-text');
    dynamicText.textContent = "This content has been modified by JavaScript.";
});
JAVASCRIPT

程式碼解釋

此程式碼示範如何在 C# 中使用 IronPDF 從包含指向外部 CSSJavaScript檔案的連結的 HTML 內容產生 PDF。 它展示瞭如何建立具有樣式內容和動態行為(透過 JavaScript)的 PDF。

1.許可證密鑰設定

  • IronPdf.License.LicenseKey設定為您唯一的 IronPDF 授權金鑰,讓您存取 IronPDF 庫的全部功能。

2.使用外部資源定義 HTML 內容

  • HTML 字串定義如下: *指向外部 CSS 檔案(styles.css)的鏈接*,用於設定內容樣式。 指向外部 JavaScript 檔案 (script.js) 的鏈接**,該檔案可以為內容添加動態功能。
  • HTML 內容包含標題(<h1> )、副標題和段落(<p> ) 具有 ID dynamic-text ,其樣式由外部 CSS 設定,並可能由 JavaScript 修改。

3.將 HTML 渲染為 PDF

  • 呼叫Renderer.RenderHtmlAsPdf()方法將 HTML 內容(包括連結的 CSS 和 JavaScript)轉換為 PDF 文件。 請注意,如果外部資源(例如 CSS 和 JavaScript)可存取(例如文件託管在本機或遠端),IronPDF 可以處理這些資源。

4.保存 PDF 檔案

  • 使用SaveAs()方法將產生的 PDF 文件儲存到名為"awesomeIronPDF_styled_content.pdf"的檔案中。

筆記

*外部 CSS 和 JS 檔案:為確保連結有效, styles.cssscript.js檔案應在程式碼運行的環境中可存取。 如果檔案位於本機,請確保它們位於正確的目錄中,或提供檔案的完整路徑。

  • PDF 中的 JavaScript :IronPDF 可以渲染使用 JavaScript 實作頁面行為的內容。 但要注意的是,JavaScript 在靜態 PDF 檔案中可能無法如預期執行,因為 PDF 檔案本質上不像網頁那樣是動態的。 IronPDF 主要使用 JavaScript 在生成 PDF 之前渲染內容,因此在 PDF 建立之後,透過 JavaScript 進行動態內容操作可能無法正常運作。

輸出 PDF

! HTML 轉 PDF C# - IronPDF 完整指南:圖 8

授權資訊(提供試用版)

要開始使用 IronPDF,您可以獲得試用許可證。 將其添加到程式碼開頭,如下所示:

IronPdf.License.LicenseKey = "your key";
IronPdf.License.LicenseKey = "your key";
IronPdf.License.LicenseKey = "your key"
$vbLabelText   $csharpLabel

結論

IronPDF是一個功能強大且用途廣泛的庫,可以輕鬆地將 HTML 轉換為 PDF。 無論您需要產生簡單的文件還是包含動態內容的複雜報告,IronPDF 都能滿足您的需求。 IronPDF 擁有易於使用的 API,並支援頁首、頁尾和外部資源等高級功能,對於希望從 HTML 內容創建高品質 PDF 文件的開發人員來說,它是一款非常寶貴的工具。 在下一個專案中嘗試一下,體驗輕鬆將 HTML 轉換為 PDF 的便利性。