我创建了html表并尝试使用jsPDF生成pdf。
我使用了以下代码:
var pdf = new jsPDF('p','pt','a4');
pdf.addHTML(document.getElementById('pdfTable'),function() {
console.log('pdf generated');
});
pdf.save('pdfTable.pdf');
我收到空白的pdf文件。我做错了吗?
这是plunker。
使用addHTML函数运行jsPDF的demo。
答案 0 :(得分:2)
为此工作plunker:
更新:
我更新了plunker并使其与addHTML()
函数一起使用:
var pdf = new jsPDF('p','pt','a4');
//var source = document.getElementById('table-container').innerHTML;
console.log(document.getElementById('table-container'));
var margins = {
top: 25,
bottom: 60,
left: 20,
width: 522
};
// all coords and widths are in jsPDF instance's declared units
// 'inches' in this case
pdf.text(20, 20, 'Hello world.');
pdf.addHTML(document.body, margins.top, margins.left, {}, function() {
pdf.save('test.pdf');
});
您可以查看plunker了解详情。
答案 1 :(得分:1)
在app.js中更改此内容:
pdf.addHTML(document.getElementById('pdfTable'),function() {
});
pdf.save('pdfTable.pdf');
这个:
pdf.addHTML(document.getElementById('pdfTable'),function() {
pdf.save('pdfTable.pdf');
});
答案 2 :(得分:1)
除了这些之外,我拿出了所有东西:
<script src="//mrrio.github.io/jsPDF/dist/jspdf.debug.js"></script>
<script src="//html2canvas.hertzen.com/build/html2canvas.js"></script>
然后我用了这个:
$(document).ready(function() {
$("#pdfDiv").click(function() {
var pdf = new jsPDF('p','pt','letter');
var specialElementHandlers = {
'#rentalListCan': function (element, renderer) {
return true;
}
};
pdf.addHTML($('#rentalListCan').first(), function() {
pdf.save("rentals.pdf");
});
});
});
我可以打印表格......使用chrome,safari或firefox看起来很棒,但是,如果我的桌子非常大,我只能获得第一页。
答案 3 :(得分:0)
在app.js中更改:
pdf.addHTML(document.getElementById('pdfTable'),function() {
});
pdf.save('pdfTable.pdf');
到
pdf.addHTML(document.getElementById('pdfTable'),function() {
pdf.save('pdfTable.pdf');
});
如果您看到黑色背景,可以添加到sytle.css&#34;背景颜色:白色;&#34;
答案 4 :(得分:0)
您应该使用querySelector()
,而不是使用getElementById()var pdf = new jsPDF('p','pt','a4');
pdf.addHTML(document.querySelector('#pdfTable'), function () {
console.log('pdf generated');
});
pdf.save('pdfTable.pdf');