使用 jsPDF,jsPDF 自动表格左对齐文本

问题描述

如何设置标题左对齐,我使用的是jspdf和jspdf-auto table javascript库

enter image description here

代码

const doc = new jsPDF("p","pt","a4");
doc.autoTable({
  startY: 130,margin: { top: 80,bottom: 20 },didDrawPage: function (data) {
    data.settings.margin.top = 40;
  },bodyStyles: { 2: { halign: 'right' },4: { halign: 'right' },5: { halign: 'right' },6: { halign: 'right' },7: { halign: 'right' } },columnStyles: { 2: { halign: 'right' },headStyles: { halign: 'right' },// Purple
  body: this.PDFArray,columns: Object.keys(this.PDFArray[0]).map((column) => ({
    header: column,dataKey: column,})),theme: "plain",tableWidth: "auto",});

解决方法

headStyles: { halign: 'right' } 会将标题行中的所有单元格设置为右对齐。

如果您想设置单个标题单元格的样式,请将 headStyles 替换为 didParseCell

    didParseCell: data => {
      if (data.cell && data.cell.section === 'head') {
        switch (data.cell.raw) {
          case "SI.":
          case "Particulars":
          case "Unit":
              data.cell.styles.halign = 'left'
            break;
          default:
            data.cell.styles.halign = 'right'
            break;
        }
      }
    }

您还可以按照相同的方法设置其他样式属性,例如 fontfontSizefontStylefillColor 等。

注意标题列名称的大小写,否则单元格可能无法按照您想要的方式设置格式。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...