【问题标题】:DataTables Print button not working, prints a blank pageDataTables 打印按钮不起作用,打印空白页
【发布时间】:2017-07-18 19:39:24
【问题描述】:

我正在开发一个项目,该项目使用 DataTables 插件从数据库中构建单词表。这是我用来创建表的函数。

var word_data_filtered = filterWordData(filter_states);
words_table = $("#words_generated").DataTable({
    "data" : word_data_filtered,
    "columns" : columns,
    "aLengthMenu": [[25, 50, 100, 200, -1],
            [25, 50, 100, 250, "All"]],
    "pageLength": 100,
    dom: "lBftipr",
    buttons: [
       'print',
    ]
});

按钮是 DataTables 的附加插件/附加组件。所以我实际上要复制并粘贴我包含在文件头部的各种脚本的主要部分,部分原因是如果我遗漏了一些我想知道的东西。

  <script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
 <script src="//cdn.datatables.net/1.10.7/js/jquery.dataTables.min.js">
 </script>
 <script src="//cdn.datatables.net/plug-ins/1.10.7/integration/bootstrap/3/dataTables.bootstrap.css"></script>
 <script src="//cdn.datatables.net/plug-ins/1.10.7/integration/bootstrap/3/dataTables.bootstrap.js"></script>
 <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
 <link rel="stylesheet" href="https://cdn.datatables.net/tabletools/2.2.4/css/dataTables.tableTools.min.css"/>
 <script src="https://cdn.datatables.net/tabletools/2.2.4/js/dataTables.tableTools.min.js"></script>
 <script src="https://cdn.datatables.net/tabletools/2.2.4/swf/copy_csv_xls_pdf.swf"></script>

 <script src="https://cdn.datatables.net/buttons/1.3.1/js/dataTables.buttons.min.js"></script>
 <script src="https://cdn.datatables.net/buttons/1.3.1/js/buttons.print.min.js"></script>

所以现在我有一个显示在页面上的“打印”按钮。但在我的 chrome 浏览器中,打印按钮不起作用。

点击后,会打开一个新标签页,其中 google chrome 的打印面板设置在表格顶部。但是,打印面板会提示您打印空白页。打印预览显示一个空白页面(嗯,顶部有一个标题,就是这样)打印面板下的表格看起来与我网页上的表格完全一样,所以我假设我已经做了一些实际打印出整个表格的方法。

但还是这样。我真的不知道为什么会发生这种情况,我不确定如何进一步进行

【问题讨论】:

    标签: javascript jquery printing datatables


    【解决方案1】:

    打印视图按钮将获取表中显示的数据的副本(基于 exportOptions 参数中给出的选择器选项)并构造一个新的临时表,该表显示在新窗口中。

    我认为您可能需要指定 exportOptions 以指示打印按钮应该打印哪些表格数据。

    https://datatables.net/reference/button/print

    【讨论】:

      【解决方案2】:

      我遇到了同样的问题,结果发现在它打开的新页面中,您拥有来自父页面的所有 CSS。在我的 CSS 中,我发现这个定义会隐藏所有打印内容:

      @media print {
        body * {
          visibility: hidden;
        }
      

      【讨论】:

        猜你喜欢
        • 2018-07-04
        • 1970-01-01
        • 1970-01-01
        • 2015-05-18
        • 1970-01-01
        • 2018-11-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多