HTML 到 PDF 的 C# 轉換

This article was translated from English: Does it need improvement?
Translated
View the article in English

作為IronPDF的開發者,我們了解使用IronPDF創建的PDF文件不僅需要完美的外觀,還需完全符合客戶的期望。 這個 C# PDF 教程將教您如何為您的 C# 應用程式、專案和網站構建一個 HTML 到 PDF 的轉換器。 我們將開發一個 C# HTML-to-PDF 轉換器,IronPDF 輸出的 PDF 文檔將與 Google Chrome 網頁瀏覽器生成的 PDF 完全相同。

IronPDF 功能:

  • 從 HTML、URL、JavaScript、CSS 和多種圖像格式生成 PDF

    • 添加頁首/頁尾、簽名、附件、密碼和安全性

    • 性能優化:全面支持多執行緒和異步

      概述


HTML 到 PDF 轉換器 (適用於 C# 和 VB.NET)

在 .NET 中以程式方式建立 PDF 檔案可能是令人沮喪的任務。 PDF 文件格式的設計更適合打印機,而非開發者。 而 C# 本身內建的適合用於 PDF 生成的庫或功能並不多,市面上的許多庫並不能開箱即用,並且在需要多行代碼來完成一個簡單任務時,會造成進一步的挫折。

在本教程中,我們將使用的 C# HTML 到 PDF 轉換工具是由 Iron Software 提供的 IronPDF,一個非常受歡迎的 C# PDF 生成和編輯庫。 此程式庫具有全面的 PDF 編輯和生成功能,完全開箱即用,以最少的代碼行數精確完成您的需求,並且擁有優秀的文檔,涵蓋其超過50項功能. IronPDF 的特點在於它支持 .NET 8, .NET 7, .NET 6 和 .NET 5、.NET Core、Standard 和 Framework,並可在 Windows、macOS、Linux、Docker、Azure 和 AWS 上運行。

使用 C# 和 IronPDF,邏輯為「生成 PDF 文件" 或 "HTML 轉換為 PDF"很簡單。" 由於 IronPDF 的先進 Chrome 渲染器,大多數或全部的 PDF 文件設計和布局將使用現有的 HTML 資源。

這種在 .NET 中使用 HTML5 動態生成 PDF 的方法同樣適用於控制台應用程式、Windows Forms 應用程式、WPF,以及網站和 MVC。

IronPDF 還支援使用 Chrome 對您的 HTML 進行調試,以實現完美像素的 PDF。 可以找到設定此項目的教程 這裡.**

IronPDF 在 .NET 生態系統內外以多種語言運行。

步驟 1

下載並安裝HTML到PDF的C#庫

C# NuGet 程式庫用于 PDF

安裝與 NuGet

Install-Package IronPdf
Java PDF JAR

下載 DLL

下載DLL

手動安裝到您的項目中

C# NuGet 程式庫用于 PDF

安裝與 NuGet

Install-Package IronPdf
Java PDF JAR

下載 DLL

下載DLL

手動安裝到您的項目中

立即開始在您的專案中使用IronPDF,並享受免費試用。

第一步:
green arrow pointer

查看 IronPDFNuget 快速安裝和部署。已被下載超過800萬次,它正用C#改變PDF。

C# NuGet 程式庫用于 PDF nuget.org/packages/IronPdf/
Install-Package IronPdf

請考慮安裝 IronPDF DLL 直接下載並手動安裝到您的專案或GAC表單: IronPdf.zip

手動安裝到您的項目中

下載DLL

Visual Studio - NuGet 套件管理器

在 Visual Studio 中,右鍵點擊專案方案總管並選擇 管理 NuGet 封裝...,然後只需搜索 IronPDF 並將最新版本安裝到您的方案中... 點擊任何出現的對話框中的確定。這在 VB.NET 項目中同樣有效。

Install-Package IronPdf

IronPDF在NuGet網站上

如需了解IronPDF的功能、相容性和下載的詳細情況,請查看NuGet官方網站上的IronPDF: https://www.nuget.org/packages/IronPdf

通過 DLL 安裝

另一個選項是直接安裝 IronPDF DLL。 IronPDF 可以從下載並手動安裝到專案或 GAC https://ironpdf.com/packages/IronPdf.zip


教程指引

在 C# .NET 中用 HTML 字串創建 PDF

如何:將 HTML 字串轉換為 PDF? 在 C# 中創建新的 PDF 文件是一項非常高效且有成就感的技能。

我們可以簡單地使用ChromePdfRenderer.RenderHtmlAsPdf將任何 HTML 轉換的方法(HTML5)將字串轉換成 PDF。 C# HTML 到 PDF 渲染 是由嵌入在 IronPDF DLL 中的完整功能版本的 Google Chromium 引擎完成的。

:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-1.cs
using IronPdf;

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1> Hello IronPdf </h1>");
pdf.SaveAs("pixel-perfect.pdf");
Imports IronPdf

Private renderer = New ChromePdfRenderer()
Private pdf = renderer.RenderHtmlAsPdf("<h1> Hello IronPdf </h1>")
pdf.SaveAs("pixel-perfect.pdf")
VB   C#

RenderHtmlAsPdf完全支持HTML5、CSS3、JavaScript和圖像。 如果這些資源位於硬碟上,我們可能希望將 RenderHtmlAsPdf 的第二個參數設置為資源的目錄。

IronPDF 將精確呈現您的 HTML,如同在 Chrome 中顯示。

我們有一個完整的教程,專門為您設置 Chrome 以進行完整的 HTML 調試,確保當您編輯 HTML、CSS 和 JavaScript 時,所見的變化與您選擇渲染的 IronPDF 輸出 PDF 完全像素一樣。 請在此處查看教程:如何在 Chrome 中除錯 HTML 以創建像素完美的 PDF.

BaseUrlPath:

:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-2.cs
using IronPdf;

// this will render C:\MyProject\Assets\image1.png
var pdf = renderer.RenderHtmlAsPdf("<img src='image1.png'/>", @"C:\MyProject\Assets\");
Imports IronPdf

' this will render C:\MyProject\Assets\image1.png
Private pdf = renderer.RenderHtmlAsPdf("<img src='image1.png'/>", "C:\MyProject\Assets\")
VB   C#

所有引用的 CSS 樣式表、圖像和 JavaScript 文件將相對於 BaseUrlPath,並可保持在整潔且合乎邏輯的結構中。 當然,您也可以選擇引用線上的圖片、樣式表和資產,包括像 Google 字體和 jQuery 這樣的網頁字體。


使用現有的 URL 匯出 PDF

URL 至 PDF

(URL 轉換為 PDF)請提供要翻譯的內容。

使用 C# 將現有的 URL 轉換成 PDF 十分高效且直觀。這也使團隊能夠將 PDF 的設計和後端 PDF 渲染工作分配給多個團隊。

在以下範例中,我們來渲染 Wikipedia.com 的一個頁面:

:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-3.cs
using IronPdf;

// Create a PDF from any existing web page
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/PDF");
pdf.SaveAs("wikipedia.pdf");
Imports IronPdf

' Create a PDF from any existing web page
Private renderer = New ChromePdfRenderer()
Private pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/PDF")
pdf.SaveAs("wikipedia.pdf")
VB   C#

您會注意到,由我們的 C# 程式碼生成的 PDF 中的超連結甚至 HTML 表單都得到了保留。

當渲染現有的網頁時,我們可能希望應用一些技巧:

列印和螢幕 CSS

在現代 CSS3 中,我們有針對列印和螢幕的 CSS 指令。 我們可以指導 IronPDF 渲染「列印」CSS,這些通常是簡化的或被忽略的。 預設情況下,將渲染 "Screen" CSS 樣式,這會IronPDF用戶認為最直觀的。

:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-4.cs
using IronPdf;
using IronPdf.Rendering;

renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Screen;
// or
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
Imports IronPdf
Imports IronPdf.Rendering

renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Screen
' or
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print
VB   C#

主頁:可以找到螢幕和打印的完整比較與圖像這裡.

JavaScript

IronPDF 支援 JavaScript、jQuery 甚至是 AJAX。 我們可能需要指示IronPDF 等待 JS 或 ajax在渲染我們網頁的快照之前結束運行。

:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-5.cs
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.RenderDelay(500); // milliseconds
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

我們可以通過呈現一個高級範例來展示符合 JavaScript 標準。d3.js JavaScript 弦圖表從像這樣的 CSV 數據集中:

:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-6.cs
using IronPdf;

// Create a PDF Chart a live rendered dataset using d3.js and javascript
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://bl.ocks.org/mbostock/4062006");
pdf.SaveAs("chart.pdf");
Imports IronPdf

' Create a PDF Chart a live rendered dataset using d3.js and javascript
Private renderer = New ChromePdfRenderer()
Private pdf = renderer.RenderUrlAsPdf("https://bl.ocks.org/mbostock/4062006")
pdf.SaveAs("chart.pdf")
VB   C#

響應式 CSS

使用回應式 CSS 在 .NET 中將 HTML 轉換為 PDF! 響應式網頁設計為在瀏覽器中查看。 IronPDF不會在您的伺服器操作系統中打開真實的瀏覽器窗口。 這可能導致響應式元素以最小尺寸進行渲染。

我們建議使用 Print CSS 媒體類型來解決此問題。 列印 CSS 通常不應該是響應式的。

:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-7.cs
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
VB   C#

從 HTML 頁面生成 PDF

我們也可以將任何 HTML 頁面渲染為硬碟上的 PDF。 所有相關的資產,如 CSS、圖片和 js,將會如同使用 file:// 協定開啟該文件一樣被渲染。

:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-8.cs
using IronPdf;

// Create a PDF from an existing HTML using C#
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlFileAsPdf("Assets/TestInvoice1.html");
pdf.SaveAs("Invoice.pdf");
Imports IronPdf

' Create a PDF from an existing HTML using C#
Private renderer = New ChromePdfRenderer()
Private pdf = renderer.RenderHtmlFileAsPdf("Assets/TestInvoice1.html")
pdf.SaveAs("Invoice.pdf")
VB   C#

此方法的優勢在於允許開發人員在開發過程中在瀏覽器中測試 HTML 內容。 我們建議使用 Chrome,因為它是 IronPDF 的渲染引擎所基於的網頁瀏覽器。

轉換XML 到 PDF 您可以使用 XSLT 模板將您的 XML 內容打印為 PDF。.


添加自訂頁首和頁尾

在呈現 PDF 或使用 IronPDF 修改現有 PDF 文件時,可以添加頁眉和頁腳。

使用 IronPDF,頁眉和頁腳可以透過 TextHeaderFooter 類別包含簡單的文字內容,或者使用 HtmlHeaderFooter 類別包含圖片和豐富的 HTML 內容。

:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-9.cs
using IronPdf;

// Create a PDF from an existing HTML
var renderer = new ChromePdfRenderer
{
    RenderingOptions =
    {
        MarginTop = 50, //millimeters
        MarginBottom = 50,
        CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print,
        TextHeader = new TextHeaderFooter
        {
            CenterText = "{pdf-title}",
            DrawDividerLine = true,
            FontSize = 16
        },
        TextFooter = new TextHeaderFooter
        {
            LeftText = "{date} {time}",
            RightText = "Page {page} of {total-pages}",
            DrawDividerLine = true,
            FontSize = 14
        }
    }
};

var pdf = renderer.RenderHtmlFileAsPdf("assets/TestInvoice1.html");
pdf.SaveAs("Invoice.pdf");

// This neat trick opens our PDF file so we can see the result
System.Diagnostics.Process.Start("Invoice.pdf");
Imports IronPdf

' Create a PDF from an existing HTML
Private renderer = New ChromePdfRenderer With {
	.RenderingOptions = {
		MarginTop = 50, MarginBottom = 50, CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print, TextHeader = New TextHeaderFooter With {
			.CenterText = "{pdf-title}",
			.DrawDividerLine = True,
			.FontSize = 16
		},
		TextFooter = New TextHeaderFooter With {
			.LeftText = "{date} {time}",
			.RightText = "Page {page} of {total-pages}",
			.DrawDividerLine = True,
			.FontSize = 14
		}
	}
}

Private pdf = renderer.RenderHtmlFileAsPdf("assets/TestInvoice1.html")
pdf.SaveAs("Invoice.pdf")

' This neat trick opens our PDF file so we can see the result
System.Diagnostics.Process.Start("Invoice.pdf")
VB   C#

在以下說明文章中探索所有渲染選項:如何使用渲染選項.

HTML 頁首和頁尾

HtmlHeaderFooter 類別允許使用 HTML5 內容生成豐富的頁首和頁尾,內容甚至可以包含圖片、樣式表和超連結。

:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-10.cs
using IronPdf;

renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
    HtmlFragment = "<div style='text-align:right'><em style='color:pink'>page {page} of {total-pages}</em></div>"
};
Imports IronPdf

renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter With {.HtmlFragment = "<div style='text-align:right'><em style='color:pink'>page {page} of {total-pages}</em></div>"}
VB   C#

PDF 頁首和頁尾中的動態數據

我們可以使用占位符將內容以「合併列印」的方式插入到文字甚至是頁首和頁尾的 HTML 中,例如:

  • {頁}目前頁碼
  • {總頁數}PDF 中的總頁數
  • {url}如果是從網頁渲染的PDF的URL
  • {日期}今天的日期
  • {時間}當前時間
  • {html-title}用於渲染 HTML 文件的 title 屬性
  • {pdf-標題}可透過 ChromePdfRenderOptions 設定的文件標題

C# HTML 到 PDF 轉換設定

我們的用戶和客戶可能期望 PDF 內容呈現的方式具有許多細微差別。

ChromePdfRenderer 類別包含一個 RenderingOptions 屬性,可用於設置這些選項。

例如,我們可能希望選擇只接受「print」樣式的 CSS3 指令:

:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-11.cs
using IronPdf;

renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
Imports IronPdf

renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
VB   C#

我們可能還想改變打印頁面的邊距大小,以創造更多的留白,為大標題或頁腳留出空間,甚至為了商業打印宣傳冊或海報而設置零邊距:

:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-12.cs
using IronPdf;

renderer.RenderingOptions.MarginTop = 50; // millimeters
renderer.RenderingOptions.MarginBottom = 50; // millimeters
Imports IronPdf

renderer.RenderingOptions.MarginTop = 50 ' millimeters
renderer.RenderingOptions.MarginBottom = 50 ' millimeters
VB   C#

我們可能希望開啟或關閉 HTML 元素的背景圖像:

:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-13.cs
using IronPdf;

renderer.RenderingOptions.PrintHtmlBackgrounds = true;
Imports IronPdf

renderer.RenderingOptions.PrintHtmlBackgrounds = True
VB   C#

我們也可以將輸出 PDF 設定為在任何虛擬紙張尺寸上呈現,包括縱向和橫向尺寸,甚至可自訂尺寸,以毫米或英寸設定。

:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-14.cs
using IronPdf;
using IronPdf.Rendering;

renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;
Imports IronPdf
Imports IronPdf.Rendering

renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape
VB   C#

在以下操作指南中探索所有渲染選項:如何使用渲染選項."


應用 HTML 樣板化

模板化或“大批量生成”PDF 是互聯網和網站開發人員的常見需求。

與其直接範本化 PDF 文件,我們可以使用 IronPDF 利用現有的且久經考驗的技術來範本化我們的 HTML。 當 HTML 範本與查詢字串或資料庫中的資料結合時,我們得到的是一個動態生成的 PDF 文件。

在最簡單的情況下,使用 C# 的 String.Format 方法對於基本範例是有效的。

:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-15.cs
using System;


String.Format("<h1>Hello {0} !</h1>", "World");
Imports System


String.Format("<h1>Hello {0} !</h1>", "World")
VB   C#

如果 HTML 文件較長,我們通常可以使用任意佔位符,例如 [[名稱]] 稍後再用真實數據替換它們。

以下示例將創建三個 PDF,每個都針對用戶進行個性化設置。

:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-16.cs
var htmlTemplate = "<p>[[NAME]]</p>";
var names = new[] { "John", "James", "Jenny" };
foreach (var name in names)
{
    var htmlInstance = htmlTemplate.Replace("[[NAME]]", name);
    var pdf = renderer.RenderHtmlAsPdf(htmlInstance);
    pdf.SaveAs(name + ".pdf");
}
Dim htmlTemplate = "<p>[[NAME]]</p>"
Dim names = { "John", "James", "Jenny" }
For Each name In names
	Dim htmlInstance = htmlTemplate.Replace("[[NAME]]", name)
	Dim pdf = renderer.RenderHtmlAsPdf(htmlInstance)
	pdf.SaveAs(name & ".pdf")
Next name
VB   C#

使用 Handlebars.NET 的高級模板技術

一種將 C# 資料與 HTML 合併以生成 PDF 的複雜方法是使用 Handlebars 模板標準。

Handlebars 使得可以從 C# 物件和類別實例(包括資料庫記錄)創建動態 HTML。 Handlebars 特別在查詢可能返回未知數量的行時效果卓越,例如在生成發票時。

我們必須首先在專案中添加一個額外的 NuGet 套件:https://www.nuget.org/packages/Handlebars.NET/

:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-17.cs
var source =
    @"<div class=""entry"">
        <h1>{{title}}</h1>
        <div class=""body"">
            {{body}}
        </div>
    </div>";
var template = Handlebars.Compile(source);

var data = (title: "My new post", body: "This is my first post!");

var result = template(data);

/* Would render:
<div class="entry">
  <h1>My New Post</h1>
  <div class="body">
    This is my first post!
  </div>
</div>
*/
Dim source = "<div class=""entry"">
        <h1>{{title}}</h1>
        <div class=""body"">
            {{body}}
        </div>
    </div>"
Dim template = Handlebars.Compile(source)

Dim data = (title:= "My new post", body:= "This is my first post!")

Dim result = template(data)

' Would render:
'<div class="entry">
'  <h1>My New Post</h1>
'  <div class="body">
'    This is my first post!
'  </div>
'</div>
'
VB   C#

要渲染此 HTML,我們可以簡單地使用 RenderHtmlAsPdf 方法。

:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-18.cs
using IronPdf;

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlInstance);
pdf.SaveAs("Handlebars.pdf");
Imports IronPdf

Private renderer = New ChromePdfRenderer()
Private pdf = renderer.RenderHtmlAsPdf(htmlInstance)
pdf.SaveAs("Handlebars.pdf")
VB   C#

您可以從 https://github.com/rexm/Handlebars.NET 學習更多關於 handlebars HTML 模板標準及其 C# 使用的信息。

使用 HTML5 添加分頁符號

在 PDF 文件中的一個常見需求是分頁。 開發者需要控制 PDF 頁面的開始和結束位置,以確保清晰且易讀的版面配置。

最簡單的方法是使用一個較少人知的 CSS 技巧,這將在任何打印的 HTML 文件中插入分頁符號。

<div style='page-break-after: always;'>&nbsp;</div>
<div style='page-break-after: always;'>&nbsp;</div>
HTML

提供的 HTML 可以運作,但不算是最佳做法。我們建議按照以下範例調整媒體屬性。 這是一種整潔有序的方式來佈置多頁 HTML 內容。

<!DOCTYPE html>
<html>
  <head>
    <style type="text/css" media="print">
      .page{
        page-break-after: always;
        page-break-inside: avoid;
      }
    </style>
  </head>
  <body>
    <div class="page">
      <h1>This is Page 1</h1>
    </div>
    <div class="page">
      <h1>This is Page 2</h1>
    </div>
    <div class="page">
      <h1>This is Page 3</h1>
    </div>
  </body>
</html>
<!DOCTYPE html>
<html>
  <head>
    <style type="text/css" media="print">
      .page{
        page-break-after: always;
        page-break-inside: avoid;
      }
    </style>
  </head>
  <body>
    <div class="page">
      <h1>This is Page 1</h1>
    </div>
    <div class="page">
      <h1>This is Page 2</h1>
    </div>
    <div class="page">
      <h1>This is Page 3</h1>
    </div>
  </body>
</html>
HTML

操作指南更多使用分頁符號的小技巧


將封面附加到 PDF 文件

IronPDF 使合併 PDF 文件變得簡單。 此技術最常見的用法是為現有的已渲染 PDF 文件添加封面或封底。

為此,我們首先渲染封面頁,然後使用PdfDocument.Merge()` 靜態方法來合併這兩個文件。

:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-19.cs
using IronPdf;

var pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf/");
var pdfMerged = PdfDocument.Merge(new PdfDocument("CoverPage.pdf"), pdf).SaveAs("Combined.Pdf");
Imports IronPdf

Private pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf/")
Private pdfMerged = PdfDocument.Merge(New PdfDocument("CoverPage.pdf"), pdf).SaveAs("Combined.Pdf")
VB   C#

這裡可以找到完整的程式碼範例:PDF 封面範例程式碼


添加浮水印

最後C# PDFIronPDF 支援的功能之一是為文件添加浮水印。 這可以用來在每頁文件上新增「機密」或「範本」的標示。

:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-20.cs
using IronPdf;
using IronPdf.Editing;

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf");
// Watermarks all pages with red "SAMPLE" text at a custom location.
// Also adding a link to the watermark on-click
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 0, VerticalAlignment.Middle, HorizontalAlignment.Center);
pdf.SaveAs(@"C:\Path\To\Watermarked.pdf");
Imports IronPdf
Imports IronPdf.Editing

Private renderer = New ChromePdfRenderer()
Private pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf")
' Watermarks all pages with red "SAMPLE" text at a custom location.
' Also adding a link to the watermark on-click
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 0, VerticalAlignment.Middle, HorizontalAlignment.Center)
pdf.SaveAs("C:\Path\To\Watermarked.pdf")
VB   C#

這裡可以找到完整的程式碼範例:PDF 水印程式碼範例


下載 C# 原始碼

本教程的完整免費 HTML 到 PDF 轉換器 C# 原始碼可作為壓縮的 Visual Studio 2022 專案文件下載。它將使用渲染引擎在 C# 中生成 PDF 文件物件。

下載此教學為 Visual Studio 專案

免費下載包含從 HTML 創建 PDF 所需的一切——包括用於以下內容的 C# PDF 代碼範例:

  1. 使用 C# 將 HTML 字串轉換為 PDF

  2. 將 HTML 檔案轉換為 PDF(C#)(支援 CSS、JavaScript 和影像)

  3. C# 使用網址將 HTML 轉換為 PDF("URL 轉換為 PDF")

  4. C# PDF 編輯和設置範例

  5. 將 JavaScript 畫布圖表(例如 d3.js)渲染為 PDF

  6. C# 的 PDF 函式庫

類別參考

開發人員也可能對IronPdf.PdfDocument類參考感興趣:

https://ironpdf.com/object-reference/api/IronPdf.PdfDocument.html

此物件模型展示了 PDF 文件如何:

  • 加密且受密碼保護
  • 使用新的 HTML 內容編輯或「蓋章」
  • 強化前景和背景圖片
  • 在頁面或文件層級合併、連接、截短和拼接
  • OCR 處理以提取純文本和圖像


Blazor HTML 轉換為 PDF

將 HTML 轉換為 PDF 的功能添加到您的 Blazor 伺服器非常容易,只需:

  1. 創建一個新的 Blazor 伺服器專案或使用現有的專案

  2. 使用NuGet將IronPDF庫添加到您的項目中

  3. 新增一個新的 Razor 元件或使用現有的元件

  4. 添加一個 InputTextArea 並將其連結到 IronPDF

  5. 讓 IronPDF 處理其餘的工作並部署

    完整的步驟指南,包括圖片和代碼示例,可以在這裡找到這裡.


與其他 PDF 程式庫比較

在將 HTML 轉換為 PDF 時,網上有幾個開源替代方案可用,例如 iTextSharp 和 PdfSharp,可以在 GitHub 等平台上找到。 這些庫可以免費使用,使其成為開發人員希望避免購買庫的有吸引力選擇。 然而,在 .NET Core 專案中不使用這些函式庫的解決方案可能會受到限制,特別是進行先進任務時,例如精確渲染現代 HTML5、CSS3 或 JavaScript 內容。

與 IronPDF 不同,IronPDF 提供了一個完整、功能豐富且易於整合的 HTML 到 PDF 轉換解決方案,開源替代方案通常需要更多的手動操作,並且可能缺乏對某些功能的支持。 IronPDF提供了一種更流暢的即開即用體驗,讓.NET Core開發人員可以生成PDF,而無需自行處理許多技術上的複雜性。

PDFSharp

PDFSharp 是一個免費的開源庫,可以在 .NET 中進行 PDF 文件的邏輯編輯和創建。

PDFSharp 與 IronPDF 之間的一個主要區別是 IronPDF 擁有內嵌的網頁瀏覽器,這使得從 HTML、CSS、JS 和圖像中創建的 PDF 更加精確。

IronPDF API 也與 PDFSharp 不同,因為它是基於使用案例而非 PDF 文件的技術結構。 許多人發現這樣使用更合乎邏輯且更直觀。

它可以將HTML轉換為PDF,但HTML轉PDF的轉換有限:包括將.html文件轉換為PDF文件。

wkhtmltopdf

wkhtmltopdf 是一個用 C++ 編寫的免費開源庫,能將 PDF 文件從 HTML 生成。

wkhtmltopdf 和 IronPDF 之間的一個關鍵區別在於 IronPDF 是用 C# 編寫的,並且在 .NET 應用程序和網站中使用時穩定且線程安全。

IronPDF 完全支援 CSS3 和 HTML5,而 wkhtmltopdf 幾乎已經過時近十年。

IronPDF API 也與 wkhtmltopdf 不同,因其擁有龐大且先進的 API,允許對 PDF 文件進行編輯、操作、壓縮、導入、匯出、簽署、安全處理及加浮水印。

使用 wkhtmltopdf 進行 HTML 到 PDF 的轉換是穩定的,但使用的是非常過時的渲染引擎。

iTextSharp

iTextSharp 是 iText Java 庫的一個開源部分移植版本,用於 PDF 生成和編輯。 將 HTML 轉換為 PDF——這是可能的,但我注意到其渲染受限於 Java 提供的功能或使用基於 LGPL 開源許可的 wkhtmltopdf 進行 HTML 到 PDF 的轉換。

HTML轉PDF和C#之間的一個關鍵區別iTextSharpIronPDF 使用嵌入式以 Chrome 為基礎的網頁瀏覽器來進行更先進和準確的 HTML 到 PDF 渲染,而不是 iText 所使用的傳統 wkhtmltopdf。

IronPDF API 與 iTextSharp 的不同之處在於,IronPDF 具有明確的商業或私人使用許可,而 iTextSharp 的 AGLP 許可僅適用於將完整源代碼免費提供給每位用戶的應用程序——即使是互聯網上的用戶。

我們的網站上提供了完整的差異分析。iTextSharpC# 文檔頁面。

其他商業庫

Aspose PDFSpire PDFEO PDFSelectPdf 是其他供應商的競爭對手 .NET 商業 PDF 庫。 IronPDF 擁有相對強大的功能套件、卓越的相容性、撰寫良好的文件以及合理的價格。 您可以查看 IronPDF、競爭對手和 Chrome 本身之間的比較這裡.


觀看 HTML 轉 PDF 教學影片

有了 PDF 文件,您可以訪問以下鏈接來瞭解如何在 Chrome 中打開 PDF 檔而不下載它.


教程快速訪問

下載此教學作為 C# 原始碼

此教學的完整免費HTML轉PDF C#原始碼可作為壓縮的Visual Studio專案檔下載。

下載

在 GitHub 上探索此教學教程

此專案的原始碼可在 GitHub 上以 C# 和 VB.NET 查閱。

使用此程式碼作為簡單的方法,只需幾分鐘即可開始運行。該專案儲存為 Microsoft Visual Studio 2017 專案,但與任何 .NET IDE 相容。

C# HTML 到 PDF VB.NET HTML 轉換為 PDF

下載 the C# PDF Quickstart guide

為了讓在 .NET 應用程式中開發 PDF 更加輕鬆,我們編制了一份快速入門指南作為 PDF 文件。這個 "Cheat-Sheet" 提供了快速存取常用功能和用於生成和編輯 PDF 的範例,包括 C# 和 VB.NET,這可能有助於節省在你的 .NET 專案中開始使用 IronPDF 的時間。

下載

查看 API 參考文件

探索IronPDF的API參考資料,其中概述了IronPDF的所有功能、命名空間、類別、方法欄位和列舉的詳細資訊。

查看 API 參考文件