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
相关产品推荐
相关产品推荐

