如何在DataTables pdf导出中按CSS类自定义列字体(大小和样式)?

如何在DataTables pdf导出中按CSS类自定义列字体(大小和样式)?,datatables,pdfmake,datatable-buttons,Datatables,Pdfmake,Datatable Buttons,你们能告诉我如何使用css类在DataTables html5 PDF导出的customize(doc)函数中更改doc对象的列字体大小和权重吗 我有一个datatable,其中一些列必须是粗体的,并且比其他列大 我有以下按钮定义(,这似乎不起作用 $('.data-table').DataTable({ buttons: [ { extend: 'pdfHtml5', text: '<i class=

你们能告诉我如何使用css类在DataTables html5 PDF导出的customize(doc)函数中更改doc对象的列字体大小和权重吗

我有一个datatable,其中一些列必须是粗体的,并且比其他列大

我有以下按钮定义(,这似乎不起作用

$('.data-table').DataTable({
buttons: [
            {
                extend: 'pdfHtml5',
                text: '<i class="fa fa-file-pdf-o fa-lg" style="color: red"></i> PDF',
                titleAttr: 'Export to PDF',
                orientation: 'auto',
                className: 'btn btn-default',

                customize: function (doc) {
                    doc.defaultStyle.fontSize = 8;

                    doc.content[1].table.widths = ['*', 70, 70];

                    doc.styles['td.bigcol'] = {
                        fontSize: 16,
                        bold: true,
                    };

                    doc.content.splice(1, 0, {
                        margin: [0, 0, 0, 12],
                        image: 'data:image/png;base64,' + imageStr,
                        fit: [80, 80]
                    });

                }
            }
        ]
});
$('.data table').DataTable({
按钮:[
{
扩展:“pdfHtml5”,
文本:“PDF”,
titleAttr:“导出为PDF”,
方向:“自动”,
类名:“btn btn默认值”,
自定义:功能(文档){
doc.defaultStyle.fontSize=8;
doc.content[1].table.widths=['*',70,70];
文档样式['td.bigcol']={
尺寸:16,
黑体字:对,
};
文件内容拼接(1,0{
边距:[0,0,0,12],
image:'data:image/png;base64'+imageStr,
拟合:[80,80]
});
}
}
]
});
我的表格与此相似:

<table class="table data-table">
<thead>
<tr>
   <td class="bigCol">
            Some List of things
        </td>
        <td></td>
        <td></td>
    </tr>
</thead>

<tbody>
    <tr>
        <td class="bigCol">On List 1</td>
        <td></td>
        <td></td>
    </tr>
    <tr>
        <td>data</td>
        <td>data</td>
        <td>data</td>
    </tr>
    <tr>
        <td>data</td>
        <td>data</td>
        <td>data</td>
    </tr>
    <tr>
        <td>data</td>
        <td>data</td>
        <td>data</td>
    </tr>
    <tr>
        <td class="bigCol">list 1 totals</td>
        <td>data</td>
        <td>data</td>
    </tr>
  </tbody>
</table>

一些事情的清单
在清单1中
数据
数据
数据
数据
数据
数据
数据
数据
数据
清单1总计
数据
数据
这与列表9类似。该表在浏览器窗口中正确显示,但pdf格式为ayayayyy


谢谢。

终于得到了……在他的帮助下

在customize函数中,使用Jquery I循环遍历每个表的行,然后遍历每个行的列以获得行索引和列索引,然后使用doc对象中表上的这些索引来定义列的样式

doc.content[1].table.widths = ['*', 70, 70];

$('.data-table').find('tr').each(function(ix, row) {
    var index = ix;

    $(row).find('td').each(function(ind, column) {
        if ($(column).hasClass('bigCol')) {

            var fontSize = $(column).css('font-size').replace('px', '');

            doc.content[1].table.body[index][ind].style = {
                fontSize: parseInt(fontSize)
                bold: true
            };
        }
    });
});

DOM表上的索引相当于文档的表体对象上的索引

谢谢。我有点困惑。在公认的答案中,“行”从哪里来?他们自己在那里创建文档对象(如果我没有弄错的话)。我想要设置样式的列不一定是奇数行或偶数行,它们可能在任何地方。我想使用DataTables创建的doc参数表,并将字体样式添加到其中,我认为使用公共类会更容易。我可能误解了您的问题:(