HtmlToPdfDocument C#:将 HTML 转换为 PDF 的 DinkToPdf 替代程序
如果您在使用DinkToPdf中的 HtmlToPdfDocument C# 时遇到 CSS 支持有限、外部依赖性或性能问题,那么您并不孤单。 许多 .NET 开发人员都在寻求一种强大的 HTML 到 PDF 转换器,它可以处理现代 CSS、网络字体和 JavaScript 执行,而无需本地库设置或命令行工具。
IronPDF 是一个 .NET 库,带有基于 Chromium 的渲染引擎,只需几行代码即可轻松地将 HTML 文件、网页和 HTML 字符串转换为高质量的 PDF。
立即开始使用 NuGet 创建 PDF 文件:
使用 NuGet 包管理器安装 IronPDF
复制并运行这段代码。
IronPdf.ChromePdfRenderer .StaticRenderHtmlAsPdf("<h1>Hello World</h1>") .SaveAs("output.pdf");部署到您的生产环境中进行测试
DinkToPdf 与IronPDF相比有何优势?
DinkToPdf 是 wkhtmltopdf 的 .NET Core 封装程序,使用较早的 WebKit 渲染引擎。虽然它是开源的,但开发人员在尝试将 HTML 转换为 PDF 时往往会面临挑战。
| 特征 |DinkToPdf|IronPDF| |---|---|---| |渲染引擎|WebKit(过时)|Chromium (现代)| |CSS 支持|有限的 CSS 支持|完整的 CSS3、现代 CSS| |JavaScript 执行| 有限的 |完整的 JavaScript 渲染| |本地依赖性|需要 wkhtmltopdf 二进制文件|无外部依赖性| |网络字体|部分翻译|全面支持| |.NET Core / .NET 5+| 是 |是(.NET Core、Framework、Standard)| |Azure 应用服务|复杂的设置|开箱即用| |线程|需要单例|线程安全| |HTML 模板| 基本的 |高级功能| |可填写的 PDF 表单| 否 | 是 |
核心区别在于渲染引擎。DinkToPdf 的 WebKit 引擎难以处理复杂的文档、现代 CSS 和动态网页内容。IronPDF的 Chromium 引擎生成的 PDF 文档与您在浏览器中看到的完全一致。
DinkToPdf 的 HtmlToPdfDocument 类会带来哪些问题?

DinkToPdf 中的 HtmlToPdfDocument 类需要进行繁琐的配置,并且会影响 PDF 转换:
using DinkToPdf;
class Program
{
static void Main(string[] args)
{
//DinkToPdfrequires native library setup and singleton converter
var converter = new SynchronizedConverter(new PdfTools());
var DOC = new HtmlToPdfDocument()
{
GlobalSettings = { PaperSize = PaperKind.A4, Out = "output.pdf" },
Objects = { new ObjectSettings() { HtmlContent = "<h1>Hello</h1>" } }
};
converter.Convert(doc);
}
}using DinkToPdf;
class Program
{
static void Main(string[] args)
{
//DinkToPdfrequires native library setup and singleton converter
var converter = new SynchronizedConverter(new PdfTools());
var DOC = new HtmlToPdfDocument()
{
GlobalSettings = { PaperSize = PaperKind.A4, Out = "output.pdf" },
Objects = { new ObjectSettings() { HtmlContent = "<h1>Hello</h1>" } }
};
converter.Convert(doc);
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comDinkToPdfPDF 输出

常见问题包括:简单 PDF 生成任务的 PDF 生成速度慢、网络服务器上的线程复杂性以及使用 JavaScript 处理网络内容的困难。 wkhtmltopdf 命令行工具给 Azure 应用服务的部署带来了挑战。
如何使用IronPDF将简单的 HTML 字符串转换为 PDF?

IronPDF 通过更简洁的 API 和卓越的 PDF 输出质量简化了 HTML 到 PDF 的转换。 ChromePdfRenderer 可处理所有 HTML 内容—从简单的 HTML 字符串到复杂的 HTML 页面。
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
// Convert simple HTML string to PDF
string htmlContent = @"
<!DOCTYPE html>
<html
<head>
<style>
body { font-size: 14px; text-align: center; }
h1 { color: #2563eb; }
</style>
</head>
<body>
<h1>Professional Invoice</h1>
<p>Generated with modern CSS support</p>
</body>
</html>";
var PDF = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("invoice.pdf");
}
}using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
// Convert simple HTML string to PDF
string htmlContent = @"
<!DOCTYPE html>
<html
<head>
<style>
body { font-size: 14px; text-align: center; }
h1 { color: #2563eb; }
</style>
</head>
<body>
<h1>Professional Invoice</h1>
<p>Generated with modern CSS support</p>
</body>
</html>";
var PDF = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("invoice.pdf");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comIronPDFPDF 输出
。
这段代码演示了IronPDF如何在 HTML 转换过程中处理 HTML 代码和 CSS 样式,生成具有适当字体大小渲染和文本对齐属性的 PDF 文档—所有这些都不需要外部依赖性。 PDF 库将在内部处理一切事务。
从输出目录将 HTML 转换为 PDF.
用于转换输出目录中的 HTML 文件:
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
// Easily convert HTML files to PDF format
var DOC = renderer.RenderHtmlFileAsPdf("templates/input.html");
doc.SaveAs("example.pdf");
}
}class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
// Easily convert HTML files to PDF format
var DOC = renderer.RenderHtmlFileAsPdf("templates/input.html");
doc.SaveAs("example.pdf");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.com渲染的 PDF 文件
。
如何将网页 URL 转换为 PDF?
转换实时网页内容是 IronPdf 的强项。 与DinkToPdf有限的 JavaScript 渲染功能不同,IronPDF 支持动态 HTML 元素和交互式表单。
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
// Enable JavaScript execution for dynamic content
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.RenderDelay(500);
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
string url = "https://en.wikipedia.org/wiki/Main_Page";
var page = renderer.RenderUrlAsPdf(url);
page.SaveAs("webpage.pdf");
}
}using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
// Enable JavaScript execution for dynamic content
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.RenderDelay(500);
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
string url = "https://en.wikipedia.org/wiki/Main_Page";
var page = renderer.RenderUrlAsPdf(url);
page.SaveAs("webpage.pdf");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.com将 URL 转换为 PDF.

这种方法非常适合从网络表单中生成发票。 在生成 PDF 文件之前,渲染引擎会处理所有网络字体、CSS 样式和 JavaScript,这对大规模 PDF 生成至关重要。
如何配置 PDF 输出设置?
两个库都提供配置,但IronPDF对生成的 PDF 提供了更直观的控制:
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
renderer.RenderingOptions.TextHeader.CenterText = "Company Report";
renderer.RenderingOptions.TextFooter.CenterText = "{page} of {total-pages}";
var document = renderer.RenderHtmlAsPdf("<h1 style='text-align: center;'>Quarterly Report</h1>");
document.SaveAs("configured-report.pdf");
}
}class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
renderer.RenderingOptions.TextHeader.CenterText = "Company Report";
renderer.RenderingOptions.TextFooter.CenterText = "{page} of {total-pages}";
var document = renderer.RenderHtmlAsPdf("<h1 style='text-align: center;'>Quarterly Report</h1>");
document.SaveAs("configured-report.pdf");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.com输出PDF
。
这些代码片段展示了如何控制纸张大小、页边距、页眉和页脚。IronPDF还支持高级功能,如操作 PDF 文档、可填写的 PDF 表单和转换多个 HTML 文档,这些功能是 HtmlToPdfDocument 无法提供的。
为什么要从DinkToPdf转用 IronPDF?
对于在 .NET Core 应用程序中使用 HtmlToPdfDocument 的开发人员来说,IronPDF 具有关键优势:
- 现代渲染:Chromium 引擎可处理 HTML 结构、现代 CSS 和 JavaScript 执行,从而创建像素级完美呈现的 PDF 文档。
- 零设置:无需 wkhtmltopdf 二进制文件或命令行工具配置
- 更好的性能:更快的 PDF 转换,不受单机线程限制
- 全面网络支持:使用网络字体和复杂的 HTML 模板转换 HTML 文档内容
- 企业就绪:部署到 Azure 应用服务、Web 服务器和 Visual Studio 环境中
- 格式灵活性:多种文件格式,包括 HTML 页面、URL 和 PDF 文档
HTML 至 PDF 转换器设计用于生产—简单的 PDF 生成任务或具有交互式表单和 HTML 元素 ID 目标的复杂工作流。
结论
虽然DinkToPdf的 HtmlToPdfDocument 类提供了基本的 HTML 到 PDF 的转换,但其过时的 WebKit 引擎和外部依赖性给现代 .NET 开发带来了麻烦。IronPDF通过基于 Chromium 的渲染、全面的 CSS 支持和无忧的部署实现了卓越的效果。
准备好无限制地将 HTML 转换为 PDF 吗? 开始免费试用,从任何 HTML 内容生成 PDF 文档,或为您的团队探索许可选项。IronPDF不仅仅是一个简单的 HTML 转 PDF 库,请务必查看 文档,了解它的所有功能!
常见问题解答
什么是IronPDF?
IronPDF 是一个功能强大的库,用于使用 C# 将 HTML 转换为 PDF,完全支持现代 CSS、JavaScript 执行和网络字体。它可作为 DinkToPdf 的替代工具,性能更佳,且无需依赖本地程序。
为什么要选择 IronPDF 而不是 DinkToPdf?
与 DinkToPdf 相比,IronPDF 具有多项优势,包括完全支持 CSS、无需本地库设置或命令行工具,以及得益于其 Chromium 渲染引擎的卓越性能。
IronPDF 如何提高 HTML 到 PDF 转换的性能?
IronPDF 使用 Chromium 渲染技术高效处理 HTML、CSS 和 JavaScript,与 DinkToPdf 等其他替代工具相比,转换速度更快,输出保真度更高。
IronPdf 支持现代网络字体吗?
是的,IronPDF 完全支持现代网络字体,可在 PDF 文档中准确呈现字体。
IronPDF 能否在 PDF 转换过程中处理 JavaScript 的执行?
当然,IronPDF 可以在转换过程中执行 JavaScript,确保在生成的 PDF 中准确呈现动态内容。
使用 IronPDF 需要哪些依赖项?
IronPDF 不需要任何本地依赖项,因此无需额外设置即可轻松集成到您的 .NET 项目中。
IronPdf 是否完全支持 CSS?
是的,IronPDF 提供全面的 CSS 支持,能够将具有高级样式的复杂 HTML 文档转换为 PDF。
IronPDF 如何处理外部库或工具?
IronPdf 不依赖外部库或命令行工具,简化了设置并减少了潜在的兼容性问题。
IronPDF 使用哪种渲染引擎?
IronPDF 使用基于 Chromium 的渲染引擎,可实现准确、高性能的 HTML 到 PDF 转换。
IronPDF 是否适合正在寻找 HTML 转 PDF 解决方案的 .NET 开发人员?
是的,IronPDF 是.NET 开发人员的理想选择,它是一种强大、高效的 HTML 到 PDF 转换解决方案,全面支持现代网络标准。






