如何使用VB將HTML頁轉換為PDF
在大多數現代.NET專案中,您最終需要建立和操作PDF文件。 無論是建立簡單的PDF文件、將多個PDF合併為一個文件,還是確保您的應用程式能在主要作業系統中處理多語言的PDF文件。 無論它是發票、客戶報告,還是網頁內容的快照,擁有可靠的方式來建立PDF能節省時間並讓您的應用程式顯得專業。
開發者在此經常碰到一些問題:在不同機器上保持佈局一致性,處理圖片和表格,或者確保JavaScript驅動內容在最終文件中正確顯示。 選擇合適的.NET PDF程式庫進行C# PDF建立可以幫助您避免這些問題的煩惱。
在這篇文章中,我們將介紹如何使用IronPDF在.NET應用程式中建立PDF文件。 首先,我們將從基本的HTML轉PDF開始,然後進一步新增標題、頁腳和安全等高級功能。 到今天我們結束時,您將成為使用IronPDF建立PDF的專家。
在.NET中建立PDF的主要方法有哪些?
在.NET應用程式中開發PDF生成功能時,開發者通常有三種主要選擇。 HTML到PDF的轉換利用了現有的網頁技術,允許您使用熟悉的HTML和CSS來設計文件,然後轉換為PDF格式。 通過程式構建的文件涉及通過程式碼逐個元素構建PDF,提供對文件每個方面的精確控制。 基於範本的生成結合了預定義的文件範本與動態資料,非常適合用於建立標準化的文件,如發票或證書。
HTML到PDF的方法已成為大多數現代應用程式的首選方法。 它消除了與PDF專用API相關的學習曲線,同時允許開發者使用其現有的網頁開發技能。 這種方法還確保網路視圖和生成的PDF之間的一致性,這在建立需要符合應用程式設計語言的客戶面向文件時尤為重要。
IronPDF通過其全面的API簡化了所有三種方法,但真正擅長HTML到PDF轉換,使用以Chrome為基礎的渲染引擎產生像素完美的結果。 這意味著您的PDF看起來將完全像從Google Chrome列印出來的一樣,包含適當的CSS3樣式和JavaScript執行。
這些方法為開發者提供了對主流文件格式的完整支持,像XML文件規範,Microsoft Word和Adobe Acrobat替代品,確保與現有PDF文件和其他文件格式的相容性。
IronPDF如何讓PDF建立簡單而強大?
IronPDF通過將企業級功能與易於掌握的API結合在一起,革新了.NET中的PDF生成。 IronPDF的核心使用與Google Chrome相同的Chromium引擎,確保您的HTML渲染與世界上最受歡迎的瀏覽器中顯示的一樣。 這消除了導致其他PDF程式庫困擾的CSS相容性問題和JavaScript渲染問題。
該程式庫的架構優先考慮開發者的生產力而不犧牲功能性。 與需要廣泛的PDF格式知識或複雜定位計算的程式庫不同,IronPDF允許您使用熟悉的網頁技術。 您可以像平常一樣撰寫HTML和CSS,而IronPDF在幕後處理PDF生成的細節。
在您的.NET 9專案中設置IronPDF只需幾分鐘。 打開包管理控制台並運行:
Install-Package IronPdf
一旦安裝完成,您立即可以開始生成PDF。 該程式庫包含所有必要的依賴項,對於標準使用情況不需要額外的配置。 它支持.NET 9,.NET 8,.NET 7,.NET 6,.NET 5,.NET Core,.NET Standard 和 .NET Framework 4.6.2+,確保幾乎所有.NET專案都具有相容性。
如何將HTML轉換為PDF文件
直接將HTML內容轉換為PDF代表了.NET中文件生成的最簡單路徑。 當您需要基於使用者輸入、資料庫內容或API響應動態建立PDF文件時,此方法大放異彩。 IronPDF的ChromePdfRenderer類使這一過程極其簡單,同時提供廣泛的自訂選項。
這是如何從包含樣式化發票的HTML字串生成PDF的:
using IronPdf;
using IronPdf.Rendering;
// Initialize the Chrome renderer
var renderer = new ChromePdfRenderer();
// Configure rendering options for professional output
renderer.RenderingOptions.MarginTop = 10;
renderer.RenderingOptions.MarginBottom = 10;
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
// Create HTML content with embedded CSS
string htmlContent = @"
<html>
<head>
<style>
body { font-family: Arial, sans-serif; }
.header { background-color: #2c3e50; color: white; padding: 20px; }
.content { padding: 20px; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: 10px; text-align: left; border-bottom: 1px solid #ddd; }
</style>
</head>
<body>
<div class='header'>
<h1>Invoice #2024-001</h1>
</div>
<div class='content'>
<table>
<tr><th>Item</th><th>Quantity</th><th>Price</th></tr>
<tr><td>Professional License</td><td>1</td><td>$999</td></tr>
</table>
</div>
</body>
</html>";
// Generate the PDF
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
// Save to file
pdf.SaveAs("invoice.pdf");
using IronPdf;
using IronPdf.Rendering;
// Initialize the Chrome renderer
var renderer = new ChromePdfRenderer();
// Configure rendering options for professional output
renderer.RenderingOptions.MarginTop = 10;
renderer.RenderingOptions.MarginBottom = 10;
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
// Create HTML content with embedded CSS
string htmlContent = @"
<html>
<head>
<style>
body { font-family: Arial, sans-serif; }
.header { background-color: #2c3e50; color: white; padding: 20px; }
.content { padding: 20px; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: 10px; text-align: left; border-bottom: 1px solid #ddd; }
</style>
</head>
<body>
<div class='header'>
<h1>Invoice #2024-001</h1>
</div>
<div class='content'>
<table>
<tr><th>Item</th><th>Quantity</th><th>Price</th></tr>
<tr><td>Professional License</td><td>1</td><td>$999</td></tr>
</table>
</div>
</body>
</html>";
// Generate the PDF
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
// Save to file
pdf.SaveAs("invoice.pdf");
Imports IronPdf
Imports IronPdf.Rendering
' Initialize the Chrome renderer
Dim renderer As New ChromePdfRenderer()
' Configure rendering options for professional output
renderer.RenderingOptions.MarginTop = 10
renderer.RenderingOptions.MarginBottom = 10
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print
' Create HTML content with embedded CSS
Dim htmlContent As String = "
<html>
<head>
<style>
body { font-family: Arial, sans-serif; }
.header { background-color: #2c3e50; color: white; padding: 20px; }
.content { padding: 20px; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: 10px; text-align: left; border-bottom: 1px solid #ddd; }
</style>
</head>
<body>
<div class='header'>
<h1>Invoice #2024-001</h1>
</div>
<div class='content'>
<table>
<tr><th>Item</th><th>Quantity</th><th>Price</th></tr>
<tr><td>Professional License</td><td>1</td><td>$999</td></tr>
</table>
</div>
</body>
</html>"
' Generate the PDF
Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
' Save to file
pdf.SaveAs("invoice.pdf")
該方法允許您僅用數行C#程式碼將HTML轉換為PDF文件。 IronPDF支持圖片格式如PNG和JPEG、可縮放矢量圖形(SVG)和自訂字體,為您提供對文件佈局和文件大小的精確控制。
ChromePdfRenderer自動處理您的CSS,包括現代CSS3功能如flexbox和網格佈局。 它同樣能有效處理外部樣式表、嵌入式樣式和內聯CSS。 該渲染引擎執行JavaScript,允許您在HTML中包含動態內容生成或客戶端計算。
對於涉及外部資產的更複雜場景,IronPDF提供基本URL參數:
// Render HTML with external images and stylesheets
var pdf = renderer.RenderHtmlAsPdf(htmlContent, @"C:\Assets\");
// Render HTML with external images and stylesheets
var pdf = renderer.RenderHtmlAsPdf(htmlContent, @"C:\Assets\");
' Render HTML with external images and stylesheets
Dim pdf = renderer.RenderHtmlAsPdf(htmlContent, "C:\Assets\")
這告訴IronPDF在哪裡尋找引用的圖像、CSS文件和其他資源,確保所有元素在最終PDF中正確渲染。 該程式庫還支持在您的HTML中直接以Base64嵌入圖像,以實現完全自包含的文件。
輸出

如何從URL和網頁生成PDF?
將即時網頁轉換為PDF為文件記錄、歸檔和報告生成開啟了強大的可能性。 IronPDF在這方面表現出色,從簡單的靜態頁面到使用大量JavaScript的複雜單頁應用程式都能處理。 該程式庫等待頁面資源載入和JavaScript執行,確保捕獲完整渲染的頁面。
從URL建立PDF只需幾行程式碼:
using IronPdf;
var renderer = new ChromePdfRenderer();
// Configure for optimal web page capture
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.JavaScript(3000); // Wait for JavaScript
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
// Convert URL to PDF
var pdf = renderer.RenderUrlAsPdf("https://apple.com");
pdf.SaveAs("website-capture.pdf");
using IronPdf;
var renderer = new ChromePdfRenderer();
// Configure for optimal web page capture
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.JavaScript(3000); // Wait for JavaScript
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
// Convert URL to PDF
var pdf = renderer.RenderUrlAsPdf("https://apple.com");
pdf.SaveAs("website-capture.pdf");
Imports IronPdf
Dim renderer As New ChromePdfRenderer()
' Configure for optimal web page capture
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
renderer.RenderingOptions.EnableJavaScript = True
renderer.RenderingOptions.WaitFor.JavaScript(3000) ' Wait for JavaScript
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print
' Convert URL to PDF
Dim pdf = renderer.RenderUrlAsPdf("https://apple.com")
pdf.SaveAs("website-capture.pdf")
在處理異步載入內容的頁面時,RenderDelay選項被證明是無價的。 通過以毫秒為單位指定延遲,您可以確保AJAX調用完成並在PDF生成開始前渲染動態內容。 此功能使IronPDF與那些可能捕獲不完整頁面的簡單轉換器區分開來。
輸出

如何從頭開始以程式方式構建PDF?
雖然HTML到PDF轉換能優雅地處理大多數用例,但有時您需要對文件構建有精確控制。 IronPDF提供全面的API,以程式方式逐個元素構建PDF,完美適用於需要精确定位或與非HTML資料源工作的場景。
程式式建立新PDF文件賦予開發者對PDF物件、PDF字串和文件結構的完全控制。 這種級別的PDF操作在與原始文字工作或將多個資料源整合到複雜文件時尤為理想。
以程式方式建立新的PDF文件並新增內容:
using IronPdf;
// Start with a blank document
PdfDocument pdf = new PdfDocument(270, 270);
// Apply text stamps with precise positioning
TextStamper textStamper = new TextStamper()
{
Text = "Confidential Document",
FontSize = 40,
Color = IronSoftware.Drawing.Color.Black,
IsBold = true,
Opacity = 50,
VerticalAlignment = VerticalAlignment.Middle,
HorizontalAlignment = HorizontalAlignment.Center
};
// Add images
ImageStamper imageStamper = new ImageStamper(new Uri("https://ironpdf.com/img/svgs/iron-pdf-logo.svg"))
{
HorizontalAlignment = HorizontalAlignment.Center,
VerticalAlignment = VerticalAlignment.Bottom
};
// Apply the stamps
Stamper[] stamps = {textStamper, imageStamper };
pdf.ApplyMultipleStamps(stamps);
// Save the PDF
pdf.SaveAs("programmatic-document.pdf");
using IronPdf;
// Start with a blank document
PdfDocument pdf = new PdfDocument(270, 270);
// Apply text stamps with precise positioning
TextStamper textStamper = new TextStamper()
{
Text = "Confidential Document",
FontSize = 40,
Color = IronSoftware.Drawing.Color.Black,
IsBold = true,
Opacity = 50,
VerticalAlignment = VerticalAlignment.Middle,
HorizontalAlignment = HorizontalAlignment.Center
};
// Add images
ImageStamper imageStamper = new ImageStamper(new Uri("https://ironpdf.com/img/svgs/iron-pdf-logo.svg"))
{
HorizontalAlignment = HorizontalAlignment.Center,
VerticalAlignment = VerticalAlignment.Bottom
};
// Apply the stamps
Stamper[] stamps = {textStamper, imageStamper };
pdf.ApplyMultipleStamps(stamps);
// Save the PDF
pdf.SaveAs("programmatic-document.pdf");
Imports IronPdf
Imports IronSoftware.Drawing
' Start with a blank document
Dim pdf As New PdfDocument(270, 270)
' Apply text stamps with precise positioning
Dim textStamper As New TextStamper() With {
.Text = "Confidential Document",
.FontSize = 40,
.Color = Color.Black,
.IsBold = True,
.Opacity = 50,
.VerticalAlignment = VerticalAlignment.Middle,
.HorizontalAlignment = HorizontalAlignment.Center
}
' Add images
Dim imageStamper As New ImageStamper(New Uri("https://ironpdf.com/img/svgs/iron-pdf-logo.svg")) With {
.HorizontalAlignment = HorizontalAlignment.Center,
.VerticalAlignment = VerticalAlignment.Bottom
}
' Apply the stamps
Dim stamps As Stamper() = {textStamper, imageStamper}
pdf.ApplyMultipleStamps(stamps)
' Save the PDF
pdf.SaveAs("programmatic-document.pdf")
這種方法讓您可以完全控制元素的放置、分層和格式。 您可以通過結合多個圖章、調整水印的不透明度以及精確控制頁面上每個元素的位置來構建複雜的文件。

哪些高級功能可以增強您的PDF文件?
專業的PDF文件通常需要超出基本內容渲染的複雜功能。 IronPDF通過簡單、直觀的API提供企業級功能,無需深入了解PDF格式。 讓我們一起探索能將普通PDF轉變為專業文件的關鍵功能。
頁眉和頁腳
在所有頁面中新增一致的標題和頁腳增強了文件的專業性和導航性。 IronPDF支持基於文字和基於HTML的標題和頁腳:
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter() {
HtmlFragment = "<div style='text-align:center'>Annual Report 2024</div>",
Height = 25
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter() {
HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages}</div>",
Height = 20
};
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter() {
HtmlFragment = "<div style='text-align:center'>Annual Report 2024</div>",
Height = 25
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter() {
HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages}</div>",
Height = 20
};
Imports System
renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter() With {
.HtmlFragment = "<div style='text-align:center'>Annual Report 2024</div>",
.Height = 25
}
renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter() With {
.HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages}</div>",
.Height = 20
}
{page}和{total-pages}佔位符會自動填充正確的值,消除了手動頁碼統計。
輸出

安全性和加密
保護敏感文件需要強大的安全功能。 IronPDF實現了行業標準加密和許可控制:
// Set document passwords and permissions
pdf.SecuritySettings.UserPassword = "user123";
pdf.SecuritySettings.OwnerPassword = "owner456";
// Configure detailed permissions
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.NoPrint;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserFormData = false;
pdf.SecuritySettings.AllowUserAnnotations = false;
// Set document passwords and permissions
pdf.SecuritySettings.UserPassword = "user123";
pdf.SecuritySettings.OwnerPassword = "owner456";
// Configure detailed permissions
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.NoPrint;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserFormData = false;
pdf.SecuritySettings.AllowUserAnnotations = false;
' Set document passwords and permissions
pdf.SecuritySettings.UserPassword = "user123"
pdf.SecuritySettings.OwnerPassword = "owner456"
' Configure detailed permissions
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.NoPrint
pdf.SecuritySettings.AllowUserCopyPasteContent = False
pdf.SecuritySettings.AllowUserFormData = False
pdf.SecuritySettings.AllowUserAnnotations = False
這些安全設置確保您的文件保持機密且防篡改,滿足敏感商業文件的合規要求。 根據Microsoft的安全文件,正確的加密對於保護企業應用程式中的敏感資料至關重要。
保護的文件屬性

表單和互動性
互動式表單讓使用者可以填寫PDF表單字段,提交表單資料,甚至嵌入數位簽名以符合規定。 IronPDF簡化了表單填寫,並確保在.NET Core、.NET Framework或任何其他.NET組件中構建的網域應用程式中的文件屬性一致。
將靜態文件轉換為使用者可以數位填寫的互動式PDF表單:
// HTML forms automatically convert to PDF forms
string formHtml = @"
<form>
<label>Name:</label>
<label>Email:</label>
<label>Subscribe:</label>
<button type='submit'>Submit</button>
</form>";
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
var interactivePdf = renderer.RenderHtmlAsPdf(formHtml);
// HTML forms automatically convert to PDF forms
string formHtml = @"
<form>
<label>Name:</label>
<label>Email:</label>
<label>Subscribe:</label>
<button type='submit'>Submit</button>
</form>";
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
var interactivePdf = renderer.RenderHtmlAsPdf(formHtml);
' HTML forms automatically convert to PDF forms
Dim formHtml As String = "
<form>
<label>Name:</label>
<label>Email:</label>
<label>Subscribe:</label>
<button type='submit'>Submit</button>
</form>"
renderer.RenderingOptions.CreatePdfFormsFromHtml = True
Dim interactivePdf = renderer.RenderHtmlAsPdf(formHtml)
輸出

您應該為專案選擇哪種PDF建立方法?
選擇最佳的PDF生成方法取決於您的具體要求和現有架構。 每種方法都提供獨特的優勢,能符合不同專案的需求。
當您有現有網頁內容、需要保持與網站應用設計一致性或希望利用CSS進行樣式設計時,選擇HTML到PDF轉換。 此方法特別適用於報告、發票以及任何受益於相應設計原則的文件。 使用熟悉的網頁技術這一能力大大降低了開發時間和維護負擔。 請查看我們的HTML到PDF範例以了解實際應用。
當您需要對元素放置有像素完美的控制、使用非HTML資料源或需要複雜的分層和定位時,選擇程式生成。 此方法適用於技術圖紙、具有精確佈局的證書和需要準確規範的文件。 我們的API參考提供了所有程式功能的全面文件。
考慮使用URL到PDF轉換來捕獲實時資料、建立網站存檔或從現有網站應用生成報告。 此方法消除了重建現有網站功能的需要,並確保您的PDF始終反映最新資訊。
為了最大靈活性,在一個文件中結合多種方法。 首先將HTML轉換為PDF以作為主要內容,然後加入程式元素,例如水印或圖章。 這種混合方法充分利用每種方法的優勢,同時保持程式碼的簡潔。

即刻啟用IronPDF
使用IronPDF開啟您的PDF生成之旅需要最小的設置,卻能即時帶來成果。 IronPDF將PDF生成從一個複雜的挑戰轉變成一個簡單的任務。 其基於Chrome的渲染確保完美準確性,而直觀的API保持您的程式碼清晰且易於維護。 無論您是在構建新應用程式還是增強現有應用,IronPDF都提供您所需工具以提供專業的PDF功能。
該程式庫的廣泛功能超出了滿足您基本.NET PDF建立需求的覆蓋範圍。 瀏覽我們的教程以深入了解具體場景,瀏覽程式碼範例以獲取現成的解決方案,或深入閱讀全面文件以掌握.NET中PDF生成的每一個方面。
準備好革新您的PDF生成流程了嗎? 立即開始您的免費試用,親身體驗像素完美渲染和開發者友好API的差異。 憑藉專門支援和定期更新,您將在幾分鐘內而不是幾小時內生成專業的PDF。
針對生產部署,請探索我們靈活的授權選項,以配合您項目的規模和需求。 加入成千上萬信任IronPDF處理其關鍵任務PDF生成需求的開發者行列。 Iron Suite還提供超越PDF的全面文件處理功能,為您所有文件操作需求提供完整解決方案。
常見問題
IronPDF在.NET專案中的主要用途是什麼?
IronPDF主要用於.NET專案中建立、編輯和提取PDF文件的內容,確保開發者可在其應用中高效管理PDF。
IronPDF如何幫助管理多語言PDF文件?
IronPDF支援多語言PDF文件,允許開發者在不同主要操作系統之間無縫地建立和操作不同語言的PDF。
IronPDF可以合併多個PDF文件嗎?
是的,IronPDF可以將多個PDF文件合併成一個文件,這對於編制報告或將各種文件來源合併成一個文件非常有用。
可以使用IronPDF建立哪些型別的文件?
使用IronPDF,開發者可以建立各種文件型別,如發票、客戶報告以及網頁內容的快照,增強他們應用的專業性。
在.NET應用中擁有可靠的PDF建立工具有多重要?
像IronPDF這樣可靠的PDF建立工具可以節省時間並改善使用者體驗,確保文件管理流程流暢與專業。
IronPDF是否與主要操作系統相容?
是的,IronPDF設計為與主要操作系統相容,這使其成為.NET開發者在跨平台專案上工作的多功能選擇。
IronPDF如何改善開發流程?
IronPDF簡化了PDF建立和操作流程,讓開發者能專注於其他關鍵專案,同時確保高品質的文件處理。

