HTML转PDF C#转换
作为IronPDF的开发者,我们理解使用IronPDF创建的PDF文档不仅需要完美无瑕,还要与客户的期望完全一致。 这个C# PDF 教程将教你如何为你的 HTML-to-PDF 转换器进行构建。C# 应用程序, 项目和网站。 我们将开发一个C# HTML到PDF的转换器,而IronPDF输出的PDF文档将与Google Chrome浏览器生成的PDF像素完全相同。
IronPDF 功能:
- 从:HTML、URL、JavaScript、CSS 和多种图像格式生成 PDF 文件。
- 添加页眉/页脚、签名、附件、密码和安全性
- 性能优化:完全多线程和异步支持
概述
如何用 C# 将 HTML 转换为 PDF
C#和VB.NET的HTML到PDF转换器
在 .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 生态系统内外以多种语言工作。
下载并安装HTML到PDF的C#库
开始在您的项目中使用IronPDF,并立即获取免费试用。
查看 IronPDF 上 Nuget 用于快速安装和部署。它有超过800万次下载,正在使用C#改变PDF。
Install-Package IronPdf
考虑安装 IronPDF DLL 直接。下载并手动安装到您的项目或GAC表单中: IronPdf.zip
手动安装到你的项目中
下载DLLVisual Studio - NuGet 包管理器
在 Visual Studio 中,右键单击项目解决方案资源管理器,选择“管理 NuGet 包...”,然后简单搜索 IronPDF,并将最新版本安装到你的解决方案中... 单击确定以关闭任何弹出的对话框。这在 VB.NET 项目中同样有效。
Install-Package IronPdf
NuGet 网站上的 IronPDF
有关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")
RenderHtmlAsPdf
完全支持 HTML5、CSS3、JavaScript 和图像。 如果这些资源在硬盘上,我们可能希望将 RenderHtmlAsPdf
的第二个参数设置为资产所在的目录。
IronPDF将按HTML在Chrome中的显示方式准确呈现您的HTML内容。
我们提供了一个完整的教程,专门教您如何设置 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\")
所有引用的CSS样式表、图像和JavaScript文件将相对于BaseUrlPath
,并可以保存在整洁且逻辑的结构中。 当然,您也可以选择引用在线的图片、样式表和资产,包括 Google Fonts 等网络字体,甚至是 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")
您会注意到,通过我们的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
主页:可查看屏幕和打印图像的全面对比这里.
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
我们可以通过渲染一个高级的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")
响应式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
从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")
这种方法的优点是允许开发人员在开发过程中在浏览器中测试HTML内容。 我们推荐使用Chrome,因为IronPDF的渲染引擎基于此网络浏览器。
转换为XML to 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")
在以下操作指南文章中探索所有渲染选项:如何使用渲染选项.
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>"}
PDF页眉和页脚中的动态数据
我们可以使用占位符将内容“邮件合并”到文本中,甚至是页眉和页脚的HTML中,例如:
- {页码}当前页面号码
- {总页数}PDF 中的总页数
- {网址}从网页渲染的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
我们可能还希望改变打印页边距的大小,以便在页面上留出更多空白,为大页眉或页脚留出空间,甚至为商业印刷小册子或海报设置零页边距:
: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
我们可能希望打开或关闭 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
还可以设置我们输出的 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
在以下操作指南文章中探索所有渲染选项:“如何使用渲染选项."
应用 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")
如果 HTML 文件较长,我们通常可以使用任意占位符,如 ````[[姓名]]并稍后将其替换为真实数据。
以下示例将创建三个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
使用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>
'
要渲染 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")
您可以从 https://github.com/rexm/Handlebars.NET 了解更多有关 handlebars html 模板标准及其 C# 使用的信息。
使用HTML5添加分页符
在 PDF 文档中,一个常见的需求是分页。 开发人员需要控制 PDF 页面开始和结束的位置,以获得清晰、易读的布局。
最简单的方法是使用一个不太为人所知的 CSS 技巧,它会在任何打印的 HTML 文档中插入分页符。
<div style='page-break-after: always;'> </div>
<div style='page-break-after: always;'> </div>
提供的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>
方法概要 更多使用分页符的技巧和窍门
将封面附加到PDF
IronPDF让合并PDF文档变得简单。 这种技术最常见的用法是为现有的已呈现的PDF文档添加封面或背面。
为此,我们首先渲染一个封面页面,然后使用 PdfDocument.Merge
()静态方法,用于合并 2 个文档。
: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")
完整的代码示例可在此处找到: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")
完整的代码示例可在此处找到:PDF 水印代码示例
下载C#源代码
此教程的完整免费 HTML 转 PDF 转换器 C# 源代码可作为压缩的 Visual Studio 2022 项目文件下载。它将使用其渲染引擎在 C# 中生成 PDF 文档对象。
免费下载包含了将HTML创建为PDF所需的一切 - 包括用于以下内容的C# PDF代码示例:
- 使用C#将HTML字符串转换为PDF
- HTML 文件转 PDF 在 C# 中(支持 CSS、JavaScript 和图像)
- C# 使用 URL 将 HTML 转换为 PDF("URL到PDF")
- C# PDF编辑和设置示例
- 将 JavaScript 画布图表(如 d3.js)渲染为 PDF
- 用于 C# 的 PDF 库
类参考
开发人员可能还对 IronPdf.PdfDocument
类参考感兴趣:
https://ironpdf.com/object-reference/api/IronPdf.PdfDocument.html
此对象模型展示了 PDF 文档如何:
- 加密和密码保护
- 编辑或“标记”新的HTML内容
- 增强了前景和背景图像
- 合并、连接、截断和拼接于页面或文档级别
OCR处理以提取纯文本和图像
Blazor HTML 转 PDF
将HTML到PDF的功能添加到您的Blazor服务器非常简单,只需:
- 创建一个新的Blazor服务器项目或使用一个现有的项目
- 使用NuGet将IronPDF库添加到您的项目中
- 添加一个新的 Razor 组件或使用现有的组件
- 添加一个
InputTextArea
并将其链接到IronPDF 让IronPDF负责其余的部分并部署
可以在以下位置找到包含图片和代码示例的完整分步指南这里.
与其他 PDF 库的比较
在将HTML转换为PDF时,在线上有几个开源选项可用,例如iTextSharp和PdfSharp,这些可以在GitHub等平台上找到。 这些库是免费使用的,对于希望避免购买库的开发者来说,这些是吸引人的选择。 然而,在 .NET Core 项目中使用这些解决方案而不使用库可能会带来限制,特别是对于如精确渲染现代 HTML5、CSS3 或 JavaScript 内容等高级任务。
与 IronPDF 不同,后者提供了一个完整、功能丰富且易于集成的 HTML 转 PDF 解决方案,开源替代方案往往需要更多的手动努力,并且可能缺乏对某些功能的支持。 IronPDF为.NET Core开发者提供了一个更加流畅的开箱即用体验,使他们能够生成PDF文件而无需自己处理许多技术复杂性。
PDFSharp
PDFSharp 是一个免费的开源库,允许在 .NET 中对 PDF 文档进行逻辑编辑和创建。
PDFSharp和IronPDF之间的一个关键区别是,IronPDF具有嵌入式Web浏览器,能够从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提供的功能,或使用wkhtmltopdf在LGPL开源许可下的HTML到PDF转换。
C# 的 HTML 转 PDF 的一个关键区别是iTextSharpIronPDF 的优势在于,它通过使用嵌入的基于 Chrome 的网络浏览器进行更高级和更准确的 HTML 到 PDF 渲染,而不是 iText 中使用的传统 wkhtmltopdf。
IronPDF API 与 iTextSharp 不同,IronPDF 具有明确的商业或私人使用许可,而 iTextSharp 的 AGLP 许可仅适用于将完整源代码免费提供给每位用户的应用程序——即使是互联网上的用户。
我们提供了完整的差异分析在我们的 iTextSharpC# 文档页面。
其他商业图书馆
Aspose PDF、Spire PDF、EO PDF 和 SelectPdf 是其他供应商的竞争 .NET 商业 PDF 库。 IronPDF 拥有相对强大的功能集、出色的兼容性、完善的文档编写和合理的价格定位。 您可以查看IronPDF、竞争对手和Chrome本身之间的比较。这里.
观看HTML转PDF教程视频
通过 PDF 文档,您可以访问以下链接,了解如何在Chrome中打开PDF而不下载它.教程快速访问
在 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 文档。该 "小抄 "提供了在 C# 和 VB.NET 中生成和编辑 PDF 的常用函数和示例的快速访问方法,可帮助您节省在.NET 项目中开始使用 IronPDF 的时间。
下载