jspdf-autotable文字超出一行时自动换行

jspdf-autotable并不会自动调整单元格高度以适应多行文本。如果希望单元格的高度能够根据内容自动调整

import jsPDF from 'jspdf';
import 'jspdf-autotable';

const doc = new jsPDF();

const data = [
  ['Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.'],
  ['Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.']
];

const columns = [
  { header: 'Text' }
];

doc.autoTable({
  head: [columns],
  body: data,
  didDrawCell: (data) => {
    if (data.column.index === 0 && data.cell.section === 'body') {
      const text = data.cell.raw;
      const cellWidth = data.cell.width;
      const cellHeight = data.cell.height / doc.internal.scaleFactor();
      doc.text(text, data.cell.x + 2, data.cell.y + cellHeight / 2, { baseline: 'middle' });
      doc.setFillColor(255, 255, 255);
      doc.rect(data.cell.x, data.cell.y, cellWidth, cellHeight, 'F');
    }
  },
  bodyStyles: { valign: 'middle' },
  cellStyles: { overflow: 'linebreak', fontSize: 10, fontStyle: 'normal', textColor: [0, 0, 0] }
});

doc.save('table.pdf');

使用了cellStyles选项来设置单元格样式。其中,overflow: 'linebreak’表示当文字超出一行时自动换行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值