在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
IronPDF 可程式化地將 HTML 轉換為 PDF 文件。
這種技術的一個簡單例子可以是下載並作為 PDF 範例查看.
整篇文章的源代碼可作為 C# 提供。C# HTML 轉 PDF 專案原碼下載.
以下教學將引導您完成使用 IronPDF 作為C# PDF生成器. 它涵蓋了基礎知識以及許多進階的C# PDF主題。
此演示將逐步講解如何使用IronPdf的範例。 聯絡 Iron Software 索取更多使用案例示範。.
展示包含 Hello World,RenderHtmlAsPdf
和RenderUrlAsPdf
範例。 所有範例都可以在IronPDF Demo解決方案中的相應專案下找到。
您可以通過 NuGet 安裝 IronPdf。 套件名稱是 IronPDF NuGet 套件.
或者您可以使用 直接庫下載.
一旦您在專案中安裝並引用了IronPDF,便可以立刻開始使用,只需輸入幾個字串:
var ChromePdfRenderer = new ChromePdfRenderer(); // new instance of ChromePdfRenderer
var ChromePdfRenderer = new ChromePdfRenderer(); // new instance of ChromePdfRenderer
Dim ChromePdfRenderer As New ChromePdfRenderer() ' new instance of ChromePdfRenderer
那麼如果你需要將 HTML 轉換為 PDF
// html to turn into pdf
var html = @"<h1>Hello World!</h1><br><p>This is IronPdf.</p>";
// turn html to pdf
using var pdf = ChromePdfRenderer.RenderHtmlAsPdf(html);
// save resulting pdf into file
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "ChromePdfRenderer.Pdf"));
// html to turn into pdf
var html = @"<h1>Hello World!</h1><br><p>This is IronPdf.</p>";
// turn html to pdf
using var pdf = ChromePdfRenderer.RenderHtmlAsPdf(html);
// save resulting pdf into file
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "ChromePdfRenderer.Pdf"));
' html to turn into pdf
Dim html = "<h1>Hello World!</h1><br><p>This is IronPdf.</p>"
' turn html to pdf
Dim pdf = ChromePdfRenderer.RenderHtmlAsPdf(html)
' save resulting pdf into file
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "ChromePdfRenderer.Pdf"))
或者如果你想將網頁轉換成 PDF 文件
// uri of the page to turn into pdf
var uri = new Uri("http://www.google.com/ncr");
// turn page into pdf
pdf = ChromePdfRenderer.RenderUrlAsPdf(uri);
// save resulting pdf into file
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdf.Pdf"));
// uri of the page to turn into pdf
var uri = new Uri("http://www.google.com/ncr");
// turn page into pdf
pdf = ChromePdfRenderer.RenderUrlAsPdf(uri);
// save resulting pdf into file
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdf.Pdf"));
' uri of the page to turn into pdf
Dim uri As New Uri("http://www.google.com/ncr")
' turn page into pdf
pdf = ChromePdfRenderer.RenderUrlAsPdf(uri)
' save resulting pdf into file
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdf.Pdf"))
就是這樣!
相應的結果是:
將HTML轉換為PDF的結果
將網頁轉換為 PDF 的結果
請在IronPDFDemo.HelloWorld專案中找到程式碼示例。
要評估一個更貼近現實的例子,想像需要將一個 HTML 發票轉換成 PDF。 以下是實現該操作的程式碼。
注意: 您可以在 IronPDFDemo.DemoWebSite 專案下找到發票 HTML。(~/Static/TestInvoice1.html). 請注意,發票的「列印」媒體類型使用了自訂 CSS。
瀏覽器中的原始發票看起來是這樣的:
要將此轉換成 PDF 文件,使用類似於上述 HelloWorld 示例的代碼,不同之處在於源 HTML 文件。
// read html from file
var html = File.ReadAllText(Path.Combine(Directory.GetCurrentDirectory(), "TestInvoice1.html"));
var ChromePdfRenderer = new ChromePdfRenderer();
using var pdf = ChromePdfRenderer.RenderHtmlAsPdf(html);
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "ChromePdfRendererExample1.Pdf"));
// read html from file
var html = File.ReadAllText(Path.Combine(Directory.GetCurrentDirectory(), "TestInvoice1.html"));
var ChromePdfRenderer = new ChromePdfRenderer();
using var pdf = ChromePdfRenderer.RenderHtmlAsPdf(html);
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "ChromePdfRendererExample1.Pdf"));
' read html from file
Dim html = File.ReadAllText(Path.Combine(Directory.GetCurrentDirectory(), "TestInvoice1.html"))
Dim ChromePdfRenderer As New ChromePdfRenderer()
Dim pdf = ChromePdfRenderer.RenderHtmlAsPdf(html)
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "ChromePdfRendererExample1.Pdf"))
結果是:
從 HTML 生成 PDF 文件
看起來很棒! 請在 IronPDFDemo.RenderHtmlAdPdfDemo 專案下找到程式碼範例。
另請查看此問題於如何在 IronPDF 中使用帶有字節數組的 HTML 文件或字串
本節將協助自訂範例1中生成的PDF。例如,它將添加自訂邊距、帶有文檔標題的頁首、帶有創建日期和頁碼的頁尾,以及標準發票常用的“列印”媒體類型的一些自訂CSS。 為此,需初始化一個 ChromePdfRenderOptions
實例並將其傳入 ChromePdfRenderer
構造函數。
var pdfRenderingOptions= new ChromePdfRenderOptions()
{
MarginTop = 50,
MarginBottom = 50,
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
},
CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
};
var chromePdfRenderer = new ChromePdfRenderer(pdfRenderingOptions);
var pdfRenderingOptions= new ChromePdfRenderOptions()
{
MarginTop = 50,
MarginBottom = 50,
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
},
CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
};
var chromePdfRenderer = new ChromePdfRenderer(pdfRenderingOptions);
Dim pdfRenderingOptions= New ChromePdfRenderOptions() With {
.MarginTop = 50,
.MarginBottom = 50,
.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
},
.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
}
Dim chromePdfRenderer As New ChromePdfRenderer(pdfRenderingOptions)
提示:與其在構造函數中傳遞參數,不如設定 ChromePdfRenderer
實例的相應欄位:
var chromePdfRenderer = new ChromePdfRenderer();
chromePdfRenderer.RenderingOptions = pdfRenderingOptions;
var chromePdfRenderer = new ChromePdfRenderer();
chromePdfRenderer.RenderingOptions = pdfRenderingOptions;
Dim chromePdfRenderer As New ChromePdfRenderer()
chromePdfRenderer.RenderingOptions = pdfRenderingOptions
注意:頁首和頁尾功能合併功能,這意味著所有合併欄位({頁面}, {總頁數}, {網址}, {日期}, {時間}, {html-標題}, {pdf-title})可以用相應的數據填充。
其餘的程式碼與範例 1 相同。結果是:
生成具有頁首和頁尾的發票
現在已設置自訂邊距、頁首、頁尾和用於「列印」媒體類型的 CSS。 請在 IronPDFDemo.RenderHtmlAdPdfDemo 專案下找到程式碼範例。 更多設定可以在其中找到IronPDF API 參考.
要運行此部分的示例,您需要在本地託管 IronPDFDemo.DemoWebSite。 要在 IIS Express 中執行此操作:
導航到 DemoWebSite
右鍵 > 設定為啟動專案
開始不進行偵錯(Ctrl+F5)
在本節中,使用與 HelloWorld 範例相同的程式碼將托管的 DemoWebSite 發票轉換為 PDF。 區別在於託管的 URL:
var uri = new Uri("http://localhost:51169/Static/TestInvoice1.html");
var urlToPdf = new ChromePdfRenderer();
using var pdf = urlToPdf.RenderUrlAsPdf(uri);
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdfExample1.Pdf"));
var uri = new Uri("http://localhost:51169/Static/TestInvoice1.html");
var urlToPdf = new ChromePdfRenderer();
using var pdf = urlToPdf.RenderUrlAsPdf(uri);
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdfExample1.Pdf"));
Dim uri As New Uri("http://localhost:51169/Static/TestInvoice1.html")
Dim urlToPdf = New ChromePdfRenderer()
Dim pdf = urlToPdf.RenderUrlAsPdf(uri)
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdfExample1.Pdf"))
結果是:
將託管網站轉換為 PDF
這太棒了,看起來如預期。 請在IronPDFDemo.RenderUrlAsPdfDemo專案中找到代碼範例。
許多網站通常受身份驗證方法保護。 本節在渲染 PDF 文件的過程中使用提供的用戶名和密碼,包括一些自定義設置:自定義邊距、包含文檔標題的頁眉、包含創建日期和頁碼的頁腳,以及針對「打印」媒介類型的自定義 CSS。 發票的網址為 http
存取 http
需要驗證表單
注意:憑證為 "testUser"/"testPassword"。
那麼如何繞過身份驗證呢? 透過設定 HttpLoginCredentials
:
var uri = new Uri("http://localhost:51169/Invoice");
var urlToPdf = new ChromePdfRenderer
{
PrintOptions = new ChromePdfRenderer()
{
MarginTop = 50,
MarginBottom = 50,
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
},
CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
},
// setting login credentials to bypass basic authentication
LoginCredentials = new HttpLoginCredentials()
{
NetworkUsername = "testUser",
NetworkPassword = "testPassword"
}
};
using var pdf = urlToPdf.RenderUrlAsPdf(uri);
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdfExample2.Pdf"));
var uri = new Uri("http://localhost:51169/Invoice");
var urlToPdf = new ChromePdfRenderer
{
PrintOptions = new ChromePdfRenderer()
{
MarginTop = 50,
MarginBottom = 50,
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
},
CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
},
// setting login credentials to bypass basic authentication
LoginCredentials = new HttpLoginCredentials()
{
NetworkUsername = "testUser",
NetworkPassword = "testPassword"
}
};
using var pdf = urlToPdf.RenderUrlAsPdf(uri);
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdfExample2.Pdf"));
Dim uri As New Uri("http://localhost:51169/Invoice")
Dim urlToPdf = New ChromePdfRenderer With {
.PrintOptions = New ChromePdfRenderer() With {
.MarginTop = 50,
.MarginBottom = 50,
.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
},
.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
},
.LoginCredentials = New HttpLoginCredentials() With {
.NetworkUsername = "testUser",
.NetworkPassword = "testPassword"
}
}
Dim pdf = urlToPdf.RenderUrlAsPdf(uri)
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdfExample2.Pdf"))
注意: 所使用的自訂設定與 ChromePdfRenderer Example2 相同。
結果是:
生成具有憑證的 HTML 網站到 PDF 文件
一切就緒。 請參閱 IronPDFDemo.RenderUrlAsPdfDemo 專案下的代碼範例。 如果您想知道沒有 HttpLoginCredentials 的結果會是什麼樣子,這裡給您看看:
生成無需憑證的空 PDF 檔案
另請參見 Jean 的.NET HTML 到 PDF 教程
此外,IronPDF 還可以以不同方式與 PDF 互動: