Server : Apache System : Linux host44.registrar-servers.com 4.18.0-513.18.1.lve.2.el8.x86_64 #1 SMP Sat Mar 30 15:36:11 UTC 2024 x86_64 User : vapecompany ( 2719) PHP Version : 7.4.33 Disable Function : NONE Directory : /proc/thread-self/root/home/vapecompany/demo.vapecompany.com.bd/resources/views/backend/reports/ |
Upload File : |
jsPDFAPI.table = function (x,y, data, headers, config) { if (!data) { throw 'No data for PDF table'; } var headerNames = [], headerPrompts = [], header, i, ln, cln, columnMatrix = {}, columnWidths = {}, columnData, column, columnMinWidths = [], j, tableHeaderConfigs = [], model, jln, func, //set up defaults. If a value is provided in config, defaults will be overwritten: autoSize = false, printHeaders = true, fontSize = 12, margins = NO_MARGINS; margins.width = this.internal.pageSize.width; if (config) { //override config defaults if the user has specified non-default behavior: if(config.autoSize === true) { autoSize = true; } if(config.printHeaders === false) { printHeaders = false; } if(config.fontSize){ fontSize = config.fontSize; } if(config.margins){ margins = config.margins; } } /** * @property {Number} lnMod * Keep track of the current line number modifier used when creating cells */ this.lnMod = 0; lastCellPos = { x: undefined, y: undefined, w: undefined, h: undefined, ln: undefined }, pages = 1; this.printHeaders = printHeaders; this.margins = margins; this.setFontSize(fontSize); this.table_font_size = fontSize; // Set header values if (headers === undefined || (headers === null)) { // No headers defined so we derive from data headerNames = Object.keys(data[0]); } else if (headers[0] && (typeof headers[0] !== 'string')) { var px2pt = 0.264583 * 72 / 25.4; // Split header configs into names and prompts for (i = 0, ln = headers.length; i < ln; i += 1) { header = headers[i]; headerNames.push(header.name); headerPrompts.push(header.prompt); columnWidths[header.name] = header.width *px2pt; } } else { headerNames = headers; } if (autoSize) { // Create a matrix of columns e.g., {column_title: [row1_Record, row2_Record]} func = function (rec) { return rec[header]; }; for (i = 0, ln = headerNames.length; i < ln; i += 1) { header = headerNames[i]; columnMatrix[header] = data.map( func ); // get header width columnMinWidths.push(this.getTextDimensions(headerPrompts[i] || header).w); column = columnMatrix[header]; // get cell widths for (j = 0, cln = column.length; j < cln; j += 1) { columnData = column[j]; columnMinWidths.push(this.getTextDimensions(columnData).w); } // get final column width columnWidths[header] = jsPDFAPI.arrayMax(columnMinWidths); } } // -- Construct the table if (printHeaders) { var lineHeight = this.calculateLineHeight(headerNames, columnWidths, headerPrompts.length?headerPrompts:headerNames); // Construct the header row for (i = 0, ln = headerNames.length; i < ln; i += 1) { header = headerNames[i]; tableHeaderConfigs.push([x, y, columnWidths[header], lineHeight, String(headerPrompts.length ? headerPrompts[i] : header)]); } // Store the table header config this.setTableHeaderRow(tableHeaderConfigs); // Print the header for the start of the table this.printHeaderRow(1, false); } // Construct the data rows for (i = 0, ln = data.length; i < ln; i += 1) { var lineHeight; model = data[i]; lineHeight = this.calculateLineHeight(headerNames, columnWidths, model); for (j = 0, jln = headerNames.length; j < jln; j += 1) { header = headerNames[j]; this.cell(x, y, columnWidths[header], lineHeight, model[header], i + 2, header.align); } } this.lastCellPos = lastCellPos; this.table_x = x; this.table_y = y; return this; };