jspdf autotable中每列的宽度不同?
Different width for each columns in jspdf autotable?
我的 table 有 13 列。如何为每列获得不同的宽度?我可以像这样给每个列宽吗?
样式:{溢出:'linebreak',列宽:[100,80,80,70,80,80,70,70,70,70,60,80,100]},
我的 table 语法:
> 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'}, });
您必须将 columnWidth 数组转换为如下所示:
doc.autoTable({
html: '#table',
columnStyles: {
0: {cellWidth: 100},
1: {cellWidth: 80},
2: {cellWidth: 80},
// etc
}
});
注意使用 columnStyles
而不是 styles
。
比方说,[步骤、方法、过程、交付、结果] 都是我的 Table Headers.If 我想增加或减少 table 宽度平均值,
columnStyles: {
steps: {columnWidth:215},
Methods: {columnWidth: 60},
process: {columnWidth: 100},
Delivers: {columnWidth: 90},
Result: {columnWidth: 90}
}
这里可以指定每列的宽度。
在以前的版本 (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}
}
});
这只会将 id、名称、角色和位置固定为指定的限制。其余 headers 将相应调整 autotable.js
默认情况下 'columnsStyles' 在 'Options' 中没有,有必要创建它,下一步您定义 'columnWidth'。
Options['columnStyles'] = {
0: {columnWidth: 50},
1: {columnWidth: 'auto'},
2: {columnWidth: 'wrap'},
3: {columnWidth: 150}
}
JSPDF.autoTable(columns, values, Options)
我的 table 有 13 列。如何为每列获得不同的宽度?我可以像这样给每个列宽吗?
样式:{溢出:'linebreak',列宽:[100,80,80,70,80,80,70,70,70,70,60,80,100]},
我的 table 语法:
> 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'}, });
您必须将 columnWidth 数组转换为如下所示:
doc.autoTable({
html: '#table',
columnStyles: {
0: {cellWidth: 100},
1: {cellWidth: 80},
2: {cellWidth: 80},
// etc
}
});
注意使用 columnStyles
而不是 styles
。
比方说,[步骤、方法、过程、交付、结果] 都是我的 Table Headers.If 我想增加或减少 table 宽度平均值,
columnStyles: {
steps: {columnWidth:215},
Methods: {columnWidth: 60},
process: {columnWidth: 100},
Delivers: {columnWidth: 90},
Result: {columnWidth: 90}
}
这里可以指定每列的宽度。
在以前的版本 (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}
}
});
这只会将 id、名称、角色和位置固定为指定的限制。其余 headers 将相应调整 autotable.js
默认情况下 'columnsStyles' 在 'Options' 中没有,有必要创建它,下一步您定义 'columnWidth'。
Options['columnStyles'] = {
0: {columnWidth: 50},
1: {columnWidth: 'auto'},
2: {columnWidth: 'wrap'},
3: {columnWidth: 150}
}
JSPDF.autoTable(columns, values, Options)