微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在js Autotable中检测表格的高度

如何解决如何在js Autotable中检测表格的高度

我正在尝试动态获取我使用 jsPDF 和 js Autotable 创建的 PDF 中表格的高度。我想在表格下方添加一行文本,但是由于表格高度发生变化,我无法为文本行添加特定的 Y 值。

我当前的表脚本:

let col = ['Header 1','Header 2','Header 3']
let rows = arrayForTable;

let getTableWidth = 150;
let pageWidth = doc.internal.pageSize.width;
let tableMargin = (pageWidth - getTableWidth) / 2;
let height = 0;

doc.autoTable(col,rows,{
   margin: {top: 20,right: tableMargin,left: tableMargin},startY: 70,styles: {
      halign: 'center',overflow: 'linebreak',cellWidth: 'wrap',valign: 'middle'
   },columnStyles: {
      0: {cellWidth: 50},1: {cellWidth: 50},2: {cellWidth: 50},},headStyles: {
      fillColor: [163,32,32]
   },didParseCell: function(data) {
      if (data.row.index === rows.length - 1) {
         data.cell.styles.fillColor = [63,63,64];
         data.cell.styles.fontStyle = 'bold';
         data.cell.styles.textColor = [255,255,255];
      }
      height = data.table.height
   }
});

console.log(height)

控制台打印 undefined。任何人都知道如何在此表下动态添加一行文本,而无需像这样指定静态 Y 值:

doc.text(25,40,exampleText);

由于显示的数据不同,表格高度每次都会发生变化。

我使用的是 jsPDF AutoTable 插件 v3.5.6。

解决方法

据我了解,您想在表格下方添加文本。您可以读取最后一个单元格 Y 位置,而不是尝试读取表格高度。你需要做的是这样

let height = 0;
....
didParseCell: function(data) {
      ...
      height = data.cursor.y + data.row.height;
   }
....

然后可以调整要添加的文字的位置,例如我想在表格和文字之间添加10间隙

doc.text("exampleText",25,height + 10);
,

使用

获取光标在Y轴上的位置

didDrawPage

这将正好在桌子之后。 这在 Angular 2 中对我有用:

let yPos = 0;
pdf.autoTable({
    ...
    didDrawPage: function(data) {
        yPos = data.cursor.y;
    }
}

jspdf 版本:

"jspdf": "^2.3.1",

"jspdf-autotable": "^3.5.14",

来源: Table height is always 0 #604

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?