将用javascript创建的表导出为pdf文件,而不在页面上显示该表

将用javascript创建的表导出为pdf文件,而不在页面上显示该表,javascript,html,jspdf,Javascript,Html,Jspdf,我想将与特定用户相关的数据保存到一个pdf文件中,只需单击按钮即可完成,不需要在页面上显示表格,我使用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 ce

我想将与特定用户相关的数据保存到一个pdf文件中,只需单击按钮即可完成,不需要在页面上显示表格,我使用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和表,向表中添加数据,并将表附加到div,然后将div传递给jspdf函数以创建div

我得到以下错误

 Uncaught TypeError: Cannot read property 'appendChild' of null

代码试图将表格数据下载到pdf文件中,而不在页面上实际显示表格,如果我将表格附加到用html创建的div中,然后将div传递给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();

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');

是的,参考不正确,只是做了些改变