Различная ширина для каждого столбца в jspdf автоматически?
В моей таблице 13 столбцов. Как я могу получить разную ширину для каждого столбца? Могу ли я указать ширину каждого столбца?
стили: {переполнение: 'linebreak', columnWidth: [100,80,80,70,80,80,70,70,70,70,60,80,100]},
Моя таблица Синтаксис:
> var res = doc.autoTableHtmlToJson(document.getElementById(tableID));
> doc.autoTable(res.columns, res.data, { styles: {overflow: 'linebreak'
> ,columnWidth: [100,80,80,70,80,80,70,70,70,70,60,80,100]}, startY:
> 60, bodyStyles: {valign: 'top'}, });
Ответы
Ответ 1
Вам нужно преобразовать массив columnWidth, чтобы он выглядел так:
doc.autoTable({
html: '#table',
columnStyles: {
0: {columnWidth: 100},
1: {columnWidth: 80},
2: {columnWidth: 80},
// etc
}
});
Обратите внимание на использование columnStyles
вместо styles
.
Ответ 2
В предыдущем выпуске (1.3.4) он мог бы сделать, как показано ниже:
var columns = [
{title: "Signum", dataKey: "signum"},
{title: "Name", dataKey: "name"},
{title: "Role", dataKey: "role"},
{title: "Location", dataKey: "location"}
]
Но последний из них, то есть 2.3.2, требует формата ниже
doc.autoTable(colums,data,{
addPageContent:pageContent,
margin: {horizontal:5,top: 20},
startY: 0.47*doc.internal.pageSize.height,
styles: {overflow: 'linebreak'},
columnStyles: {
id: {columnWidth: 25},
name:{columnWidth:40},
role: {columnWidth: 15},
location: {columnWidth: 30}
}
});
Это фиксирует только идентификатор, имя, роль и местоположение в указанных пределах. Остальные другие заголовки будут соответственно отрегулированы autotable.js
Ответ 3
Скажем, [шаги, методы, процесс, поставки, результаты] - все мои заголовки таблиц. Если я хочу увеличить или уменьшить значение ширины таблицы,
columnStyles: {
steps: {columnWidth:215},
Methods: {columnWidth: 60},
process: {columnWidth: 100},
Delivers: {columnWidth: 90},
Result: {columnWidth: 90}
}
Здесь вы можете указать ширину каждого столбца.
Ответ 4
По умолчанию "columnsStyles" не имеют в "Options", что необходимо создать его, и на следующем шаге вы определите "columnWidth".
Options['columnStyles'] = {
0: {columnWidth: 50},
1: {columnWidth: 'auto'},
2: {columnWidth: 'wrap'},
3: {columnWidth: 150}
}
JSPDF.autoTable(columns, values, Options)