【问题标题】:jsPDF auto table wide column content not breakingjsPDF自动表宽列内容不中断
【发布时间】:2021-07-30 02:22:35
【问题描述】:

我正在使用 jsPDF Auto Table 从表格中获取 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

任何帮助将不胜感激,因为现在这真的令人沮丧!

【问题讨论】:

    标签: pdf export jspdf jspdf-autotable


    【解决方案1】:

    示例中的text 键是对示例数据中数据键的引用。当您使用 autoTableToHtml 函数时,您的数据键将基于整数,因此您的 columnStyles 应该像这样:

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

    【讨论】:

    • 太棒了,这就是门票!谢谢西蒙。很棒的插件:)
    • @Simon,我可以换行和居中对齐使用 doc.text() 创建的文本还是仅适用于 doc.autoTable()?
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

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

      错误:未定义自动

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多