大家好,我是深山踏红叶,今天来分享一个HTML 转 PDF 的相关库,DinkToPdf 是一个基于 .NET Core 的封装库,用于调用 wkhtmltopdf 库,通过 WebKit 渲染引擎将 HTML 页面转换为 PDF 文件。
核心功能• HTML 到 PDF 的转换:支持将 HTML 内容转换为 PDF 文件,同时提供多种页面设置和布局选项。
• 多线程支持:提供了同步转换器,适用于多线程应用程序和 Web 服务器。
• 丰富的配置选项:可以设置纸张大小、方向、边距、颜色模式等,还可以自定义页眉和页脚。
使用方法1. 安装依赖通过 NuGet 包管理器添加 DinkToPdf 依赖。
PM> Install-Package DinkToPdf
将本机库复制到项目的根文件夹。使用 P/Invoke 调用本机方法时,.NET Core 会从那里加载本机库。您可以在此处找到最新版本的本机库。为您的操作系统和平台(64 位或 32 位)选择合适的库。
2. 创建转换器实例根据应用场景选择 BasicConverter
或 SynchronizedConverter
。 var converter = new SynchronizedConverter(new PdfTools());
3. 构造 HTML 内容可以是直接的 HTML 字符串,也可以是通过 URL 获取的页面内容。
var doc = new HtmlToPdfDocument(){ GlobalSettings = { ColorMode = ColorMode.Color, Orientation = Orientation.Portrait, PaperSize = PaperKind.A4, Margins = new MarginSettings() { Top = 10 }, Out = @"C:TestThreadSafe\test.pdf", }, Objects = { new ObjectSettings() { Page = "https://www.dotnetshare.com/", }, }};
4. 配置转换文档通过 HtmlToPdfDocument
设置全局参数和对象参数。 var doc = new HtmlToPdfDocument(){ GlobalSettings = { ColorMode = ColorMode.Color, Orientation = Orientation.Landscape, PaperSize = PaperKind.A4Plus, }, Objects = { new ObjectSettings() { PagesCount = true, HtmlContent = @"Lorem ipsum dolor sit amet, consectetur adipiscing elit. In consectetur mauris eget ultrices iaculis. Ut odio viverra, molestie lectus nec, venenatis turpis.", WebSettings = { DefaultEncoding = "utf-8" }, HeaderSettings = { FontSize = 9, Right = "Page