【发布时间】:2017-01-23 23:00:09
【问题描述】:
我查看了 jsPDF,但插件在导出的 PDF 中去除了 CSS。我也看过 html2canvas ,但这需要当前窗口的屏幕截图。我的 HTML 内容对用户隐藏,我正在寻找一种可以从 HTML 块动态创建 PDF 的解决方案。有什么建议吗?
编辑: 我刚刚尝试将 html2canvas 创建为 jsPDF,但我得到了一个空的 pdf 文档。有人可以告诉我为什么吗? http://jsfiddle.net/5ud8jkvf/6320/
$('.download').on('click', function(){
html2canvas($('.print'), {
onrendered: function(canvas) {
$('#canvas').replaceWith(canvas);
},
//width: 200,
//height: 200
});
setTimeout(function(){
var doc = new jsPDF();
var specialElementHandlers = {
'#editor': function (element, renderer) {
return true;
}
};
doc.fromHTML($('canvas').html(), 15, 15, {
'width': '200',
'elementHandlers': specialElementHandlers
});
doc.save('sample-file.pdf');
}, 500);
});
【问题讨论】:
-
没有简单的解决方案。您需要用 JavaScript 实现一半的完整 Web 浏览器。我会使用这个程序在服务器上生成 PDF:wkhtmltopdf.org。
标签: javascript html css pdf canvas