在下载pdf之前在表格中创建div内容

时间:2015-07-15 06:23:15

标签: javascript jquery html pdf-generation jspdf

这里我试图制作pdf,当用户点击按钮我需要将所有div内容放入表格(不需要图像)并下载为PDF。 click here for my example。在示例中使用表格。实际上我想用pdf制作表格。

JS

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

$('#cmd').click(function () {
    doc.fromHTML($('#tablepdf').html(), 15, 15, {
        'width': 170,
            'elementHandlers': specialElementHandlers
    });
    doc.save('sample-file.pdf');
});

2 个答案:

答案 0 :(得分:2)

http://www.cloudformatter.com/css2pdf支持许多CSS样式和结构,包括表格。如上面的评论所述,它不是jsPDF,而是它自己的渲染解决方案。这个小提琴(http://jsfiddle.net/wL8r6n05/2/)中的文档显示了这个格式,因为它格式化为表而不是其他内容。只需使用:

$('#cmd').click(function () {
    return xepOnline.Formatter.Format('printme',{render:'download'});
});

根据您的第二条评论,您也可以在HTML中隐藏数据,并仅通过@media打印命令公开它。这是在第二个小提琴(http://jsfiddle.net/wL8r6n05/5/)中显示的,其中表格周围的div仅为@media打印样式公开:

.hidden {
    display:none;
}
@media print {
    .hidden {
        display:block;
    }
}

它支持在发送到格式化程序之前将@media打印CSS样式应用于内容。

答案 1 :(得分:0)

该示例仅使用<table class="table" id="content">更改INSERT INTO Products VALUES (@ProductId, @ProductName, @SellingPrice) ,您就完成了。

JSFiddle updated

如果您的需求不同,请解释。