一、下载Rotaiva
工具 = > NuGet包管理器 = > 管理办理方案的NuGet步伐包
在打开的页面中搜刮 Rotativa.AspNetCore 如下图:
选中红框的记录,左边会出现你办理方案中的所有项目,选中要添加的项目点击安装,安装完成后项目背面会出现版本号,如下图:
二、配置Rotaiva
在Startup.cs的Rotaiva方法中添加以下内容:
- RotativaConfiguration.Setup(env);
复制代码
完备代码如下:
- public void Configure(IApplicationBuilder app, IHostingEnvironment env)
- {
- if (env.IsDevelopment())
- {
- app.UseDeveloperExceptionPage();
- }
- else
- {
- app.UseExceptionHandler("/Home/Error");
- }
- RotativaConfiguration.Setup(env);//RotativaConfiguration 转PDF 功能
- app.UseStaticFiles();
- app.UseCookiePolicy();
- app.UseMvc(routes =>
- {
- routes.MapRoute(
- name: "default",
- template: "{controller=Home}/{action=Index}/{id?}");
- });
- }
- }
复制代码
添加PDF转换工具
在wwwroot目次下添加Rotativa目次 ,再把wkhtmltoimage.exe和wkhtmltopdf.exe复制进去,
此两个文件在此网站下载:https://github.com/webgio/Rotativa.AspNetCore
如下图:
三、开始创建静态PDF档
在HomeController 下创建一个Action,如下图:
- [HttpGet]
- public IActionResult Pdf()
- {
- return new ViewAsPdf("Pdf");
- }
复制代码
然后创建cshtml
- @{
- ViewData["Title"] = "Pdf";
- }
- <h2>Pdf</h2>
复制代码
启动项目,打印页面,可以看到下载pdf页面,终极PDF如下:
四、创建动态PDF档
创建Controller
- [HttpGet]
- public IActionResult PdfDemo()
- {
- List<tbl_page> pageList = new List<tbl_page>();
- pageList.Add(new tbl_page() <br /> {
- page_name="1",
- page_no="1"
- });
- pageList.Add(new tbl_page()
- {
- page_name = "2",
- page_no = "2"
- });
- pageList.Add(new tbl_page()
- {
- page_name = "3",
- page_no = "3"
- });
- return new ViewAsPdf(pageList);
- }
复制代码
天生cshtml
- @model IEnumerable<NetCoreApiDemo.Model.tbl_page>
- @{
- ViewData["Title"] = "PdfDemo";
- }
- <h2>PdfDemo</h2>
- <table class="table table-bordered">
- <thead>
- <tr>
- <th>page_no</th>
- <th>page_name</th>
- </tr>
- </thead>
- <tbody>
- @foreach (var item in Model)
- {
- <tr>
- <td>@item.page_no</td>
- <td>@item.page_name</td>
- </tr>
- }
- </tbody>
- </table>
复制代码
终极天生PDF如下:
来源:https://www.cnblogs.com/zbspace/p/11617725.html |