前言:此方法基于wkhtmltopdf插件(在github开源,项目地址),以及Rotativa的nuget包(在github开源,.net formwork地址, .net core 地址)
此方法不涉及到wkhtmltopdf插件的使用,只需要下载解压到项目文件bin目录下即可
使用方法参考博客 rotativa包在.net的使用
此实例是在.net core的使用
-
下载wkhtmltopdf插件压缩包
官网下载地址 https://wkhtmltopdf.org/downloads.html ,官网下载很慢
蓝奏云地址 https://wwr.lanzoui.com/iL2JAw0c2xe -
新建.net项目,可以.net fromwork也可以.net core,安装不同Rotativa包就行
.net fromwork的包地址 https://www.nuget.org/packages/Rotativa
命令安装Install-Package Rotativa -Version 1.7.3
控制台安装的包名Rotativa.net core的包地址 https://www.nuget.org/packages/Rotativa.AspNetCore
命令安装:Install-Package Rotativa.AspNetCore -Version 1.2.0
控制台安装的包名Rotativa.AspNetCorenuget包的安装不会的可以百度
安装命令 -
将wkhtmltopdf压缩包下的bin目录三个文件复制到项目运行目录下的relative文件夹内
-
在Startup文件中注册wkhtmltopdf.exe所在地址
RotativaConfiguration.Setup(@"运行程序绝对地址", "relative"); //调试时最好写绝对地址避免异常
//可以使用自动获取地址,但是此方法获取到的地址是web的根目录,不是可执行程序的目录
//RotativaConfiguration.Setup(env.ContentRootPath, "relative"); .net core通过exe可执行程序启动网站时可以使用此方法
-
控制器中使用方法
Rotativa需要在方法中传入视图,最好为mvc架构
[HttpGet]
public IActionResult Get()
{
ViewData["Name"] = "mio,hello";
return new ViewAsPdf("index", ViewData);
}
ViewAsPdf方法含有大量几个重载方法,支持传入多个不同参数
分享一下个人写的实例代码,蓝奏云下载 https://wwr.lanzoui.com/ikiOpw0dafa