You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core 6.0下免费优雅的HTML转PDF方案咨询

ASP.NET Core 6.0 免费HTML转PDF(URL生成)方案推荐

以下几个现代、免费的方案适配ASP.NET Core 6.0,支持通过URL生成PDF:

1. PuppeteerSharp

基于Chromium内核的开源库,完美支持现代HTML/CSS/JS渲染,是目前最可靠的方案之一,完全免费且活跃维护。

用法步骤:

  1. 安装NuGet包:Install-Package PuppeteerSharp
  2. 首次使用自动下载Chromium,后续可跳过,编写生成逻辑:
using PuppeteerSharp;

public async Task<byte[]> GeneratePdfFromUrlAsync(string url)
{
    // 首次运行自动下载Chromium
    await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);

    await using var browser = await Puppeteer.LaunchAsync(new LaunchOptions
    {
        Headless = true,
        Args = new[] { "--no-sandbox", "--disable-setuid-sandbox" } // 容器环境需额外配置
    });

    await using var page = await browser.NewPageAsync();
    await page.GoToAsync(url, WaitUntilNavigation.Networkidle0); // 等待页面完全加载

    return await page.PdfAsync(new PdfOptions
    {
        Format = PaperFormat.A4,
        PrintBackground = true // 渲染背景色与图片
    });
}

优缺点:

  • ✅ 渲染精度高,支持复杂页面、JS动态内容
  • ✅ 跨平台兼容(Windows/Linux/macOS)
  • ⚠️ 首次启动需下载约150MB的Chromium包,首次调用耗时较长

2. DinkToPdf

基于wkhtmltopdf的.NET Core封装,轻量且无需依赖大型浏览器内核,适合对资源占用有要求的场景,完全免费。

用法步骤:

  1. 安装NuGet包:Install-Package DinkToPdf
  2. 根据操作系统下载对应版本的wkhtmltopdf二进制文件,配置服务:
// Program.cs中注入转换服务
var converter = new SynchronizedConverter(new PdfTools());
builder.Services.AddSingleton<IConverter>(converter);
  1. 编写生成逻辑:
using DinkToPdf;

public byte[] GeneratePdfFromUrl(string url, IConverter converter)
{
    var doc = new HtmlToPdfDocument()
    {
        GlobalSettings = {
            PaperSize = PaperKind.A4,
            Orientation = Orientation.Portrait
        },
        Objects = {
            new ObjectSettings() {
                Page = url,
                WebSettings = { DefaultEncoding = "utf-8" }
            }
        }
    };

    return converter.Convert(doc);
}

优缺点:

  • ✅ 资源占用低,启动速度快
  • ✅ 支持URL、HTML字符串转PDF
  • ⚠️ 对现代CSS(如Flexbox、Grid)支持有限,复杂页面可能出现渲染问题
  • ⚠️ 需要手动适配不同操作系统的wkhtmltopdf二进制文件

3. HtmlRenderer.PdfSharpCore

PDFSharp的.NET Core分支,专注于HTML到PDF的转换,轻量且开源免费,适合简单静态页面场景。

用法步骤:

  1. 安装NuGet包:Install-Package HtmlRenderer.PdfSharpCore
  2. 编写生成逻辑:
using PdfSharpCore.Drawing;
using TheArtOfDev.HtmlRenderer.PdfSharp;

public byte[] GeneratePdfFromUrl(string url)
{
    // 先获取URL对应的静态HTML内容
    using var client = new HttpClient();
    var htmlContent = client.GetStringAsync(url).Result;

    using var document = new PdfSharpCore.Pdf.PdfDocument();
    PdfGenerator.AddPdfPages(document, htmlContent, PageSize.A4);

    using var stream = new MemoryStream();
    document.Save(stream);
    return stream.ToArray();
}

优缺点:

  • ✅ 轻量无额外依赖,集成简单
  • ⚠️ 不支持JS动态内容,仅渲染静态HTML
  • ⚠️ 复杂CSS样式支持有限

内容的提问来源于stack exchange,提问作者hiks

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 12:35:27