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
- 建立一個新的 Visual Studio 專案。
- 從 NuGet 套件管理器新增 IronPDF 庫。
- 將 HTML 字串轉換為 PDF 檔案。
- 新增頁首和頁尾。
- 包含外部樣式表和腳本。
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 的主要特點
- HTML 轉 PDF
- HTML 渲染: IronPDF可以將 HTML 檔案、內容或整個網頁(包括帶有 CSS、圖像和 JavaScript 的 HTML 文件)直接轉換為 PDF 文件。 這非常適合在建立 PDF 時使用動態網頁內容。 *支援現代 HTML/CSS* :IronPDF可處理現代 HTML5 、 CSS3和JavaScript ,確保您的 Web 內容能夠準確地渲染為 PDF。 這樣可以保留版面配置、字體和互動式 HTML 元素。 它甚至可以將 HTML 內容(例如 HTML 表單)直接轉換為易於共享和填寫的 PDF 表單。 進階渲染**:它使用 Chrome 的渲染引擎(透過 Chromium)產生精確、高品質的 PDF ,使其比許多其他 HTML 轉 PDF 庫更可靠。 *網站 URL 轉 PDF :IronPDF 可以接受網站的 URL 字串作為輸入,並將其轉換為 PDF 。
2.自訂頁首和頁尾
- IronPDF 允許開發人員在 PDF 文件中添加自訂頁首和頁腳,其中可以包含動態內容,例如頁碼、文件標題或自訂文字。
- 頁首和頁尾可以新增至單一頁面,也可以作為整個文件中的統一元素。
- 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 內容、從表單中提取資訊或檢索影像以供進一步使用的場景非常有用。
- Unicode 和多語言支持
- IronPDF 具有強大的Unicode 支持,這意味著它可以處理國際字元和字體,使其成為生成多種語言 PDF 的理想選擇。
- 它支援中文、阿拉伯語、俄語等多種語言,可以建立多語言 PDF 文件。
12.性能優化
- IronPDF 針對效能進行了最佳化,能夠處理大型 PDF 文件和大量請求。 該庫確保即使在處理大型資料集或影像時,PDF 生成也能保持快速且有效率。
- API 和開發者友善工具
- IronPDF 配備了全面且易於使用的 API。 開發者可以透過簡單的方法呼叫快速上手,執行複雜的任務。
- 此 API 文件齊全,可輕鬆將 IronPDF 整合到任何 C# 或 .NET 應用程式中。
14.跨平台支持
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。
步驟 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程式碼片段解釋
*許可證密鑰設定:
- 程式首先設定 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
第四步:新增頁首和頁尾
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程式碼片段解釋
1.許可證密鑰設定:
IronPdf.License.LicenseKey已設定了您唯一的 IronPDF 授權金鑰,以啟用庫的全部功能。 2.建立 PDF 渲染器:- 建立
ChromePdfRenderer實例,該實例將用於將 HTML 內容渲染為 PDF 格式。 這是IronPDF渲染引擎的一部分。 3.定義 HTML 內容: - 建立一個簡單的 HTML 字串,其中包含標題、報告標題和範例報告段落。 4.定義頁首和頁尾的HTML程式碼:
- 在上述程式碼中,我們指定了自訂的頁首和頁尾 HTML 字串: *頁首*包含頁碼,格式為"第 {page} 頁,共 {total-pages} 頁",右對齊。 頁腳**包含居中對齊的"機密"字樣。
- HTML 轉 PDF :
- 在上述程式碼中,我們指定了自訂的頁首和頁尾 HTML 字串: *頁首*包含頁碼,格式為"第 {page} 頁,共 {total-pages} 頁",右對齊。 頁腳**包含居中對齊的"機密"字樣。
- 呼叫
RenderHtmlAsPdf()方法將 HTML 內容轉換為 PDF 文件。 6.新增頁首和頁尾: - 對pdfDocument物件呼叫 AddHtmlHeadersAndFooters() 方法。 此方法會將先前定義的頁首和頁尾新增至產生的 PDF 中。 ChromePdfRenderOptions 用於傳遞頁首和頁尾設定。 7.保存 PDF 檔: 最後,使用
SaveAs()方法將產生的 PDF 儲存到磁碟上名為"report.pdf"的檔案中。
輸出 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");
}
}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 Classstyle.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.";
});程式碼解釋
此程式碼示範如何在 C# 中使用 IronPDF 從包含指向外部 CSS和JavaScript檔案的連結的 HTML 內容產生 PDF。 它展示瞭如何建立具有樣式內容和動態行為(透過 JavaScript)的 PDF。
1.許可證密鑰設定:
IronPdf.License.LicenseKey設定為您唯一的 IronPDF 授權金鑰,讓您存取 IronPDF 庫的全部功能。
2.使用外部資源定義 HTML 內容:
- HTML 字串定義如下: *指向外部 CSS 檔案(styles.css)的鏈接*,用於設定內容樣式。 指向外部 JavaScript 檔案 (script.js) 的鏈接**,該檔案可以為內容添加動態功能。
- HTML 內容包含標題(
<h1>)、副標題和段落(<p>) 具有 IDdynamic-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.css和script.js檔案應在程式碼運行的環境中可存取。 如果檔案位於本機,請確保它們位於正確的目錄中,或提供檔案的完整路徑。
- PDF 中的 JavaScript :IronPDF 可以渲染使用 JavaScript 實作頁面行為的內容。 但要注意的是,JavaScript 在靜態 PDF 檔案中可能無法如預期執行,因為 PDF 檔案本質上不像網頁那樣是動態的。 IronPDF 主要使用 JavaScript 在生成 PDF 之前渲染內容,因此在 PDF 建立之後,透過 JavaScript 進行動態內容操作可能無法正常運作。
輸出 PDF
授權資訊(提供試用版)
要開始使用 IronPDF,您可以獲得試用許可證。 將其添加到程式碼開頭,如下所示:
IronPdf.License.LicenseKey = "your key";IronPdf.License.LicenseKey = "your key";IronPdf.License.LicenseKey = "your key"結論
IronPDF是一個功能強大且用途廣泛的庫,可以輕鬆地將 HTML 轉換為 PDF。 無論您需要產生簡單的文件還是包含動態內容的複雜報告,IronPDF 都能滿足您的需求。 IronPDF 擁有易於使用的 API,並支援頁首、頁尾和外部資源等高級功能,對於希望從 HTML 內容創建高品質 PDF 文件的開發人員來說,它是一款非常寶貴的工具。 在下一個專案中嘗試一下,體驗輕鬆將 HTML 轉換為 PDF 的便利性。