40%节省
过去我们可能需要使用一个插件或一个包来处理OCR,再使用另一个来处理PDF,而现在它们都集成到一个低成本包中,对我们来说真的非常棒。
David Jones首席软件工程师阅读案例研究
从不再维护的wkhtmltopdf二进制文件迁移到现代的Chromium引擎。IronPDF是一个纯净的NuGet包,无本地库副本,全CSS3和JavaScript渲染,并积极维护。三行C#代码。
// DinkToPdf: load the native libwkhtmltox binary, then convert
using DinkToPdf;
using DinkToPdf.Contracts;
var ctx = new CustomAssemblyLoadContext();
ctx.LoadUnmanagedLibrary("libwkhtmltox.dll"); // copy per OS/arch
IConverter converter = new SynchronizedConverter(new PdfTools());
var doc = new HtmlToPdfDocument {
GlobalSettings = { PaperSize = PaperKind.A4 },
Objects = { new ObjectSettings {
HtmlContent = "<h1>Hello World</h1>" } }
};
byte[] bytes = converter.Convert(doc);
File.WriteAllBytes("output.pdf", bytes);
// IronPDF: pure NuGet, no native binary, actively maintained
using IronPdf;
var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
pdf.SaveAs("output.pdf");' DinkToPdf: load the native libwkhtmltox binary, then convert
Imports DinkToPdf
Imports DinkToPdf.Contracts
Dim ctx = New CustomAssemblyLoadContext()
ctx.LoadUnmanagedLibrary("libwkhtmltox.dll") ' copy per OS/arch
Dim converter As IConverter = New SynchronizedConverter(New PdfTools())
Dim doc = New HtmlToPdfDocument With {
.GlobalSettings = New GlobalSettings With {.PaperSize = PaperKind.A4},
.Objects = {New ObjectSettings With {
.HtmlContent = "<h1>Hello World</h1>"}
}
}
Dim bytes As Byte() = converter.Convert(doc)
File.WriteAllBytes("output.pdf", bytes)
' IronPDF: pure NuGet, no native binary, actively maintained
Imports IronPdf
Dim renderer = New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>")
pdf.SaveAs("output.pdf")| DinkToPdf | IronPDF | |
|---|---|---|
| 维护 | 最后发布于2018年,wkhtmltopdf不再维护 | 积极维护,定期发布 |
| 渲染引擎 | Qt WebKit,冻结于2015年 | 现代Chromium |
| 现代CSS / JS | 有限的flexbox、grid、JavaScript | 完整的CSS3、flexbox、grid、JavaScript |
| 部署 | 本地libwkhtmltox二进制文件,P/Invoke | 纯净的NuGet,无本地二进制文件 |
| 安全 | 继承了未修补的wkhtmltopdf CVEs | 维护和修补 |
| IIS主机托管 | (根据README)未测试与IIS的兼容性 | 在IIS、Azure和Docker上运行 |
| 并发 | 在负载下卡住/崩溃 | 线程安全,为服务器构建 |
| PDF编辑 | 转换加基本选项 | 编辑、合并、盖章、签名、表单 |
| 许可证与支持 | 免费,MIT,无支持 | 商业,永久,24/5的工程支持 |
为将不再维护的wkhtmltopdf包装器替换为现代的、支持的引擎而构建。
Install-Package IronPdf
IronPDF是用于C#中HTML到PDF的DinkToPdf维护替代品吗?是的!
我可以从被放弃的由DinkToPdf包装的wkhtmltopdf二进制文件中迁移吗?是的!
我可以在不复制本地libwkhtmltox库的情况下将HTML转换为PDF吗?是的!
IronPDF是否能渲染wkhtmltopdf无法做到的现代CSS、flexbox、grid和JavaScript?是的!
它是否可以在IIS、Azure和Docker上运行,而无需设置本地依赖?是的!
该库是否是线程安全的,能够进行并发的服务器端转换?是的!
我能否通过复杂的 HTML5、CSS3 和 JavaScript 呈现像素完美的 PDF?
我可以用一行C#代码将HTML字符串转换为PDF吗?是的!
我可以通过身份验证、Cookies和自定义头将URL转换为PDF吗?是的!
我可以从Razor、CSHTML或ASPX视图生成PDF吗?是的!
我可以在转换过程中添加自定义页眉、页脚、页码和水印吗?是的!
我可以在Docker、Azure Functions或AWS Lambda中运行HTML到PDF的转换吗?是的!
我能否使用该库将应用程序部署到 Linux、macOS 或 Windows 系统(包括 Docker 容器)?可以!
该库是否适用于高并发、多线程的服务器应用程序和接口?是的!
我能否设置自定义视口尺寸和打印介质CSS来控制响应式布局?可以!
IronPDF 是否兼容 Azure Functions?是的!
能否永久性地从PDF文档中删除敏感文本和图像?可以!
能否从需要通过自定义头、Cookie 或表单登录进行身份验证的 URL 生成 PDF?可以!
能否通过ObjectModel属性访问PDF DOM?可以!
能否通过编程方式填充、读取和扁平化交互式AcroForm?可以!
是否支持生成符合PDF/A和PDF/UA标准的文档,以满足归档和无障碍访问要求?是的!
我能否使用256位AES密码加密来保护文档并设置用户权限?可以!
我能否使用X.509证书对PDF文件进行数字签名申请和验证?可以!
我现在可以在我的实时项目中免费测试 IronPDF 吗?可以! 点击此处开始您的 30 天免费试用。




Nuget Downloads 20,389,208|版本:2026.7刚刚发布