javascript - 如何在 Angular 中使用 Datatables.Net 创建自定义打印预览屏幕

标签 javascript jquery html css angular

我在 Angular 中使用 Datatables.Net。一切正常。 我能够添加打印按钮并预览表格的内容。但我想自定义它并在我的表格上方添加更多详细信息,以便在预览中我可以看到我想要添加的数据,我这样做是为了打印内容或将其另存为 .pdf。

正在寻找可以添加将在打印预览中呈现的动态 html 代码的内容

下面是我的Datatable初始化方法

 $('#myTable').DataTable({
            data: this.data,
            retrieve: true,
            orderClasses: false,
            responsive: true,
            scrollX: true,
            paging: true,
            dom: 'Bfrtip',
            buttons: [
                {
                    extend: 'excelHtml5',
                    title: 'Excel',
                },

                {
                    extend: 'print',
                    title: 'Print Table',
                }
            ],

            "columns": [

                { "data": "Col1", className: "text-center", width: "17%" },
                { "data": "Col2", className: "text-center", width: "17%" },
                { "data": "Col3", className: "text-center", width: "20%" },
                { "data": "Col4", className: "text-center", width: "20%" },
                { "data": "Col5", className: "text-center", width: "17%" }

            ]
        });

index.html 上的 css 引用


<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.19/css/jquery.dataTables.min.css">

<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/responsive/2.2.3/js/dataTables.responsive.min.js">

<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/buttons/1.5.2/css/buttons.dataTables.min.css">

我的 angular-cli 中的脚本引用

"assets/datatable/js/jquery.dataTables.min.js",
"assets/datatable/js/dataTables.buttons.min.js",
"assets/datatable/js/buttons.flash.min.js",
"assets/datatable/js/jszip.min.js",
"assets/datatable/js/pdfmake.min.js",
"assets/datatable/js/vfs_fonts.js",
"assets/datatable/js/buttons.html5.min.js",
"assets/datatable/js/buttons.print.min.js",

最佳答案

试试这个 DataTables

在脚本中的打印标题下添加以下代码

 {
       extend: 'print',
       title: '',
       customize: function (win) {

       $(win.document.body)
      .css('font-size', '10pt')
      .prepend(
      '<img src="http://datatables.net/media/images/logo-fade.png" style="position:absolute; top:0; left:0;" />');

       $(win.document.body).find('table')
       .addClass('compact')
       .css('font-size', 'inherit');

       var innerHtmlData = "<div class=" + '"row text-center" style="font-size:22px;font-weight:bold;">Header</div>';
       win.document.activeElement.innerHTML = innerHtmlData;

                                    }
}

可以自定义预览,添加到activeElement的innerHtml

关于javascript - 如何在 Angular 中使用 Datatables.Net 创建自定义打印预览屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57925774/

相关文章:

javascript - 当我尝试在 Ionic 中使用列表时,为什么会出现此 JavaScript 错误?

javascript - 如何在 Shopify 上默认选择输入列表的第一个单选按钮选项?

javascript - 为什么 JQuery .empty() 不起作用?

javascript - 使用 jQuery 设置动态创建的文本框的值

jquery - .toggle 在 IE8 中无法正常工作

html - 为什么我的外部 css 文件不起作用?

http-equiv 上的 Javascript Hook ="refresh"

javascript - 在外部浏览器中打开链接

javascript - 如何删除从其他网站加载数据的图像链接?

javascript - 为 jQuery 位置变量获取未定义