使用IRON SUITE

HTML到PDF C# - 使用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文檔的網絡應用程式特別有用。

該程式庫允許開發人員將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或生成需要客戶端邏輯的報告時非常有用。
  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內容、從表單中提取信息或檢索圖像以便進一步使用的情況來說非常有用。
  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從動態數據生成專業的發票。 嵌入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套件管理器安裝,或者在套件管理器控制台中運行以下命令:

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

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

第三步:將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到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授權密鑰設置IronPdf.License.LicenseKey,以啟用程式庫的全部功能。
  2. 創建PDF渲染器
    • 創建一個ChromePdfRenderer實例,將用於將HTML內容呈現為PDF格式。 這是IronPDF渲染引擎的一部分。
  3. 定義HTML內容
    • 創建一個簡單的HTML字串,包含標題、報告頁首和示例報告段落。
  4. 定義頁眉和頁腳HTML
    • 在上述代碼中,我們已指定自訂的頁首和頁尾HTML字串
      • 頁首包含頁碼格式如"第{page}頁,共{total-pages}頁"並對齊在右側。
      • 頁尾包含每頁居中的"機密"字樣。
  5. 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>)、一個副標題和一個帶有ID dynamic-text 的段落(<p>),這些由外部CSS進行樣式化,並有可能由JavaScript進行修改。
  3. 將HTML渲染為PDF

    • 調用Renderer.RenderHtmlAsPdf()方法,將包含鏈接到的CSS和JavaScript的HTML內容轉換為PDF文件。 請注意,如果外部資源(如CSS和JavaScript)是可訪問的,例如當文件在本地或遠程託管時,IronPDF可以處理這些資源。
  4. 保存PDF
    • 使用SaveAs()方法將生成的PDF文檔保存為名為"awesomeIronPDF_styled_content.pdf"的文件。

注意事項

  • 外部CSS和JS文件:要確保鏈接有效,styles.cssscript.js 文件應在代碼運行的環境中是可以訪問的。 如果文件是本地的,請確保它們位於正確的目錄中,或者提供文件的完整路徑。
  • PDF中的JavaScript:IronPDF可以渲染使用JavaScript進行頁面行為的內容。 然而,需要注意的是,在靜態PDF文件中,JavaScript可能無法如預期般執行,因為PDF並不是像網頁那樣具有動態性。 IronPDF主要在PDF生成前使用JavaScript渲染內容,因此生成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都能滿足您的需求。 憑藉其易於使用的API和對頁首、頁尾和外部資源等高級功能的支持,IronPDF是開發人員從HTML內容創建高質量PDF文檔的寶貴工具。 在您下一個專案中試試它,體驗無縫HTML到PDF轉換的便利。