使用 .text 方法将文本添加到 header
Add text to header with .text method
谁能告诉我如何让文本像 header 在 jspdf 中那样重复。如果我添加这样的文本 (jspdf.text(x,y,'test') 它只会出现在第一页!
注意:我在此文档上已有一个 header,但这是在带有 <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
我最终破解了整个 jspdf.debug.js 代码并向其中添加了大量 if 语句,以解决我关于它如何呈现 table 的问题。下面是几个例子:
--headers
的单元格高度很大
if (printHeaders) {
//changed by me on 4/5/16 to calculate lineheight manually
var lineHeight = 20;//this.calculateLineHeight(headerNames, columnWidths, headerPrompts.length?headerPrompts:headerNames);
我遇到了一个问题,当我将 table 添加到我的 header 时,文档正在为我的主要数据重复 header 中的最后一个 header table 有 100 条记录或更多(因此它重复了多个页面,第 2+ 页有错误 header)
// Store the table header config
//changed by me
this.setTableHeaderRow(tableHeaderConfigs);
if (tableHeaderConfigsMain != undefined) {
if (tableHeaderConfigsMain.length > 0) {
this.setTableHeaderRowMain(tableHeaderConfigsMain);
}
}
--我将其添加到构造 header 行的 for 循环中(我的主 table 有 5 列)
if (headerNames.length == 5) {
tableHeaderConfigsMain.push([x, y, columnWidths[header], lineHeight, String(headerPrompts.length ? headerPrompts[i] : header)]);
}
--将此添加到打印 header 行函数
if (this.tableHeaderRowMain != undefined && new_page) {
if (this.tableHeaderRowMain.length > 0) {
this.tableHeaderRow = this.tableHeaderRowMain;
}
}
--在 tabletojson 函数中,我将其更改为手动设置我的 tables
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**** 部分手动更改了 tables:
if (cn.id === "rightAlignTable") {
x = 425;
y = 25;
}
谁能告诉我如何让文本像 header 在 jspdf 中那样重复。如果我添加这样的文本 (jspdf.text(x,y,'test') 它只会出现在第一页!
注意:我在此文档上已有一个 header,但这是在带有 <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
我最终破解了整个 jspdf.debug.js 代码并向其中添加了大量 if 语句,以解决我关于它如何呈现 table 的问题。下面是几个例子:
--headers
的单元格高度很大 if (printHeaders) {
//changed by me on 4/5/16 to calculate lineheight manually
var lineHeight = 20;//this.calculateLineHeight(headerNames, columnWidths, headerPrompts.length?headerPrompts:headerNames);
我遇到了一个问题,当我将 table 添加到我的 header 时,文档正在为我的主要数据重复 header 中的最后一个 header table 有 100 条记录或更多(因此它重复了多个页面,第 2+ 页有错误 header)
// Store the table header config
//changed by me
this.setTableHeaderRow(tableHeaderConfigs);
if (tableHeaderConfigsMain != undefined) {
if (tableHeaderConfigsMain.length > 0) {
this.setTableHeaderRowMain(tableHeaderConfigsMain);
}
}
--我将其添加到构造 header 行的 for 循环中(我的主 table 有 5 列)
if (headerNames.length == 5) {
tableHeaderConfigsMain.push([x, y, columnWidths[header], lineHeight, String(headerPrompts.length ? headerPrompts[i] : header)]);
}
--将此添加到打印 header 行函数
if (this.tableHeaderRowMain != undefined && new_page) {
if (this.tableHeaderRowMain.length > 0) {
this.tableHeaderRow = this.tableHeaderRowMain;
}
}
--在 tabletojson 函数中,我将其更改为手动设置我的 tables
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**** 部分手动更改了 tables:
if (cn.id === "rightAlignTable") {
x = 425;
y = 25;
}