Как настроить шрифт столбца (размер и стиль) по классу CSS в экспорте PDF-файла DataTables?
Не могли бы вы, ребята, показать мне, как изменить размер и вес шрифта столбца из объекта doc в функции customize (doc) DataTables html5 PDF Export, используя класс css.
У меня есть дата, где некоторые столбцы должны быть жирным шрифтом и больше, чем другие.
У меня есть следующее определение кнопок (которое, кажется, не работает
$('.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]
});
}
}
]
});
моя таблица похожа на это:
<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>
это продолжается как список 9. Таблица корректно отображается в окне браузера, но pdf ayayayyy
Благодарю.
1 ответ
Наконец-то получил.. с помощью этого поста.
В функции customize, используя Jquery, я делаю цикл по каждой строке таблицы, затем по столбцу каждой строки, чтобы получить индекс строки и индекс столбца, а затем использую эти индексы таблицы в объекте 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 эквивалентны индексам в объекте тела таблицы документа