diff --git a/src/modules/cell.js b/src/modules/cell.js index 01e59f833..1c69dbaa8 100644 --- a/src/modules/cell.js +++ b/src/modules/cell.js @@ -442,7 +442,7 @@ import { jsPDF } from "../jspdf.js"; }); } - if (autoSize) { + if (autoSize || (Array.isArray(headers) && typeof headers[0] === "string")) { var headerName; for (i = 0; i < headerNames.length; i += 1) { headerName = headerNames[i]; diff --git a/test/reference/table-autoSize-headerNames.pdf b/test/reference/table-autoSize-headerNames.pdf new file mode 100644 index 000000000..9ec04ddbd Binary files /dev/null and b/test/reference/table-autoSize-headerNames.pdf differ diff --git a/test/specs/cell.spec.js b/test/specs/cell.spec.js index aa13b31b3..918da94fc 100644 --- a/test/specs/cell.spec.js +++ b/test/specs/cell.spec.js @@ -71,16 +71,18 @@ describe("Module: Cell", () => { })); } - var header = createHeaders([ + var headerNames = [ "coin", "game_group", "game_name", "game_version", "machine", "vlt" - ]); + ]; - it("table", () => { + var header = createHeaders(headerNames); + + it("table with CellConfig[]", () => { var doc = new jsPDF({ putOnlyUsedFonts: true, orientation: "landscape", @@ -90,6 +92,26 @@ describe("Module: Cell", () => { comparePdf(doc.output(), "table.pdf"); }); + it("table with string[] and without autoSize", () => { + var doc = new jsPDF({ + putOnlyUsedFonts: true, + orientation: "landscape", + floatPrecision: 2 + }); + doc.table(1, 1, generateData(100), headerNames); + comparePdf(doc.output(), "table-autoSize-headerNames.pdf"); + }); + + it("table with string[] and autoSize", () => { + var doc = new jsPDF({ + putOnlyUsedFonts: true, + orientation: "landscape", + floatPrecision: 2 + }); + doc.table(1, 1, generateData(100), headerNames, { autoSize: true }); + comparePdf(doc.output(), "table-autoSize-headerNames.pdf"); + }); + it("table-autoSize", () => { var doc = new jsPDF({ putOnlyUsedFonts: true, diff --git a/types/index.d.ts b/types/index.d.ts index 4a353a76a..638d6744b 100644 --- a/types/index.d.ts +++ b/types/index.d.ts @@ -563,6 +563,18 @@ declare module "jspdf" { y: number; } + export interface TableConfig { + printHeaders?: boolean; + autoSize?: boolean; + margins?: number; + fontSize?: number; + padding?: number; + headerBackgroundColor?: string; + css?: { + "font-size": number; + }; + } + export interface CellConfig { name: string; prompt: string; @@ -981,9 +993,9 @@ declare module "jspdf" { table( x: number, y: number, - data: any, - headers: string[], - config: any + data: { [key: string]: string }[], + headers: string[] | CellConfig[], + config: TableConfig ): jsPDF; calculateLineHeight( headerNames: string[],