如何使用Rotativa生成PDF,包括来自C3JS Asp.net的图表

时间:2017-09-21 14:35:10

标签: javascript c# asp.net pdf c3.js

我在其中一个项目上处理dashaboard统计信息,并且我使用C3js将图表添加到我的信息中心,并且一切正常,

但是当我想使用Rotativa Plugin和wkhtmltopdf生成此仪表板的pdf时,但它不能正常工作,它会生成带有数据但不显示图表的pdf。

加密应用

服务器端:ASP.Net MVC5

客户端:Javascript,Rotativa,C3js

1 个答案:

答案 0 :(得分:0)

在我类似的情况下,我发现Rotiva没有出去拿我所有的文件,和/或花了太长时间。

所以我决定了什么是至关重要的,并把它放到一个“静态布局”中,其中包含我需要内联的所有东西。这可能包括您需要正确呈现的CSS文件或您包含的javascript文件。如果您转到这些文件,您可以将其内容复制并粘贴到此静态布局中的样式或脚本标记中,现在Rotativa将拥有这些有效负载而无需去获取它们。

//Layout Static
@{
    Layout = null;
}
<!DOCTYPE html>
<html>
    <head>
        <title>@ViewBag.Title</title>
        <meta charset="utf-8" />

        <style type="text/css">
            body {
                color: white;
            }
            /*Whatever style info needed*/
        </style>

        <script type="text/javascript">
            /*Whatever code needed*/
        </script>
    </head>
    <body>
        <div class="container">
            @RenderBody()
        </div>
    </body>
</html>

我把它放到一个布局中,替换了我的标准布局,仅用于rotiva导出视图。

然后,我制作了rotativa PDF输出视图的副本,它使用了这种静态布局。

@model SomeModel
@{
    ViewBag.Title = "Some Title";
    Layout = "~/Views/Shared/_LayoutStatic.cshtml";
}