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

ASP.NET Core MVC 7中使用Rotativa导出HTML为PDF遇异常求助

解决Rotativa.AspNetCore在ASP.NET Core 7中生成PDF时的ArgumentNullException问题

这个异常的核心原因是Rotativa无法找到依赖的wkhtmltopdf二进制文件路径,以下是具体解决步骤:

  • 部署wkhtmltopdf二进制文件
    Rotativa依赖wkhtmltopdf工具生成PDF,需手动下载对应系统架构(x86/x64)的wkhtmltopdf包,解压后在项目根目录创建wkhtmltopdf文件夹,将可执行文件(Windows为wkhtmltopdf.exe,Linux/macOS为wkhtmltopdf)放入该目录。

  • 配置Rotativa路径
    在Program.cs中添加Rotativa的服务配置,指定wkhtmltopdf的完整路径:

    var builder = WebApplication.CreateBuilder(args);
    
    // 注册其他服务...
    
    builder.Services.AddRotativa(options =>
    {
        // Windows环境示例
        options.WkhtmltopdfPath = Path.Combine(Directory.GetCurrentDirectory(), "wkhtmltopdf", "wkhtmltopdf.exe");
        // Linux/macOS环境示例(需确保文件有执行权限)
        // options.WkhtmltopdfPath = Path.Combine(Directory.GetCurrentDirectory(), "wkhtmltopdf", "wkhtmltopdf");
    });
    
    var app = builder.Build();
    
    // 中间件配置...
    
  • 确保文件随项目发布
    右键项目→属性→生成→复制到输出目录,将wkhtmltopdf文件夹下的所有文件设置为始终复制或较新时复制,保证发布后服务器上能找到这些文件。

  • 升级Rotativa.AspNetCore版本(可选)
    你当前使用的1.2.0版本可能存在与ASP.NET Core 7的兼容性问题,尝试升级到最新稳定版:

    Install-Package Rotativa.AspNetCore -Version 1.2.1
    
  • 验证视图存在性
    确认名为PDF的Razor视图存在于对应控制器的Views目录(如Views/Home/PDF.cshtml)或Shared目录下,避免因视图找不到引发的间接错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 03:53:16