首页 文章

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

提问于
浏览
7

我的 table 有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'},  });

3 回答

  • 4

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

    doc.autoTable(res.columns, res.data, {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}
        }
      });
    

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

  • 15

    让我们说,[步骤,方法,过程,交付,结果]都是我的表格 Headers . 如果我想增加或减少表格宽度,

    columnStyles: {
        steps: {columnWidth:215},
        Methods: {columnWidth: 60},
        process: {columnWidth: 100},
        Delivers: {columnWidth: 90},
        Result: {columnWidth: 90}
    }
    

    您可以在此处指定每个列宽 .

相关问题