使用 IRONPDF

C#創建PDF(代碼示例教程)

已更新 2024年9月4日
分享:

本文將教您如何使用 C# .NET 程式語言和 IronPDF 從網頁生成 PDF 檔案。

IronPDF 是一個功能齊全的 PDF 庫 .NETJava. 它是多個可用的第三方庫之一,能夠高效地創建、編輯和處理 PDF 文件,以及從其他文件類型的內容輸出可編輯的 PDF 文件 (HTML, PNG, RTF等。)了解更多有關 IronPDF 和類似 PDF 函式庫的資訊,請參閱不斷增長的目錄。 比較文章.

由於HTML是一種標記語言,將HTML內容轉換為不含HTML標籤的PDF可能會很困難。IronPDF 提供以下功能,例如 使用C#創建PDF 由於 HTML 的易用性及其使用 JavaScript、CSS 和圖像等附加功能,

本文將詳細介紹由 IronPDF 提供的 C# 中將 HTML 轉換為 PDF 的過程。


1. 在 Visual Studio 中創建新專案

打開 Visual Studio 軟體,進入檔案選單。選擇新專案,然後選擇控制台應用。本文將使用控制台應用生成 PDF 文件。

C# 創建 PDF(代碼示例教程),圖 01:在 Visual Studio 中創建一個新項目

在 Visual Studio 中創建新專案

在相應的文字框中輸入專案名稱並選擇路徑。然後,點擊 下一步 按鈕。

C# 創建 PDF(代碼示例教程),圖 02:配置此專案

配置此專案

選擇所需的 .NET Framework,然後點擊建立按鈕,如下所示:

C# 建立 PDF(程式碼範例教學),圖 03:.NET Framework 選擇

.NET Framework 選擇

Visual Studio 專案現在將為所選的應用程式生成結構,如果您選擇了主控台、Windows 和 Web 應用程式,它會打開 program.cs 文件,您可以在其中輸入代碼並構建/運行應用程式。

下一步是添加庫並測試程式。

使用 Visual Studio NuGet 封裝管理員

Visual Studio 軟體提供了 NuGet 封裝管理員選項,直接將封裝安裝到解決方案。下面的截圖顯示如何打開 NuGet 封裝管理員。

不要擔心許可證密鑰,IronPDF 專為開發而免費。

C# 建立 PDF (代碼範例教學),圖 04:導覽至 NuGet 套件管理員

導航到 NuGet 套件管理器

它提供了搜尋框,可以顯示來自 NuGet 網站的可用套件庫列表。在套件管理器中,搜尋關鍵字 "IronPDF",如下圖所示:

C# 建立 PDF(程式碼範例教程),圖 05:從 NuGet 套件管理器安裝 IronPdf 套件

從 NuGet 套件管理員安裝 IronPdf 套件

從上圖中,選擇相關 NuGet 套件列表中的 IronPDF 選項並為解決方案安裝該套件。

使用 Visual Studio 命令列

在 Visual Studio 菜單中,前往 工具 > NuGet 套件管理 > 套件管理主控台

C# 建立 PDF(程式碼範例教程),圖 06:導航至套件管理員主控台

導航至套件管理器控制台

在套件管理器控制台標籤中輸入以下行:

Install-Package IronPdf

C# 建立 PDF(代碼範例教程),圖 07:安裝步驟

安裝步驟

現在會將套件下載/安裝到當前項目並準備好使用。

C# 創建 PDF(代碼示例教程),圖 08:在軟體包管理控制台中的安裝過程

在套件管理器控制台中的安裝過程

2. 使用 RenderHtmlAsPdf 從 HTML 創建 PDF()在安裝 IronPDF 庫之後,首要目標是建立一個 PDFDocument 在 C# 中的物件。複製以下代碼並將其粘貼到 Visual Studio 中,然後運行程序。

IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";

var pdf = new ChromePdfRenderer();
PdfDocument doc = pdf.RenderHtmlAsPdf("<h1>This is a heading</h1>");
mypdf.SaveAs("FirstPDFDocument.pdf");
IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";

var pdf = new ChromePdfRenderer();
PdfDocument doc = pdf.RenderHtmlAsPdf("<h1>This is a heading</h1>");
mypdf.SaveAs("FirstPDFDocument.pdf");
IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"

Dim pdf = New ChromePdfRenderer()
Dim doc As PdfDocument = pdf.RenderHtmlAsPdf("<h1>This is a heading</h1>")
mypdf.SaveAs("FirstPDFDocument.pdf")
VB   C#

在執行您的 C# 專案後,您的專案的 bin 資料夾中會有一個名為 "FirstPDFDocument.pdf" 的檔案,雙擊該檔案,PDF 檔案將在瀏覽器標籤頁中開啟。

C# 建立 PDF(程式碼範例教程),圖 09:

使用C#創建PDF文件 將 HTML 轉換為 PDF 只需幾行代碼即可使用IronPDF。

3. 透過 URL 建立 PDF 文件

在 C# 中使用 URL 創建 PDF 文件和上述示例一樣簡單,只需這三行代碼,以下代碼將演示如何從 URL 創建 PDF 文件。

using IronPdf;

IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";

var renderer = new IronPdf.ChromePdfRenderer();
// Create a PDF from a URL or local file path
using var pdf = renderer.RenderUrlAsPdf("https://www.amazon.com/?tag=hp2-brobookmark-us-20");
// Export to a file or Stream
pdf.SaveAs("url.pdf");
using IronPdf;

IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";

var renderer = new IronPdf.ChromePdfRenderer();
// Create a PDF from a URL or local file path
using var pdf = renderer.RenderUrlAsPdf("https://www.amazon.com/?tag=hp2-brobookmark-us-20");
// Export to a file or Stream
pdf.SaveAs("url.pdf");
Imports IronPdf

IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"

Dim renderer = New IronPdf.ChromePdfRenderer()
' Create a PDF from a URL or local file path
Dim pdf = renderer.RenderUrlAsPdf("https://www.amazon.com/?tag=hp2-brobookmark-us-20")
' Export to a file or Stream
pdf.SaveAs("url.pdf")
VB   C#

以下是上述代碼的輸出結果。

C# 創建 PDF(代碼範例教程),圖10:從 URL 渲染的 PDF 文件輸出

從 URL 產生的 PDF 文件輸出

其他將熱門複雜網站轉換為 PDF 的示例。

C# 創建PDF(代碼示例教程),圖11:渲染複雜網站的另一個示例

另一個渲染複雜網站的範例

4. 將 ASP.NET MVC 渲染為 PDF

您可以提供現有的 HTML 文件或字符串、現有的 PDF 文件,或者在 ASP.NET MVC 中提供 PDF。為了輕鬆提供這些文件或字符串,請使用 IronPDF 並通過以下方式訪問它 DLL ZIP 檔案 或透過 NuGet 頁面若要在 ASP.NET MVC 中提供 PDF 文件,則需要生成一個 FileResult 方法。使用 IronPDF,您可以使用 MVC 返回 PDF 檔案。

IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";

var renderer = new IronPdf.ChromePdfRenderer();
using var pdf = renderer.RenderHtmlFileAsPdf("Project/MyHtmlDocument.html");
// or to convert an HTML string
//var pdf = renderer.RenderHtmlAsPdf("<h1>Hello IronPdf</h1>");
Response.Clear();
Response.ContentType = "application/pdf";
Response.AddHeader("Content-Disposition","attachment;filename=\"FileName.pdf\"");
// edit this line to display ion browser and change the file name
Response.BinaryWrite(pdf.BinaryData);
Response.Flush();
Response.End();
IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";

var renderer = new IronPdf.ChromePdfRenderer();
using var pdf = renderer.RenderHtmlFileAsPdf("Project/MyHtmlDocument.html");
// or to convert an HTML string
//var pdf = renderer.RenderHtmlAsPdf("<h1>Hello IronPdf</h1>");
Response.Clear();
Response.ContentType = "application/pdf";
Response.AddHeader("Content-Disposition","attachment;filename=\"FileName.pdf\"");
// edit this line to display ion browser and change the file name
Response.BinaryWrite(pdf.BinaryData);
Response.Flush();
Response.End();
IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"

Dim renderer = New IronPdf.ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlFileAsPdf("Project/MyHtmlDocument.html")
' or to convert an HTML string
'var pdf = renderer.RenderHtmlAsPdf("<h1>Hello IronPdf</h1>");
Response.Clear()
Response.ContentType = "application/pdf"
Response.AddHeader("Content-Disposition","attachment;filename=""FileName.pdf""")
' edit this line to display ion browser and change the file name
Response.BinaryWrite(pdf.BinaryData)
Response.Flush()
Response.End()
VB   C#

5. 渲染 Razor 視圖為 PDF

以下方法使渲染 Razor 視圖為字串變得容易。IronPDF's HTML轉PDF 功能可用於將 Razor 檢視呈現為字串。別忘了設置 IronPdf.ChromePdfRenderer.RenderHtmlAsPdf 方法的選擇性 BaseURI 參數來載入相對資源、CSS、JavaScript 和圖像。這裡有一個範例:

public string RenderRazorViewToString(string viewName, object model)
{ 
    IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";

    ViewData.Model = model;
    using (var sw = new StringWriter())
    {
        var viewResult = ViewEngines.Engines.FindPartialView(ControllerContext,
        viewName);
        var viewContext = new ViewContext(ControllerContext, viewResult.View,
        ViewData, TempData, sw);
        viewResult.View.Render(viewContext, sw);
        viewResult.ViewEngine.ReleaseView(ControllerContext, viewResult.View);
        return sw.GetStringBuilder().ToString();
    }
}
public string RenderRazorViewToString(string viewName, object model)
{ 
    IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";

    ViewData.Model = model;
    using (var sw = new StringWriter())
    {
        var viewResult = ViewEngines.Engines.FindPartialView(ControllerContext,
        viewName);
        var viewContext = new ViewContext(ControllerContext, viewResult.View,
        ViewData, TempData, sw);
        viewResult.View.Render(viewContext, sw);
        viewResult.ViewEngine.ReleaseView(ControllerContext, viewResult.View);
        return sw.GetStringBuilder().ToString();
    }
}
Public Function RenderRazorViewToString(ByVal viewName As String, ByVal model As Object) As String
	IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"

	ViewData.Model = model
	Using sw = New StringWriter()
		Dim viewResult = ViewEngines.Engines.FindPartialView(ControllerContext, viewName)
		Dim viewContext As New ViewContext(ControllerContext, viewResult.View, ViewData, TempData, sw)
		viewResult.View.Render(viewContext, sw)
		viewResult.ViewEngine.ReleaseView(ControllerContext, viewResult.View)
		Return sw.GetStringBuilder().ToString()
	End Using
End Function
VB   C#

請閱讀 .NET MVC PDF 文件頁面瞭解如何將 MVC 視圖渲染為二進制 PDF 文件。

6. 將 XML 轉換為 PDF

使用 C# 將 XML 直接轉換為 PDF 可能是一個複雜的挑戰,最好的方法是從 XSLT 開始。 XML 可以通過 HTML 渲染為 PDF(5) 使用XLST轉換。

這些文件定義了如何將給定架構的XML轉換為精確的HTML表示,是一個已經確立的標準。

生成的HTML字符串或文件可以使用IronPDF呈現為PDF。 .NET PDF 生成器這裡是範例:

IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";

XslCompiledTransform transform = new XslCompiledTransform();
using(XmlReader reader = XmlReader.Create(new StringReader(XSLT))) {
    transform.Load(reader);
}
StringWriter results = new StringWriter();
using(XmlReader reader = XmlReader.Create(new StringReader(XML))) {
    transform.Transform(reader, null, results);
}
IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
// options, headers and footers may be set there
// Render the XML as a PDF via XSLT
Renderer.RenderHtmlAsPdf(results.ToString()).SaveAs("Final.pdf");
IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";

XslCompiledTransform transform = new XslCompiledTransform();
using(XmlReader reader = XmlReader.Create(new StringReader(XSLT))) {
    transform.Load(reader);
}
StringWriter results = new StringWriter();
using(XmlReader reader = XmlReader.Create(new StringReader(XML))) {
    transform.Transform(reader, null, results);
}
IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
// options, headers and footers may be set there
// Render the XML as a PDF via XSLT
Renderer.RenderHtmlAsPdf(results.ToString()).SaveAs("Final.pdf");
IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"

Dim transform As New XslCompiledTransform()
Using reader As XmlReader = XmlReader.Create(New StringReader(XSLT))
	transform.Load(reader)
End Using
Dim results As New StringWriter()
Using reader As XmlReader = XmlReader.Create(New StringReader(XML))
	transform.Transform(reader, Nothing, results)
End Using
Dim Renderer As New IronPdf.ChromePdfRenderer()
' options, headers and footers may be set there
' Render the XML as a PDF via XSLT
Renderer.RenderHtmlAsPdf(results.ToString()).SaveAs("Final.pdf")
VB   C#

7. 生成 PDF 報告

IronPDF 可以用作 PDF 閱讀器 C# 並幫助在 ASP.NET C# 中將 SSRS 報告視覺化並導出為 PDF。IronPDF 可用於將數據的快照渲染為 PDF 檔案格式的 "報告"。它還可以作為一個 PDF C# 解析器. 基本方法是先生成報告為 HTML 文件,然後使用 IronPDF 將 HTML 渲染為 PDF。

要設計 XML 報告,可以解析 XML,然後用數據生成 HTML。這些報告可以生成為 HTML,然後可以進行自訂並使用 IronPDF 轉換為 PDF 格式。在 ASP.NET 中提供 HTML 內容的最簡單方法是使用 ASP.NET WebForms 的 Form_Load 事件中的 IronPdf.AspxToPdf 類。

這裡有一個例子:

IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";

IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
// add a header to very page easily
Renderer.RenderingOptions.FirstPageNumber = 1;
Renderer.RenderingOptions.TextHeader.DrawDividerLine = true;
Renderer.RenderingOptions.TextHeader.CenterText = "{url}";
Renderer.RenderingOptions.TextFooter.Font = IronSoftware.Drawing.FontTypes.Helvetica;
Renderer.RenderingOptions.TextHeader.FontSize = 12;
// add a footer too
Renderer.RenderingOptions.TextFooter.DrawDividerLine = true;
Renderer.RenderingOptions.TextFooter.Font = IronSoftware.Drawing.FontTypes.Arial;
Renderer.RenderingOptions.TextFooter.FontSize = 10;
Renderer.RenderingOptions.TextFooter.LeftText = "{date} {time}";
Renderer.RenderingOptions.TextFooter.RightText = "{page} of {total-pages}";
Renderer.RenderHtmlFileAsPdf("Report.html").SaveAs("Report.pdf");
IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";

IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
// add a header to very page easily
Renderer.RenderingOptions.FirstPageNumber = 1;
Renderer.RenderingOptions.TextHeader.DrawDividerLine = true;
Renderer.RenderingOptions.TextHeader.CenterText = "{url}";
Renderer.RenderingOptions.TextFooter.Font = IronSoftware.Drawing.FontTypes.Helvetica;
Renderer.RenderingOptions.TextHeader.FontSize = 12;
// add a footer too
Renderer.RenderingOptions.TextFooter.DrawDividerLine = true;
Renderer.RenderingOptions.TextFooter.Font = IronSoftware.Drawing.FontTypes.Arial;
Renderer.RenderingOptions.TextFooter.FontSize = 10;
Renderer.RenderingOptions.TextFooter.LeftText = "{date} {time}";
Renderer.RenderingOptions.TextFooter.RightText = "{page} of {total-pages}";
Renderer.RenderHtmlFileAsPdf("Report.html").SaveAs("Report.pdf");
IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"

Dim Renderer As New IronPdf.ChromePdfRenderer()
' add a header to very page easily
Renderer.RenderingOptions.FirstPageNumber = 1
Renderer.RenderingOptions.TextHeader.DrawDividerLine = True
Renderer.RenderingOptions.TextHeader.CenterText = "{url}"
Renderer.RenderingOptions.TextFooter.Font = IronSoftware.Drawing.FontTypes.Helvetica
Renderer.RenderingOptions.TextHeader.FontSize = 12
' add a footer too
Renderer.RenderingOptions.TextFooter.DrawDividerLine = True
Renderer.RenderingOptions.TextFooter.Font = IronSoftware.Drawing.FontTypes.Arial
Renderer.RenderingOptions.TextFooter.FontSize = 10
Renderer.RenderingOptions.TextFooter.LeftText = "{date} {time}"
Renderer.RenderingOptions.TextFooter.RightText = "{page} of {total-pages}"
Renderer.RenderHtmlFileAsPdf("Report.html").SaveAs("Report.pdf")
VB   C#

C# 建立 PDF(程式碼範例教學),圖12: CSharp 建立 PDF

CSharp 創建 PDF

8. 處理 PDF 圖片和 CSS

使用 IronPDF 將 HTML 字符串轉換為 PDF 時,需在處理資產時提供 BaseUri。所有資產(如 CSS、JavaScript 文件和圖像)將相對於該基礎 URL 加載。

BaseURL 可以是以 "http" 開頭的網絡 URL 來加載遠程資產,或是本地文件路徑以存取磁碟上的資產。

另一個技巧是使用 IronPdf.Imaging.ImageUtilities.ImageToDataUri 方法將任何 System.Drawing.Image 或 Bitmap 對象轉換為 HTML 字符串,這樣可以在不儲存到磁碟的情況下將其嵌入 HTML。以下是範例:

IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";

using var pdf = Renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>",@"C:\site\assets\");
pdf.SaveAs("html-with-assets.pdf");
var renderer = new IronPdf.ChromePdfRenderer();
using var advancedPDF = renderer.RenderHtmlFileAsPdf("C:\\Assets\\TestInvoice1.html");
advancedPDF.SaveAs("Invoice.pdf");
IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";

using var pdf = Renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>",@"C:\site\assets\");
pdf.SaveAs("html-with-assets.pdf");
var renderer = new IronPdf.ChromePdfRenderer();
using var advancedPDF = renderer.RenderHtmlFileAsPdf("C:\\Assets\\TestInvoice1.html");
advancedPDF.SaveAs("Invoice.pdf");
IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"

Dim pdf = Renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>","C:\site\assets\")
pdf.SaveAs("html-with-assets.pdf")
Dim renderer = New IronPdf.ChromePdfRenderer()
Dim advancedPDF = renderer.RenderHtmlFileAsPdf("C:\Assets\TestInvoice1.html")
advancedPDF.SaveAs("Invoice.pdf")
VB   C#

9. 將ASPX文件轉換為PDF

首先,讓我們進入「免費開發」的C#庫,用於將ASPX文件轉換為PDF。您可以 直接下載 或通過訪問它 NuGet. 按照常规安装到您的 Visual Studio 项目中。此外,它还需要 IronPdf.Extensions.ASPX 來自 NuGet 官方頁面 安裝。 它在 .NET Core 中不可用,因為 ASPX 已被 MVC 模型取代。 現在您擁有 IronPDF 及其擴展,您會看到它具有 HTML 轉換的功能,以及如下代碼中的 ASPX 到 PDF 生成功能。

using System;
using System.Web.UI;
using IronPdf;

namespace aspxtopdf
{
    public partial class SiteMaster : MasterPage
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
            AspxToPdf.RenderThisPageAsPdf();
        }
    }
}
using System;
using System.Web.UI;
using IronPdf;

namespace aspxtopdf
{
    public partial class SiteMaster : MasterPage
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
            AspxToPdf.RenderThisPageAsPdf();
        }
    }
}
Imports System
Imports System.Web.UI
Imports IronPdf

Namespace aspxtopdf
	Partial Public Class SiteMaster
		Inherits MasterPage

		Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
			IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"
			AspxToPdf.RenderThisPageAsPdf()
		End Sub
	End Class
End Namespace
VB   C#

C# 建立 PDF(代碼範例教程),圖 13:CSharp 建立 PDF

CSharp 創建 PDF

10. 查看 HTML 轉換 PDF 示例文件

以下代碼展示了如何使用 IronPDF 程式化地將 HTML 轉換為 PDF 文件。

IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";

var uri = new Uri("https://www.c-sharpcorner.com/article/how-to-create-pdf-file-in-c-sharp-using-ironpdf/");
// turn page into pdf
var pdf = ChromePdfRenderer.StaticRenderUrlAsPdf(uri);
// save resulting pdf into file
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdf.Pdf"));
IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";

var uri = new Uri("https://www.c-sharpcorner.com/article/how-to-create-pdf-file-in-c-sharp-using-ironpdf/");
// turn page into pdf
var pdf = ChromePdfRenderer.StaticRenderUrlAsPdf(uri);
// save resulting pdf into file
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdf.Pdf"));
IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"

Dim uri As New Uri("https://www.c-sharpcorner.com/article/how-to-create-pdf-file-in-c-sharp-using-ironpdf/")
' turn page into pdf
Dim pdf = ChromePdfRenderer.StaticRenderUrlAsPdf(uri)
' save resulting pdf into file
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdf.Pdf"))
VB   C#

PDF 檔案是在 Debug 資料夾中建立的。以下是輸出:

C# 創建 PDF(代碼示例教程),圖 14:CSharp 創建 PDF

CSharp Create PDF

The 快速入門指南 解釋如何 通過 NuGet 安裝 IronPDF (對於不熟悉 NuGet 套件管理器的人来说).

11. 在 C# .NET 中生成 PDF 文件

使用功能強大的 C# 庫 IronPDF,可以輕鬆將任何 ASP.NET 頁面從 HTML 轉換為 PDF。這讓您只需一行代碼即可完全控制閱讀、編輯和操作文檔。

以下是一個示例:

using System;
using System.Web.UI;
using IronPdf;

namespace aspxtopdf
{
    public partial class _Default : Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
            AspxToPdf.RenderThisPageAsPdf();
        }
    }
}
using System;
using System.Web.UI;
using IronPdf;

namespace aspxtopdf
{
    public partial class _Default : Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
            AspxToPdf.RenderThisPageAsPdf();
        }
    }
}
Imports System
Imports System.Web.UI
Imports IronPdf

Namespace aspxtopdf
	Partial Public Class _Default
		Inherits Page

		Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)

		End Sub

		Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs)
			IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"
			AspxToPdf.RenderThisPageAsPdf()
		End Sub
	End Class
End Namespace
VB   C#

C# 創建 PDF (代碼範例教程), 圖 15: CSharp 創建 PDF

CSharp 建立 PDF

這需要 IronPdf.Extensions.ASPX 來自 NuGet 官方頁面 要安裝。它在.NET Core中不可用,因為ASPX已被MVC模型取代。

12. 生成 PDF 文件

安裝 IronPDF C# HTML 轉 PDF 庫。通過以下方式訪問軟體 直接檔案下載以下是一個快速的範例,說明如何從HTML輸入字串生成PDF:

/**
PDF from HTML String
anchor-generate-pdf-from-html-string
**/
private void HTMLString()
{
    IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";

    // Render any HTML fragment or document to HTML
    var renderer = new IronPdf.ChromePdfRenderer();
    using var pdf = renderer.RenderHtmlAsPdf("<h1>Hello IronPDF</h1>");
    var outputPath = "ChromePdfRenderer.pdf";
    pdf.SaveAs(outputPath);
}
/**
PDF from HTML String
anchor-generate-pdf-from-html-string
**/
private void HTMLString()
{
    IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";

    // Render any HTML fragment or document to HTML
    var renderer = new IronPdf.ChromePdfRenderer();
    using var pdf = renderer.RenderHtmlAsPdf("<h1>Hello IronPDF</h1>");
    var outputPath = "ChromePdfRenderer.pdf";
    pdf.SaveAs(outputPath);
}
'''
'''PDF from HTML String
'''anchor-generate-pdf-from-html-string
'''*
Private Sub HTMLString()
	IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"

	' Render any HTML fragment or document to HTML
	Dim renderer = New IronPdf.ChromePdfRenderer()
	Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello IronPDF</h1>")
	Dim outputPath = "ChromePdfRenderer.pdf"
	pdf.SaveAs(outputPath)
End Sub
VB   C#

以下代碼使用IronPDF直接從ASPX文件生成PDF:

/**
PDF from ASPX
anchor-generate-pdf-from-aspx
**/
protected void Page_Load(object sender, EventArgs e)
{
    IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
    IronPdf.AspxToPdf.RenderThisPageAsPdf();
}
/**
PDF from ASPX
anchor-generate-pdf-from-aspx
**/
protected void Page_Load(object sender, EventArgs e)
{
    IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
    IronPdf.AspxToPdf.RenderThisPageAsPdf();
}
'''
'''PDF from ASPX
'''anchor-generate-pdf-from-aspx
'''*
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
	IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"
	IronPdf.AspxToPdf.RenderThisPageAsPdf()
End Sub
VB   C#

IronPDF 通過 Chromium 渲染引擎很好地支持 JavaScript。不過,有一點需要注意,您可能需要在頁面渲染中添加延遲,以便在生成 PDF 時讓 JavaScript 有時間執行。

13. PDF 庫 For .NET

使用 IronPDF,我們能夠根據應用程式需求輕鬆地創建和編輯 PDF 功能。IronPDF 提供了一套功能其 C# .NET PDF 庫。訪問該庫的兩種主要方式是:

  1. 下載並解壓該庫 DLL 檔案

導航 NuGet 並通過 Visual Studio 安裝此套件。

在下面的代碼中,帶有 button1_Click 的 C# 表單演示了用 C# 創建 PDF 是多麼簡單。

using IronPdf;
using System.Windows.Forms;

namespace ReadPdf
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, System.EventArgs e)
        {
            IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";

            //Used ChromePdfRenderer Convert Class
            var renderer = new ChromePdfRenderer();
            //Getting Text from TextBox
            string text = textBox1.Text;
            //rendering or converting htmlaspdf.
            renderer.RenderHtmlAsPdf("<h1>"+text+"</h1>").SaveAs("custom.pdf");
            //Confirmation
            MessageBox.Show("Done !");
        }
    }
}
using IronPdf;
using System.Windows.Forms;

namespace ReadPdf
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, System.EventArgs e)
        {
            IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";

            //Used ChromePdfRenderer Convert Class
            var renderer = new ChromePdfRenderer();
            //Getting Text from TextBox
            string text = textBox1.Text;
            //rendering or converting htmlaspdf.
            renderer.RenderHtmlAsPdf("<h1>"+text+"</h1>").SaveAs("custom.pdf");
            //Confirmation
            MessageBox.Show("Done !");
        }
    }
}
Imports IronPdf
Imports System.Windows.Forms

Namespace ReadPdf
	Partial Public Class Form1
		Inherits Form

		Public Sub New()
			InitializeComponent()
		End Sub

		Private Sub button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
			IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"

			'Used ChromePdfRenderer Convert Class
			Dim renderer = New ChromePdfRenderer()
			'Getting Text from TextBox
'INSTANT VB NOTE: The variable text was renamed since Visual Basic does not handle local variables named the same as class members well:
			Dim text_Conflict As String = textBox1.Text
			'rendering or converting htmlaspdf.
			renderer.RenderHtmlAsPdf("<h1>" & text_Conflict &"</h1>").SaveAs("custom.pdf")
			'Confirmation
			MessageBox.Show("Done !")
		End Sub
	End Class
End Namespace
VB   C#

C# 表單:

C# 創建 PDF(代碼示例教程),圖 16:CSharp 創建 PDF

CSharp 創建 PDF

14. Chrome PDF 渲染引擎

Iron Software 工程团队很自豪在 2021 年推出 IronPDF 的重大升级,现在拥有 "Chrome Identical" PDF 渲染 功能。

首先,您必须从名为 IronPdf 的 NuGet 包管理器中将 IronPDF 安装到您的项目中。在全局层面切换到新渲染器非常简单。这种方法会更新您现有的 ChromePdfRendererAspxToPdf 代码的所有用法。

Chrome PDF 渲染功能的一些特性如下:

  1. 高质量渲染

    1. 最新的 "Blink"!" HTML 渲染。選擇 Chrome Identical Rendering 或 Enhanced Rendering
  2. 快 20% 的渲染速度

    1. 提供輕鬆的多執行緒和異步執行,使用任意多的 CPU 核心。對於 SAAS 和高負載應用程式,這可能快 5-20 倍,超越直接瀏覽器使用和網頁驅動程式。
  3. 全面支持

    1. 全面支持 JavaScript響應式佈局CSS3

    2. Azure 為一流的公民。它完美運行。

    3. 持續維護和改進,全面支持 .NET 6、5、Core 和 Framework 4.0+。
  4. 嚴格測試

    1. 發布通過了 1156 個綠色單元和集成測試 (沒有紅的), 確保穩定性類似於主要版本,並且每天持續積極改進。
  5. 符合第508條可及性規範

生成可及的PDF,使用 PDF(UA)標記的PDF標準.

多執行緒和異步支援 Chrome 渲染引擎與之前的版本完全不同等級。

  1. 對於企業級多線程,請在您的現有線程中使用 ChromePdfRenderer,它將正常運作。對於網頁應用程式,這也不需要任何設定。

  2. 對於 HTML 到 PDF 的批次處理,建議使用內建的 .NET Parallel.ForEach 模式。

  3. 所有的渲染方法均提供 Async 變體,例如 ChromePdfRenderer.RenderHtmlAsPdfAsync

這是一個範例:

IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";

IChromePdfRenderer renderer = new ChromePdfRenderer();
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen;
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;

using var doc = renderer.RenderHtmlAsPdf("<h1>Hello world! This is sample for IronPdf</h1>");
doc.SaveAs("google_chrome.pdf");
IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";

IChromePdfRenderer renderer = new ChromePdfRenderer();
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen;
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;

using var doc = renderer.RenderHtmlAsPdf("<h1>Hello world! This is sample for IronPdf</h1>");
doc.SaveAs("google_chrome.pdf");
IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"

Dim renderer As IChromePdfRenderer = New ChromePdfRenderer()
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen
renderer.RenderingOptions.PrintHtmlBackgrounds = True
renderer.RenderingOptions.CreatePdfFormsFromHtml = True

Dim doc = renderer.RenderHtmlAsPdf("<h1>Hello world! This is sample for IronPdf</h1>")
doc.SaveAs("google_chrome.pdf")
VB   C#

C# 建立 PDF(範例教學),圖17:CSharp 建立 PDF

CSharp 創建 PDF

15. 總結

感謝您的閱讀! 本文示範了如何使用IronPDF在C#中建立PDF文檔。IronPDF非常適合需要將HTML內容轉換為PDF且不使用HTML標籤的用戶,因其易於使用且具有JavaScript、CSS和圖像等附加功能。

所以,請嘗試這些方法,並在本文的評論區留下您的反饋。! 如果您還不是 IronPDF 的客戶,您可以嘗試 30 天免費試用 查看他們的可用功能。

如果您購買完整的Iron Suite,您將以2个產品的價格獲得所有7个產品。有关详细信息,请参阅 授權,請造訪 定價頁面 購買完整套件。


資料庫快速訪問

閱讀 API 參考資料

IronPDF 說明文件可在互動式 API 參考中取得。

閱讀 API 參考資料
< 上一頁
.NET Core PDF 庫
下一個 >
x509certificate2 程式化地為 PDF 添加數位簽名

準備開始了嗎? 版本: 2024.10 剛剛發布

免費 NuGet 下載 總下載次數: 10,993,239 查看許可證 >