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

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

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

但是当我想使用 Rotativa 插件和 wkhtmltopdf 生成此仪表板的 pdf 时,但它无法正常工作,它会生成包含数据但不显示图表的 pdf。

session 申请:

服务器端:ASP.Net MVC5

客户端:Javascript、Rotativa、C3js

最佳答案

在我类似的情况下,我发现 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 导出 View 。

然后,我为 rotativa PDF 输出制作了 View 的副本,其中使用了此静态布局。

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

关于javascript - 如何使用 Rotativa 生成 PDF,包括来自 C3JS Asp.net 的图表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46346765/

相关文章:

asp.net - $.ajax,异步 :false, 和 IE 9+

javascript - 在 Javascript 中重置 FilePond 输入

javascript - 如何在 SignalR 上获取已连接客户端的列表

c# - 为什么 WebBrowser 控件有这种奇怪的行为?

c# - 如何限制长时间运行的命令行 EXE 以避免占用 CPU?

c# - OWIN ApiController 访问请求正文/字符串化 JSON

asp.net - 使用 SQL Server 存储过程创建层次结构树并以 xml 形式返回

javascript - 使用 update() 将数据同时写入完全独立的位置

javascript - 使用 twilio javascript 客户端调用号码时捕获接受事件

javascript - React 递归遍历嵌套对象