使用IRON SUITE

HTML to PDF C# - A Complete Guide with IronPDF

介紹

在當今數位時代,將HTML轉換為PDF是開發者的常見需求。 無論是生成報告、發票、法律文件,還是存檔網頁內容,生成一致且專業的PDF可能是具挑戰性的。

傳統上,這個過程需要手動處理PDF結構、複雜的佈局計算以及大量編碼,使其耗時且易錯。 現代.NET開發者需要一個可靠的解決方案,以簡化PDF生成,同時保持準確性和靈活性。 此外,找到一個全面支持JavaScript和CSS的程式庫,能極大地改善渲染的PDF文件質量。 這就是我們今天要探討的程式庫IronPDF的作用所在。

在下面的部分中,我們將探討如何使用IronPDF在C#中將HTML轉換為PDF,這個程式庫能讓這個過程變得簡化,並與.NET應用程式無縫整合。 在本指南的結尾,您將能夠在您的.NET專案中完美執行HTML到PDF的轉換。

How to convert HTML to PDF C

  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環境。 利用基於Chrome的渲染引擎,IronPDF將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,確保您的基於網頁的內容準確呈現為PDF。 這可以保留佈局、字體和互動HTML元素。 它甚至可以直接將HTML內容如HTML表單轉換為易於分享和填寫的PDF表單。
    • 高級渲染:它使用Chrome的渲染引擎(通過Chromium)進行準確且高質量的PDF生成,使其比許多其他HTML到PDF程式庫更可靠。
    • 網站URL到PDF:IronPDF可以將網站的字串URL作為輸入並轉換為PDF
  2. 自定義頁眉和頁腳

    • IronPDF允許開發者向PDF文件新增自定義頁眉和頁腳,可以包含動態內容,如頁碼、文件標題或自定義文字。
    • 頁眉和頁腳可以新增到單個頁面,或作為整個文件中的一致元素。
  3. 支持PDF中的JavaScript

    • IronPDF允許在PDF生成前在HTML內容中執行JavaScript。 這使得動態內容渲染成為可能,例如表單計算或在生成的PDF中的互動性。 JavaScript在從動態網頁建立PDF或生成需要client-side邏輯的報告時非常有用。
  4. 編輯現有的PDFs

    • IronPDF提供了編輯現有PDF的能力。 您可以修改PDF頁面大小、文字、圖像,並向現有PDF文件新增註釋。 此功能對於在文件中新增水印、簽名或更新內容非常有用。
    • 文字提取和修改允許您以程式化的方式操作PDF文件中的內容。
  5. 合併和拆分PDFs

    • IronPDF允許您將多個PDF文件合併成一個文件,或將大型PDF拆分成較小的文件。 這是需要將文件組合或分解為更易管理部分的工作流程的理想選擇。
  6. 支持互動表單

    • 您可以使用IronPDF建立、填寫和操作PDF表單。 它提供對互動表單(如文字字段、複選框和單選按鈕)的完整支持,並允許您使用資料預填表單。
    • IronPDF還允許從現有PDF中提取表單資料,使表單資料的讀取和處理變得簡單。
  7. 頁面操作

    • IronPDF提供多種方法來操作PDF文件中的個別頁面,如旋轉、刪除或重新排序頁面。 這有助於客製化最終文件的結構。
    • 您也可以向現有PDF新增新頁面,或移除不需要的頁面。
  8. 安全性和加密

    • IronPDF允許您向PDF應用密碼保護和加密,以確保您的文件安全。 您可以設置使用者許可權,比如防止列印、複製或編輯PDF。
    • 也可以向PDF新增數位簽名以驗證真實性,為敏感文件提供安全保障。
  9. 水印和品牌標識

    • 使用IronPDF易於向PDF文件新增水印。 您可以將文字或圖像疊加為水印至頁面,以防止文件被未經授權的複製或分發。
    • 此功能常用於品牌宣傳,當標誌或文字需要在文件的所有頁面上出現時。
  10. 文字和圖像提取

    • IronPDF允許從PDF文件中提取文字和圖像,使開發者能夠提取資料以進行處理或重用。
    • 在需要分析PDF內容、從表單中提取資訊或檢索圖像以供再次使用的場景中尤為有用。
  11. Unicode和多語言支持

    • IronPDF擁有強大的Unicode支持,意味著它能處理國際字元和字體,成為生成多語言PDF的理想選擇。
    • 它支持例如中文、阿拉伯文、俄文等語言,允許建立多語言的PDF文件。
  12. 性能優化

    • IronPDF針對性能進行了優化,能夠處理大型PDF文件和大量的請求。 該程式庫可確保即使在處理大型資料集合或圖像時,PDF生成仍舊快速高效。
  13. API和對開發者友好的工具

    • IronPDF附帶全面且易於使用的API。 開發人員可以通過使用簡單的方法來快速開始進行複雜的任務。
    • 該API有詳細文件,便於將IronPDF整合到任何C#或.NET應用程式中。
  14. 多平台支持
    • IronPDF是跨平台相容的,意味著它可以在WindowsMacLinux和其他開發環境中使用,允許您在不同的操作系統中生成和操作PDF。

IronPDF的使用場景

  1. 發票生成

    • 許多企業利用IronPDF從動態資料生成專業發票。 HTML模板與嵌入的CSS樣式被渲染成PDF發票,然後發送給客戶。
  2. 報告和資料分析

    • IronPDF非常適合從資料源建立詳細報告。 您可以通過結合資料和HTML模板生成自訂報告,新增圖形並將其渲染為PDF以供分享或列印。
  3. 法律和合同文件

    • 法律條款使用IronPDF來生成合同、法律協議和其他文件型別。能夠新增數位簽名和用加密來保護文件,使其特別適合法律工作流程。
  4. 教育材料

    • 教育機構使用IronPDF建立和分發PDF,例如證書、課堂材料和具有一致且專業風格的講義。
  5. 表單和調查
    • IronPDF在處理表單方面的能力對生成調查問卷或任何其他型別的互動表單來說非常有價值。 資料可以預填寫,並能提取和處理表單反饋。

步驟1:建立一個新的Visual Studio專案

要開始,打開Visual Studio並建立一個如下所示的新專案:

HTML to PDF C# - A Complete Guide with IronPDF: Figure 1

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

HTML to PDF C# - A Complete Guide with IronPDF: Figure 2

提供專案名稱和位置:

HTML to PDF C# - A Complete Guide with IronPDF: Figure 3

選擇.NET版本:

HTML to PDF C# - A Complete Guide with IronPDF: Figure 4

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

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

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

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

HTML to PDF C# - A Complete Guide with IronPDF: Figure 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轉換
  • Renderer.RenderHtmlAsPdf()方法使用HTML字串生成PDF文件。 該方法處理HTML內容並轉換為PDF格式。
  • 保存PDF
  • 使用SaveAs()方法將生成的PDF文件保存為名為"html2Pdf.pdf"的文件。 這將新建立的PDF保存在磁盤上。

輸出PDF

HTML to PDF C# - A Complete Guide with IronPDF: Figure 6

步驟4:新增頁眉和頁腳

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 {page} of {total-pages}"的頁碼,右對齊。
    • 頁腳包括在每頁中心對齊的"機密"文字。
  5. HTML到PDF轉換
    • 調用RenderHtmlAsPdf()方法將HTML內容轉換為PDF文件。
  6. 新增頁眉和頁腳
    • pdfDocument物件上調用AddHtmlHeadersAndFooters()方法。 該方法將先前定義的頁眉和頁腳新增到生成的PDF中。 ChromePdfRenderOptions用於傳遞頁眉和頁腳設置。
  7. 保存PDF
    • 最後,使用SaveAs()方法將生成的PDF以"report.pdf"作為文件名保存到磁盤上。

輸出PDF

HTML to PDF C# - A Complete Guide with IronPDF: Figure 7

步驟5:包含外部樣式表和腳本

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內容包含一個標題(<p>),它們具有通過外部CSS設置的ID dynamic-text,並可能被JavaScript修改。
  3. HTML渲染到PDF

    • 調用Renderer.RenderHtmlAsPdf()方法將包括連結CSS和JavaScript的HTML內容轉換為PDF文件。 請注意,IronPDF可以處理可存取的外部資源,如CSS和JavaScript,如果這些資源是本地或遠程託管的。
  4. 保存PDF
    • 使用SaveAs()方法將生成的PDF文件以"awesomeIronPDF_styled_content.pdf"的名稱保存。

注意事項

  • 外部CSS和JS文件:為確保連結有效,script.js文件應在程式碼運行的環境中可存取。 如果文件位於本地,請確保它們在正確的目錄中或提供文件的完整路徑。
  • JavaScript在PDF中:IronPDF可以渲染使用JavaScript的頁面行為的內容。 然而,重要的是要注意,JavaScript可能不會在靜態PDF文件中按預期執行,因為PDF本質上不像網頁那樣是動態的。 IronPDF主要在生成PDF之前使用JavaScript來渲染內容,因此透過JavaScript操作的動態內容在PDF建立後可能不起作用。

輸出PDF

HTML to PDF C# - A Complete Guide with IronPDF: Figure 8

授權資訊(可試用)

若要開始使用IronPDF,您可以存取試用授權。 如下面所示,將它包含在程式碼開頭:

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

結論

IronPDF是一個強大且多功能的程式庫,讓HTML轉換為PDF變得輕而易舉。 無論您需要生成簡單文件還是包含動態內容的複雜報告,IronPDF都能滿足您的需求。 憑藉其易於使用的API和支持高級功能(如頁眉、頁腳和外部資源),IronPDF對於希望從HTML內容建立高質量PDF文件的開發者而言是不可或缺的工具。 在您的下一個專案中試試它,體驗輕鬆HTML到PDF轉換的便利。