Closed Genuris closed 6 years ago
Hi!
I've come with some sort of solution, at least for header with rowspan and colspan, I hope it helps you:
1st header's row column has rowspan 2. We use bootstrap table. here's table's settings:
`settingsBono: { striped: true, //pagination: true, //pageSize: 15, //pageList: [15, 25, 50, 100, 200], search: false, toolbarAlign: 'center', exportTypes: ['csv', 'excel'], formatShowingRows: function(pageFrom, pageTo, totalRows) { 'use strict'; return 'Mostrando ' + pageFrom + ' al ' + pageTo + ' de ' + totalRows + ' registros'; }, formatRecordsPerPage: function(pageNumber) { 'use strict'; return pageNumber + ' registros por página'; }, formatLoadingMessage: function() { 'use strict'; return 'Cargando, espere por favor...'; }, formatSearch: function() { 'use strict'; return 'Buscar'; }, formatNoMatches: function() { 'use strict'; return 'No se encontro información'; }, columns: [ [{ "field": "BANKER", "title": "BANKER", "colspan": 1, "rowspan": 2, "valign": "middle", }, { "title": "Franquicia GM Neta", "colspan": 5, "rowspan": 1,
},
{
"title": "Franquicia GM Neta",
"colspan": 5,
"rowspan": 1,
},
{
"title": "TAM",
"colspan": 5,
"rowspan": 1,
}],
[
// inicio de GM sin DCM
{
field: 'RATES_ACT',
title: 'RATES',
align: 'center',
valign: 'middle',
sortable: false,
visible: true,
},
{
field: 'FOREX_ACT',
title: 'FOREX',
align: 'center',
valign: 'middle',
sortable: false,
visible: true,
},
{
field: 'CREDIT_ACT',
title: 'CREDIT',
align: 'center',
valign: 'middle',
sortable: false,
},
{
field: 'EQUITY_ACT',
title: 'EQUITY',
align: 'center',
valign: 'middle',
sortable: false,
visible: true,
},
{
field: 'TOTAL_ACT',
title: 'TOTAL',
align: 'center',
valign: 'middle',
sortable: false,
visible: true,
},
///año anterior
{
field: 'RATES_ANT',
title: 'RATES',
align: 'center',
valign: 'middle',
sortable: false,
visible: true,
},
{
field: 'FOREX_ANT',
title: 'FOREX',
align: 'center',
valign: 'middle',
sortable: false,
visible: true,
},
{
field: 'CREDIT_ANT',
title: 'CREDIT',
align: 'center',
valign: 'middle',
sortable: false,
},
{
field: 'EQUITY_ANT',
title: 'EQUITY',
align: 'center',
valign: 'middle',
sortable: false,
visible: true,
},
{
field: 'TOTAL_ANT',
title: 'TOTAL',
align: 'center',
valign: 'middle',
sortable: false,
visible: true,
},{
field: 'RATES_TAM',
title: 'RATES',
align: 'center',
valign: 'middle',
sortable: false,
visible: true,
},
{
field: 'FOREX_TAM',
title: 'FOREX',
align: 'center',
valign: 'middle',
sortable: false,
visible: true,
},
{
field: 'CREDIT_TAM',
title: 'CREDIT',
align: 'center',
valign: 'middle',
sortable: false,
},
{
field: 'EQUITY_TAM',
title: 'EQUITY',
align: 'center',
valign: 'middle',
sortable: false,
visible: true,
},
{
field: 'TOTAL_TAM',
title: 'TOTAL',
align: 'center',
valign: 'middle',
sortable: false,
visible: true,
}
]
],
data: []
}`
I just put a button to trigger a cutom method that retrieves table as htmlElement to overwrite tables header so autotable can draw the complete header, then it draws rects over that header with their colspan:
`crearPDFconTablas: function(tables){ 'use strict'; var imgData = 'data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAAyAAD/4QMpaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjAtYzA2MCA2MS4xMzQ3NzcsIDIwMTAvMDIvMTItMTc6MzI6MDAgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjQwOUY2MkZGQ0E5QTExRTVBMjI2RUIxMTZCMjAyMjRBIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjQwOUY2MkZFQ0E5QTExRTVBMjI2RUIxMTZCMjAyMjRBIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzUgV2luZG93cyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjIzMTZENjNCOEVFQzExRTU4NTRGQTkxNTI3Rjg5QUE1IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjIzMTZENjNDOEVFQzExRTU4NTRGQTkxNTI3Rjg5QUE1Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+/+4ADkFkb2JlAGTAAAAAAf/bAIQACAYGBgYGCAYGCAwIBwgMDgoICAoO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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/9k='; var doc = new jsPDF('l','pt'), tmpDate = new Date();
for(var j= 0; j<tables.length; j++){
var currTbl = document.getElementById(tables[j]), tmpHeader = currTbl.tHead;
var res = doc.autoTableHtmlToJson(currTbl), tmpRow, tmpHidden = $('#'+tables[j]).bootstrapTable('getHiddenRows');
tmpHeader.fila0 = [];
if (tmpHidden.length > 0) {
tmpHidden.forEach(function(element){
res.rows.push(Object.values(element));
});
}
if(tmpHeader.rows.length > 1){
var fila1, fila2 = 0, elapsedH = 0;
var header = [];//= tmpHeader.rows[0] > tmpHeader.rows[1] ? tmpHeader.rows[0] : tmpHeader.rows[1];
for(fila1 in tmpHeader.rows[0].cells){
if (fila1 === tmpHeader.rows[0].cells.length)
break;
console.info('en cell: ' + tmpHeader.rows[0].cells[fila1].innerText);
console.dir(tmpHeader.rows[0].cells[fila1]);
if(tmpHeader.rows[0].cells[fila1].colSpan > 1){
for(var lclfila2 = 0; lclfila2 < tmpHeader.rows[0].cells[fila1].colSpan; lclfila2++){
header.push(tmpHeader.rows[1].cells[fila2].innerText);
fila2++;
}
}else if (tmpHeader.rows[0].cells[fila1].colSpan === 1){
header.push(fila2=== 0 ? tmpHeader.rows[0].cells[fila1].innerText : tmpHeader.rows[1].cells[fila2].innerText);
fila2 += fila2 === 0 ? 0 : 1;
}
}
res.columns = header;
res.rows = [];
for(var j = 2; j < currTbl.rows.length; j++){
var tmpFila=[]
for(var tmpCell in currTbl.rows[j].cells) {
tmpFila.push(currTbl.rows[j].cells[tmpCell].innerText);
};
res.rows.push(tmpFila);
}
}
doc.autoTable(res.columns, res.rows, {
theme: 'striped',
addPageContent: function(data){
var text = 'Este documento es propiedad de BBVA [generado por: ' + sessionStorage.NB_CORREO+']',
tblName = currTbl.attributes.name ? $('#'+tables[j]).attr('name') : '';
doc.setTextColor(7, 33, 70);
doc.setFontSize(18);
doc.addImage(imgData, 'JPEG', -5, -25, 150, 90);
doc.text(0, 75,tblName);
doc.setTextColor(189,189,189);
doc.text(10, doc.internal.pageSize.height - 20, text);
doc.setFontSize(10);
},
drawHeaderCell: function(cell, data){
doc.setFillColor(0, 68, 129);
doc.setTextColor(255,255,255);
if(data.row.raw.length === data.column.index + 1){
if(tmpHeader.rows.length > 1){
var tmpCell, headerIdx = 0;
for(tmpCell = 0 ; tmpCell < tmpHeader.rows[0].cells.length; tmpCell++){
if(tmpHeader.rows[0].cells[tmpCell].colSpan === 1 ){
doc.setFillColor(0, 68, 129);
doc.setTextColor(255,255,255);
doc.rect(data.row.cells[headerIdx].x, data.row.cells[headerIdx].y - 20, data.row.cells[headerIdx].width, 20, 'DF');
doc.autoTableText(header[tmpCell] === tmpHeader.rows[0].cells[tmpCell].innerText ? '' : tmpHeader.rows[0].cells[tmpCell].innerText
, data.row.cells[headerIdx].x + data.row.cells[headerIdx].width /2, data.row.cells[headerIdx].y-20 + data.row.height / 2, {
halign: 'center',
valign: 'middle'
});
headerIdx++;
}else{
var widthAcumulado= 0, xdeColSpan = data.row.cells[headerIdx].x, txtAcumulado = tmpHeader.rows[0].cells[tmpCell].innerText,
lclIdx;
for(lclIdx = 0 ; lclIdx < tmpHeader.rows[0].cells[tmpCell].colSpan; lclIdx++,headerIdx++){
widthAcumulado += data.row.cells[headerIdx].width;
}
doc.setFillColor(0, 68, 129);
doc.setTextColor(255,255,255);
doc.rect(xdeColSpan, data.row.cells[headerIdx-1].y - 20, widthAcumulado, 20, 'DF');
doc.autoTableText(txtAcumulado, xdeColSpan + widthAcumulado /2, data.row.cells[headerIdx-1].y-20 + data.row.height / 2, {
halign: 'center',
valign: 'middle'
});
}
}
}
}
doc.setFillColor(0, 68, 129);
doc.setTextColor(255,255,255);
},
margin: { top: 90, horizontal:20 },
styles: {
fontSize: 8,
lineWidth: 0.75,
overflow: 'linebreak',
},
columnStyles:{
text: {halign: 'right'}
},
});
if (j !== tables.length-1 && j >= 0)
doc.addPage()
}
doc.save(sessionStorage.currentPage+'_'+tmpDate.toLocaleString('en-GB').split(',')[0].toString().replace('/','_').replace('/','_') + ".pdf");
}`
pdf output:
Can will I have use attributes in the table, for examples: rowspan, colspan? issue https://github.com/simonbengtsson/jsPDF-AutoTable/issues/302 don`t helped me