javascript - 如何使 PDF 表格的数据表宽度为 100%

标签 javascript jquery datatable

我有一个表,我将其保存为数据表中的 pdfHtml5。我试图使表格全宽,但没有成功。如何使用 pdfHtml5 的样式使表格宽度为 100%?

  dom: 'Bfrtip',
                buttons: [
                  {
                      extend: 'collection',
                      text: '<div class="image"><img src="/Asset/Image/Capture.jpg" alt="" /></div>',
                      autoClose: true,
                      buttons: [{
                          extend: 'pdfHtml5', text: 'Download PDF Document', className: 'pdfdoc', title: podTitle, message: pod.data.pod_description_text + "\n" + "\n" + printDate, customize: function (doc) {
                              doc.defaultStyle.alignment = 'left';
                              doc.styles.tableHeader.alignment = 'left';
                              doc.styles.message = {
                                  alignment: 'center'
                              }
                                    doc.styles.table = {
                                  alignment: 'center',
                                  width: '100%',
                              }

                              /*doc.content[1].table.widths = Array(doc.content[1].table.body[0].length + 1).join('*').split('');*/
                              doc.pageMargins = [ 80, 20, 80, 20 ];

                          }
                      }, { extend: 'excel', text: 'Download Excel Document', className: 'exceldoc' },
                      ]
                  }
                ]
            });

enter image description here

最佳答案

通过进一步扩展 pdfHtml5,您可以指示 Buttons 扩展使用的 pdfmake 库使用 100% 宽度。 DataTables 论坛有一个post与所需的代码:

var tbl = $('.dTable');
var settings={};
settings.buttons = [
    {
        extend:'pdfHtml5',
        text:'Export PDF',
        orientation:'landscape',
        customize : function(doc){
            var colCount = new Array();
            $(tbl).find('tbody tr:first-child td').each(function(){
                if($(this).attr('colspan')){
                    for(var i=1;i<=$(this).attr('colspan');$i++){
                        colCount.push('*');
                    }
                }else{ colCount.push('*'); }
            });
            doc.content[1].table.widths = colCount;
        }
    }
];
$('.dTable').dataTable(settings);

请注意,如果您只是复制上面代码的自定义部分,则必须将 tbl 替换为 "#myTable" 或类似内容。

另请参阅相关的 GitHub ticket ,包括另一个 implementation (可能会也可能不会过时)。

关于javascript - 如何使 PDF 表格的数据表宽度为 100%,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43075403/

相关文章:

javascript - getElementsByTagName 问题

javascript - Chrome 对已加载的图像发出 GET 请求?

javascript - 全宽菜单 JavaScript 选择器

javascript - jquery datatable如何动态添加行并在另一行中显示一些相似的行单元格数据

javascript - angularjs - $http 读取 json 并等待回调

javascript - html5 Canvas 填充文本随着sketch.js消失

JavaScript onchange 函数不起作用

javascript - 选择单选按钮时隐藏输入

c# - DataColumnCollection 不包含 Cast 的定义

javascript - jquery 数据表过滤行