当前位置: 移动技术网 > IT编程>开发语言>.net > .net core 使用Rotativa创建PDF文档

.net core 使用Rotativa创建PDF文档

2019年10月04日  | 移动技术网IT编程  | 我要评论

曼城vs阿森纳,夫妻一场演员表,晋城五个人出名了

一、下载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() 
{ 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如下:

   

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网