【问题标题】:Export a table created in javascript to a pdf file without showing the table on page将在 javascript 中创建的表格导出为 pdf 文件,而不在页面上显示表格
【发布时间】:2017-02-24 05:35:07
【问题描述】:

我想将与特定用户相关的数据保存到 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和table,将数据添加到table中,并将table附加到div中,并将div传递给jspdf函数来创建一个div。

我收到以下错误,

 Uncaught TypeError: Cannot read property 'appendChild' of null

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

【问题讨论】:

    标签: javascript html jspdf


    【解决方案1】:

    我对你的代码进行了修改,基本上你可以直接使用参考。

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

    【讨论】:

    • 是的,引用不正确,只是做了更改
    猜你喜欢
    • 2012-11-22
    • 2016-01-04
    • 1970-01-01
    • 2021-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多