jspdf中每列的不同宽度可自动调整吗?

Abd*_*man 12 jspdf jspdf-autotable

我的桌子有13列.如何为每列获得不同的宽度?我可以像这样给每列宽度吗?

styles:{overflow:'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'},  });
Run Code Online (Sandbox Code Playgroud)

Sim*_*son 25

您必须将columnWidth数组转换为如下所示:

doc.autoTable({
  html: '#table',
  columnStyles: {
    0: {columnWidth: 100},
    1: {columnWidth: 80},
    2: {columnWidth: 80},
    // etc
  }
});
Run Code Online (Sandbox Code Playgroud)

注意使用columnStyles而不是styles.


Pik*_*oon 6

在之前的版本(1.3.4)中,它可以完成如下:

var columns = [
          {title: "Signum", dataKey: "signum"},
          {title: "Name", dataKey: "name"},
          {title: "Role", dataKey: "role"},
          {title: "Location", dataKey: "location"} 
          ]
Run Code Online (Sandbox Code Playgroud)

但最新的一个即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}
    }
  });
Run Code Online (Sandbox Code Playgroud)

这将仅将id,名称,角色和位置修复为指定的限制.其他标题将由autotable.js相应调整