在C# .NET中將HTML轉換為PDF(開發者教程)

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

作為IronPDF的開發者,我們了解使用IronPDF創建的PDF文件不僅需要看起來完美,還需要完全符合客戶的期望。 這個 C# PDF 教程將教你如何為你的 HTML 轉 PDF 轉換器构建。C# 應用程式,專案和網站。 我們將開發一個 C# HTML 到 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 生態系統內外的多種語言中工作。

-F# 指南

-VB.NET 指南

-Python

-Java

-Node.js

IronPDF 需要試用或付費授權才能運行。 您可以在此購買授權 或註冊一個 免費 30 天試用金鑰在這裡.


第一步

下載和安裝將HTML轉換為PDF的C#庫

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

第一步:
green arrow pointer

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 Fonts 和 jQuery 這樣的網路字體。


使用現有網址匯出 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 來呈現通常被簡化或忽略的「Print」CSS。 預設情況下,將渲染「螢幕」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

使用 .NET 中的響應式 CSS 將 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 的渲染引擎是基於這個網頁瀏覽器。

要轉換您可以使用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中的總頁數

-{網址}如果從網頁渲染,則為已渲染 PDF 的 URL

-{日期}今天的日期

-{時間}目前時間

-{html-標題}用於已渲染 HTML 文件的 title 屬性

-{pdf-title}可以透過 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 文件較長,通常我們可以使用任意佔位符,例如 [[名稱]]並在稍後用真實數據替換它們。```

以下範例將創建3個PDF,每個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# 使用 URL 將 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 處理其餘的工作並部署

    完整的步驟指南,附有圖片和程式碼範例,可以在這裡找到這裡.

    Blazor Tutorial 3 related to Blazor HTML 轉 PDF

與其他 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++ 編寫的免費開源庫,它允許從 HTML 渲染 PDF 文件。

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 的轉換。

使用 C# 將 HTML 轉換為 PDF 的一個主要區別iTextSharpIronPDF 擁有更先進且精確的 HTML 到 PDF 轉換能力,因為它使用嵌入的 Chrome 瀏覽器,而不是 iText 所使用的舊版 wkhtmltopdf。

IronPDF API 與 iTextSharp 的不同之處在於,IronPDF 擁有明確的商業或私人使用許可證,而 iTextSharp 的 AGLP 許可證僅適用於在互聯網上向所有用戶免費提供完整源代碼的應用程序。

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

其他商業庫

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


觀看 HTML 轉換為 PDF 教學視頻

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


快速指南

Brand Visual Studio related to 快速指南

下載此教學作為C#源代碼

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

下載

在 GitHub 上探索此教學

該專案的源代碼在GitHub上提供C#和VB.NET版本。

只需幾分鐘即可使用此代碼輕鬆啟動和運行。該項目保存為 Microsoft Visual Studio 2017 項目,但與任何 .NET IDE 兼容。

C# HTML 轉 PDF VB.NET HTML 轉 PDF
Github Icon related to 快速指南
Html To Pdf Icon related to 快速指南

下載 C# PDF 快速入門指南

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

下載

查看 API 參考文件

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

查看 API 參考文件
Documentation related to 快速指南
.NET軟體工程師 對很多人來說,這是從 .NET 生成 PDF 文件的最有效方法,因為不需要學習額外的 API 或導航複雜的設計系統

讓·阿什伯格

.NET軟體工程師

Jean 是一位來自美國麻薩諸塞州的獨立軟體開發人員,專門針對企業內部資訊解決方案。

Jean 是 IronPDF 的早期採用者,一直參與產品改進的規範制定,並建立了一個為 C# 創建單一穩定庫的路線圖,涵蓋所有主要 PDF 產品功能用例。