jsPDF自动表宽列内容不破

时间:2017-04-03 16:22:36

标签: pdf export jspdf jspdf-autotable

我正在使用jsPDF自动表从表中获取html内容并在jsPDF文档中显示以进行导出,但无论我尝试什么,似乎无法按照我的意愿获得列宽的打破/包装。

理想情况下,表格和列会自动计算宽度,长列内容包含多行,类似于此处的“long:overflow linebreak”示例:https://simonbengtsson.github.io/jsPDF-AutoTable/#long

虽然我使用的是示例中的相同代码,但它不会以相同的方式生成。

exportGraph = function () {
    var doc = new jsPDF();
    var elem = document.getElementById("basic-table");
    var res = doc.autoTableHtmlToJson(elem);

    doc.autoTable(res.columns, res.data, {
        startY: 15,
        margin: { horizontal: 0 },
        bodyStyles: { valign: 'top' },
        styles: { overflow: 'linebreak', columnWidth: 'wrap' },
        columnStyles: { text: { columnWidth: 'auto' } }
    });

    doc.save('test.pdf');
};

jsfiddle example

任何帮助都会非常感激,因为现在变得非常令人沮丧!!

3 个答案:

答案 0 :(得分:8)

示例中的text键是对示例数据中datakey的引用。当您使用autoTableToHtml函数时,您的数据键将基于整数,因此您的columnStyles应如下所示:

columnStyles: {
  2: {
    columnWidth: 'auto'
  }
}

现阶段没有很好地记录这一点。我在即将发布的版本3的文档中写了一篇关于它的部分。

答案 1 :(得分:0)

在新版本中不推荐使用

columnWidth 。它已重命名为 cellWidth

  columnStyles: {
      2: {
        cellWidth: 'auto'
      }
    }

答案 2 :(得分:0)

columnWidth 在较新版本中已弃用。它被重命名为 cellWidth。

columnStyles: {
  2: {
    cellWidth: 'auto'
  }
}

错误:未定义自动