我正在使用jspdf library从html生成PDF文件。这真的很棒。但是我在pdf的每一页都有最后一行的问题。
这是DEMO和我的javascript:
var pdf = new jsPDF();
$('#generatePdfBtn').click(function () {
pdf.fromHTML($('#printableContent').html(), 15, 15, {
'width': 400
});
pdf.save('myPdf.pdf');
});
当您通过单击按钮生成pdf时,您将看到在第一页末尾我们有“pararaph 30”,通常在pdf的下一页我们应该看到下一个“pararaph 31”段落。但我没有看到它,而是看到“pararaph 32”。为什么最后一行丢失?有什么想法吗?
答案 0 :(得分:1)
有一个技巧,如果你可以确定,你需要在哪里放置分页符,那么你可以简单地在那里放置一个""
来强迫它。这样就可以避免文本被删除。
工作演示: http://jsfiddle.net/nq361uoz/4/
不幸的是,这是jsPDF
中的一个已知错误,它在open
存储库中仍处于GitHub
状态。
此处有更多信息: https://github.com/MrRio/jsPDF/issues/555
希望这有帮助!
答案 1 :(得分:1)
试试这个:
打开您的jspdf.js
或jspdf.debug.js
本地文件并对其进行修改:
this.pdf.internal.getVerticalCoordinateString(this.y), style.color, "Td");
删除style.color
并另存为:
this.pdf.internal.getVerticalCoordinateString(this.y), "Td");
然后它在firefox和chrome上正确运行。至少那对我有用,这是一个解决方案,直到他们解决了这个失败。
答案 2 :(得分:0)
我的猜测是它切断了线条,因为它不在边缘内。最简单的方法是创建一个循环,每31行重复一次。不是最好的解决方案,但最快的。