将在 javascript 中创建的 table 导出到 pdf 文件,而不在页面上显示 table

Export a table created in javascript to a pdf file without showing the table on page

我想将与特定用户相关的数据保存到 pdf 文件中,这将在单击按钮时完成,并且不会在页面上显示 table,我为此使用 jspdf,

var div_cr= document.createElement("div");
div_cr.id="xdiv";
var Table_Pull = document.createElement("TABLE");
var header = Table_Pull.createTHead();
var row = header.insertRow(0);
var cell = row.insertCell(0);
cell.innerHTML = "Date";
var cell = row.insertCell(1);
cell.innerHTML = "Attitude";
var cell = row.insertCell(2);
cell.innerHTML = "DeadlineMet";
var cell = row.insertCell(3);
cell.innerHTML = "Discippline";

var row = Table_Pull.insertRow(-1);

var cell1 = row.insertCell(0);
cell1.innerHTML="HEllo";

var cell2 = row.insertCell(1);
cell2.innerHTML="Hi";

var cell3 = row.insertCell(2);
cell3.innerHTML="Goodday";

var doc = new jsPDF();

var dvTable = document.getElementById("xdiv");
dvTable.appendChild(Table_Pull);


var specialElementHandlers = {
    '#editor': function(element, renderer){
        return true;
    }
};

doc.fromHTML($('#dvTable').get(0), 15, 15, {
    'width': 170,
    'elementHandlers': specialElementHandlers
});
doc.save('Test.pdf');

上面的代码在 javascript 中创建了 div 和 table ,将数据添加到 table 并将 table 附加到 div 并将 div 传递给 jspdf 函数以创建 div.

我收到以下错误,

 Uncaught TypeError: Cannot read property 'appendChild' of null

代码尝试将 table 数据下载到 pdf 文件中,但实际上没有在页面上显示 table,如果我将 table 附加到 div 在 html 中创建,然后将 div 传递给 jspdf 函数,但由于我不想在页面上显示 table 这不是实现它的正确方法

我修改了你的代码,基本上你可以直接引用。

var div_cr= document.createElement("div");
div_cr.id="xdiv";
var Table_Pull = document.createElement("TABLE");
var header = Table_Pull.createTHead();
var row = header.insertRow(0);
var cell = row.insertCell(0);
cell.innerHTML = "Date";
var cell = row.insertCell(1);
cell.innerHTML = "Attitude";
var cell = row.insertCell(2);
cell.innerHTML = "DeadlineMet";
var cell = row.insertCell(3);
cell.innerHTML = "Discippline";

var row = Table_Pull.insertRow(-1);

var cell1 = row.insertCell(0);
cell1.innerHTML="HEllo";

var cell2 = row.insertCell(1);
cell2.innerHTML="Hi";

var cell3 = row.insertCell(2);
cell3.innerHTML="Goodday";

var doc = new jsPDF();

div_cr.appendChild(Table_Pull);


var specialElementHandlers = {
    '#editor': function(element, renderer){
        return true;
    }
};

doc.fromHTML(div_cr, 15, 15, {
    'width': 170,
    'elementHandlers': specialElementHandlers
});
doc.save('Test.pdf');