有人可以告诉我如何让jspdf中的文字像标题一样重复。如果我添加这样的文本(jspdf.text(x,y,'test'),它只会在第一页上添加!
注意:我已经在此文档上有一个标题但是在带有<header>
标记的html中完成了。我想附加那种。我必须以这种方式添加文本作为jspdf对齐问题的解决方法。
var pdf = new jsPDF('p', 'pt', 'letter');
pdf.rect(430, 20, 125, 50);
pdf.text('Order', 430, 35);
pdf.autoTableHtmlToJson
source = $('#content')[0]; //table Id
答案 0 :(得分:0)
我最终破解了整个jspdf.debug.js代码并向其添加了大量的if语句,以便解决我如何呈现表格的问题。以下几个例子:
- 标题的单元格高度很大
if (printHeaders) {
//changed by me on 4/5/16 to calculate lineheight manually
var lineHeight = 20;//this.calculateLineHeight(headerNames, columnWidths, headerPrompts.length?headerPrompts:headerNames);
我遇到了一个问题,一旦我将表添加到我的标题中,文档就重复了我的MAIN DATA表的标题中的最后一个标题,该表有100条或更多条记录(因此它重复了多个页面并且页面2+出错了报头)
// Store the table header config
//changed by me
this.setTableHeaderRow(tableHeaderConfigs);
if (tableHeaderConfigsMain != undefined) {
if (tableHeaderConfigsMain.length > 0) {
this.setTableHeaderRowMain(tableHeaderConfigsMain);
}
}
- 我把它添加到构造标题行的for循环中(我的主表有5列)
if (headerNames.length == 5) {
tableHeaderConfigsMain.push([x, y, columnWidths[header], lineHeight, String(headerPrompts.length ? headerPrompts[i] : header)]);
}
- 将其添加到打印标题行函数
if (this.tableHeaderRowMain != undefined && new_page) {
if (this.tableHeaderRowMain.length > 0) {
this.tableHeaderRow = this.tableHeaderRowMain;
}
}
- 在tabletojson函数中,我将其更改为手动设置表格
if(table.id=='rightAlignTable'){
headers[i] = {
name : cell.textContent.toLowerCase().replace(/\s+/g, ''),
prompt: 'Date', //cell.textContent.replace(/\r?\n/g, ''),
width : 100 //(cell.clientWidth / table_with) * renderer.pdf.internal.pageSize.width
};
headers[1] = {
name : cell.textContent.toLowerCase().replace(/\s+/g, ''),
prompt: 'PO #',//cell.textContent.replace(/\r?\n/g, ''),
width : 100 //(cell.clientWidth / table_with) * renderer.pdf.internal.pageSize.width
};
}
- 我还在**** TABLE RENDERING ****部分手动更改了表格:
if (cn.id === "rightAlignTable") {
x = 425;
y = 25;
}